[llvm] r302051 - ARM: add extra test for addrmode folding.

Tim Northover via llvm-commits llvm-commits at lists.llvm.org
Wed May 3 09:54:30 PDT 2017


Author: tnorthover
Date: Wed May  3 11:54:30 2017
New Revision: 302051

URL: http://llvm.org/viewvc/llvm-project?rev=302051&view=rev
Log:
ARM: add extra test for addrmode folding.

I was worried we might replace a mul with a mul+shift even if there were later
uses. Turns out to be unfounded but I'd just as well add an actual test for it.

Modified:
    llvm/trunk/test/CodeGen/ARM/load-arm.ll

Modified: llvm/trunk/test/CodeGen/ARM/load-arm.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/load-arm.ll?rev=302051&r1=302050&r2=302051&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/load-arm.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/load-arm.ll Wed May  3 11:54:30 2017
@@ -15,3 +15,14 @@ define i32 @addrmode_cse_mutation(i8* %b
   %res = mul i32 %count, 34661
   ret i32 %res
 }
+
+; CHECK-LABEL: addrmode_cse_multi_use:
+; CHECK-NOT: {{ldrb|ldrb.w}} {{r[0-9]+}}, [{{r[0-9]+}}, {{r[0-9]+}}, lsl #3]
+define i32 @addrmode_cse_multi_use(i8* %base, i32 %count) {
+  %offset = mul i32 %count, 277288
+  %ptr = getelementptr i8, i8* %base, i32 %offset
+  %val = load volatile i8, i8* %ptr
+  %res = mul i32 %count, 34661
+  %res.1 = add i32 %res, %offset
+  ret i32 %res.1
+}




More information about the llvm-commits mailing list