[llvm] e951a48 - Add freeze(and x, const) case to codegenprepare's freeze-cmp.ll

Juneyoung Lee via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 25 01:29:10 PDT 2020


Author: Juneyoung Lee
Date: 2020-03-25T17:29:01+09:00
New Revision: e951a4899626bc32612c44f6b13a18e43b0a8260

URL: https://github.com/llvm/llvm-project/commit/e951a4899626bc32612c44f6b13a18e43b0a8260
DIFF: https://github.com/llvm/llvm-project/commit/e951a4899626bc32612c44f6b13a18e43b0a8260.diff

LOG: Add freeze(and x, const) case to codegenprepare's freeze-cmp.ll

Added: 
    

Modified: 
    llvm/test/Transforms/CodeGenPrepare/X86/freeze-cmp.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/CodeGenPrepare/X86/freeze-cmp.ll b/llvm/test/Transforms/CodeGenPrepare/X86/freeze-cmp.ll
index d0d40bc91a93..cb6cc8d9108b 100644
--- a/llvm/test/Transforms/CodeGenPrepare/X86/freeze-cmp.ll
+++ b/llvm/test/Transforms/CodeGenPrepare/X86/freeze-cmp.ll
@@ -105,5 +105,31 @@ define i1 @fcmp_nan(float %a) {
   ret i1 %fr
 }
 
+define void @and(i32 %flag) {
+; CHECK-LABEL: @and(
+; CHECK-NEXT:    [[V:%.*]] = and i32 [[FLAG:%.*]], 1
+; CHECK-NEXT:    [[FR:%.*]] = freeze i32 [[V]]
+; CHECK-NEXT:    [[C:%.*]] = icmp eq i32 [[FR]], 0
+; CHECK-NEXT:    br i1 [[C]], label [[A:%.*]], label [[B:%.*]]
+; CHECK:       A:
+; CHECK-NEXT:    call void @g1()
+; CHECK-NEXT:    ret void
+; CHECK:       B:
+; CHECK-NEXT:    call void @g2()
+; CHECK-NEXT:    ret void
+;
+  %v = and i32 %flag, 1
+  %c = icmp eq i32 %v, 0
+  %fr = freeze i1 %c
+  br i1 %fr, label %A, label %B
+A:
+  call void @g1()
+  ret void
+B:
+  call void @g2()
+  ret void
+}
+
+
 declare void @g1()
 declare void @g2()


        


More information about the llvm-commits mailing list