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-loadstore.ll b/test/ExecutionEngine/test-loadstore.ll
new file mode 100644
index 0000000..8a4b793
--- /dev/null
+++ b/test/ExecutionEngine/test-loadstore.ll
@@ -0,0 +1,37 @@
+; RUN: llvm-upgrade < %s | llvm-as -f -o %t.bc
+; RUN: lli %t.bc > /dev/null
+
+
+void %test(sbyte* %P, short* %P, int* %P, long* %P) {
+	%V = load sbyte* %P
+	store sbyte %V, sbyte* %P
+
+	%V = load short* %P
+	store short %V, short* %P
+
+	%V = load int* %P
+	store int %V, int* %P
+
+	%V = load long* %P
+	store long %V, long* %P
+
+	ret void
+}
+
+uint %varalloca(uint %Size) {
+	%X = alloca uint, uint %Size        ;; Variable sized alloca
+	store uint %Size, uint* %X
+	%Y = load uint* %X
+	ret uint %Y
+}
+
+int %main() {
+	%A = alloca sbyte
+	%B = alloca short
+	%C = alloca int
+	%D = alloca long
+	call void %test(sbyte* %A, short* %B, int* %C, long* %D)
+	call uint %varalloca(uint 7)
+
+	ret int 0
+}