diff --git a/llvm/test/Transforms/CodeGenPrepare/X86/freeze-icmp.ll b/llvm/test/Transforms/CodeGenPrepare/X86/freeze-cmp.ll similarity index 67% rename from llvm/test/Transforms/CodeGenPrepare/X86/freeze-icmp.ll rename to llvm/test/Transforms/CodeGenPrepare/X86/freeze-cmp.ll index 4505464a6a55..419491cde8d6 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()