Add a case with non-constant argument for testing the transform:
authorReid Spencer <rspencer@reidspencer.com>
Sun, 15 May 2005 21:26:59 +0000 (21:26 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Sun, 15 May 2005 21:26:59 +0000 (21:26 +0000)
ffs(x) -> (x == 0 ? 0 : llvm.cttz(0)+1)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22069 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/SimplifyLibCalls/FFS.ll

index 35b5d3fb6c7d9f0b27e0970fddba5e485809d720..4981d13b6df783abf3e3bb4410bc94cb4664c58b 100644 (file)
@@ -4,12 +4,17 @@
 declare int %ffs(int)
 declare int %ffsl(int)
 declare int %ffsll(long)
+declare int %__builtin_ffs(int)
+
+%non_const = external global int
 
 implementation   ; Functions:
 
 int %main () {
+  %arg  = load int* %non_const
+  %val0 = call int %ffs(int %arg)
   %val1 = call int %ffs(int 1)
-  %val2 = call int %ffs(int 2048)
+  %val2 = call int %__builtin_ffs(int 2048)
   %val3 = call int %ffsl(int 65536)
   %val4 = call int %ffsll(long 1024)
   %val5 = call int %ffsll(long 17179869184)
@@ -19,5 +24,6 @@ int %main () {
   %rslt3 = add int %val5, %val6
   %rslt4 = add int %rslt1, %rslt2
   %rslt5 = add int %rslt4, %rslt3
+  %rslt6 = add int %rslt5, %val0
   ret int %rslt5
 }