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()