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/CodeGen/PowerPC/div-2.ll b/test/CodeGen/PowerPC/div-2.ll
new file mode 100644
index 0000000..a3cd73c
--- /dev/null
+++ b/test/CodeGen/PowerPC/div-2.ll
@@ -0,0 +1,29 @@
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | not grep srawi
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | grep blr
+
+int %test1(int %X) {
+ %Y = and int %X, 15
+ %Z = div int %Y, 4
+ ret int %Z
+}
+
+int %test2(int %W) {
+ %X = and int %W, 15
+ %Y = sub int 16, %X
+ %Z = div int %Y, 4
+ ret int %Z
+}
+
+int %test3(int %W) {
+ %X = and int %W, 15
+ %Y = sub int 15, %X
+ %Z = div int %Y, 4
+ ret int %Z
+}
+
+int %test4(int %W) {
+ %X = and int %W, 2
+ %Y = sub int 5, %X
+ %Z = div int %Y, 2
+ ret int %Z
+}