aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--llvm/test/Transforms/CodeGenPrepare/X86/freeze-cmp.ll (renamed from llvm/test/Transforms/CodeGenPrepare/X86/freeze-icmp.ll)33
1 files changed, 33 insertions, 0 deletions
diff --git a/llvm/test/Transforms/CodeGenPrepare/X86/freeze-icmp.ll b/llvm/test/Transforms/CodeGenPrepare/X86/freeze-cmp.ll
index 4505464..419491c 100644
--- a/llvm/test/Transforms/CodeGenPrepare/X86/freeze-icmp.ll
+++ b/llvm/test/Transforms/CodeGenPrepare/X86/freeze-cmp.ll
@@ -71,5 +71,38 @@ B:
ret void
}
+define i1 @ptrcmp(i8* %p) {
+; CHECK-LABEL: @ptrcmp(
+; CHECK-NEXT: [[C:%.*]] = icmp eq i8* [[P:%.*]], null
+; CHECK-NEXT: [[FR:%.*]] = freeze i1 [[C]]
+; CHECK-NEXT: ret i1 [[FR]]
+;
+ %c = icmp eq i8* %p, null
+ %fr = freeze i1 %c
+ ret i1 %fr
+}
+
+
+define i1 @fcmp(float %a) {
+; CHECK-LABEL: @fcmp(
+; CHECK-NEXT: [[C:%.*]] = fcmp oeq float [[A:%.*]], 0.000000e+00
+; CHECK-NEXT: [[FR:%.*]] = freeze i1 [[C]]
+; CHECK-NEXT: ret i1 [[FR]]
+;
+ %c = fcmp oeq float %a, 0.0
+ %fr = freeze i1 %c
+ ret i1 %fr
+}
+
+define i1 @fcmp_nan(float %a) {
+; CHECK-LABEL: @fcmp_nan(
+; CHECK-NEXT: [[C:%.*]] = fcmp nnan oeq float [[A:%.*]], 0.000000e+00
+; CHECK-NEXT: [[FR:%.*]] = freeze i1 [[C]]
+; CHECK-NEXT: ret i1 [[FR]]
+;
+ %c = fcmp nnan oeq float %a, 0.0
+ %fr = freeze i1 %c
+ ret i1 %fr
+}
declare void @g1()
declare void @g2()