It's not necessary to do rounding for alloca operations when the requested
alignment is equal to the stack alignment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40004 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/ExecutionEngine/test-cast.ll b/test/ExecutionEngine/test-cast.ll
new file mode 100644
index 0000000..97e7157
--- /dev/null
+++ b/test/ExecutionEngine/test-cast.ll
@@ -0,0 +1,136 @@
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
+; RUN: lli %t.bc > /dev/null
+
+
+int %foo() {
+  ret int 0
+}
+
+int %main() {
+  ; cast bool to ...
+  cast bool true to bool
+  cast bool true to ubyte
+  cast bool true to sbyte
+  cast bool true to short
+  cast bool true to ushort
+  cast bool true to int
+  cast bool true to uint
+  cast bool true to long
+  cast bool true to ulong
+  cast bool true to float
+  cast bool true to double
+
+  ; cast sbyte to ...
+  cast sbyte 0 to bool
+  cast sbyte 1 to bool
+  cast sbyte 0 to sbyte
+  cast sbyte -1 to ubyte
+  cast sbyte 4 to short
+  cast sbyte 4 to ushort
+  cast sbyte 4 to long
+  cast sbyte 4 to ulong
+  cast sbyte 4 to float
+  cast sbyte 4 to double
+
+  ; cast ubyte to ...
+  cast ubyte 0 to bool
+  cast ubyte 1 to bool
+  cast ubyte 0 to sbyte
+  cast ubyte 1 to ubyte
+  cast ubyte 4 to short
+  cast ubyte 4 to ushort
+  cast ubyte 4 to long
+  cast ubyte 4 to ulong
+  cast ubyte 0 to float
+  cast ubyte 0 to double
+
+  ; cast short to ...
+  cast short 1 to bool
+  cast short -1 to sbyte
+  cast short 255 to ubyte
+  cast short 0 to short
+  cast short 0 to ushort
+  cast short 0 to long
+  cast short 0 to ulong
+  cast short 0 to float
+  cast short 0 to double
+
+  ; cast ushort to ...
+  cast ushort 1 to bool
+  cast ushort 1 to sbyte
+  cast ushort 255 to ubyte
+  cast ushort 0 to short
+  cast ushort 0 to ushort
+  cast ushort 0 to long
+  cast ushort 0 to ulong
+  cast ushort 0 to float
+  cast ushort 0 to double
+
+  ; cast int to ...
+  cast int 6 to bool
+  cast int -6 to sbyte
+  cast int 6 to ubyte
+  cast int 6 to short
+  cast int 0 to int
+  cast int 0 to long
+  cast int 0 to ulong
+  cast int 0 to float
+  cast int 0 to double
+
+  ; cast uint to ...
+  cast uint 6 to bool
+  cast uint 7 to sbyte
+  cast uint 8 to ubyte
+  cast uint 9 to short
+  cast uint 10 to int
+  cast uint 0 to long
+  cast uint 0 to ulong
+  cast uint 0 to float
+  cast uint 0 to double
+
+  ; cast long to ...
+  cast long 0 to bool
+  cast long 0 to sbyte
+  cast long 0 to ubyte
+  cast long 0 to short
+  cast long 0 to ushort
+  cast long 0 to int
+  cast long 0 to uint
+  cast long 0 to long
+  cast long 0 to ulong
+  cast long 0 to float
+  cast long 0 to double
+
+  ; cast ulong to ...
+  cast ulong 1 to bool
+  cast ulong 1 to sbyte
+  cast ulong 1 to ubyte
+  cast ulong 1 to short
+  cast ulong 1 to ushort
+  cast ulong 1 to int
+  cast ulong 1 to uint
+  cast ulong 1 to long
+  cast ulong 1 to ulong
+  cast ulong 1 to float
+  cast ulong 0 to double
+  
+  ; cast float to ...
+  ;cast float 0.0 to bool
+  cast float 0.0 to float
+  cast float 0.0 to double
+
+  ; cast double to ...
+  ;cast double 0.0 to bool
+  cast double 0.0 to sbyte
+  cast double 0.0 to ubyte
+  cast double 0.0 to short
+  cast double 0.0 to ushort
+  cast double 0.0 to int
+  cast double 0.0 to uint
+  cast double 0.0 to long
+  ;cast double 0.0 to ulong
+  cast double 0.0 to float
+  cast double 0.0 to double
+
+  ret int 0
+}