[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