@@ -936,15 +936,16 @@ entry:
936
936
define i1 @is_minus_zero_f (float %x ) {
937
937
; CHECK-32-LABEL: is_minus_zero_f:
938
938
; CHECK-32: # %bb.0: # %entry
939
- ; CHECK-32-NEXT: cmpl $-2147483648, {{[0-9]+}}(%esp) # imm = 0x80000000
940
- ; CHECK-32-NEXT: sete %al
939
+ ; CHECK-32-NEXT: xorl %eax, %eax
940
+ ; CHECK-32-NEXT: cmpl {{[0-9]+}}(%esp), %eax
941
+ ; CHECK-32-NEXT: seto %al
941
942
; CHECK-32-NEXT: retl
942
943
;
943
944
; CHECK-64-LABEL: is_minus_zero_f:
944
945
; CHECK-64: # %bb.0: # %entry
945
946
; CHECK-64-NEXT: movd %xmm0, %eax
946
- ; CHECK-64-NEXT: cmpl $-2147483648, %eax # imm = 0x80000000
947
- ; CHECK-64-NEXT: sete %al
947
+ ; CHECK-64-NEXT: negl %eax
948
+ ; CHECK-64-NEXT: seto %al
948
949
; CHECK-64-NEXT: retq
949
950
entry:
950
951
%0 = tail call i1 @llvm.is.fpclass.f32 (float %x , i32 32 ) ; 0x20 = "-zero"
@@ -954,15 +955,16 @@ entry:
954
955
define i1 @not_is_minus_zero_f (float %x ) {
955
956
; CHECK-32-LABEL: not_is_minus_zero_f:
956
957
; CHECK-32: # %bb.0: # %entry
957
- ; CHECK-32-NEXT: cmpl $-2147483648, {{[0-9]+}}(%esp) # imm = 0x80000000
958
- ; CHECK-32-NEXT: setne %al
958
+ ; CHECK-32-NEXT: xorl %eax, %eax
959
+ ; CHECK-32-NEXT: cmpl {{[0-9]+}}(%esp), %eax
960
+ ; CHECK-32-NEXT: setno %al
959
961
; CHECK-32-NEXT: retl
960
962
;
961
963
; CHECK-64-LABEL: not_is_minus_zero_f:
962
964
; CHECK-64: # %bb.0: # %entry
963
965
; CHECK-64-NEXT: movd %xmm0, %eax
964
- ; CHECK-64-NEXT: cmpl $-2147483648, %eax # imm = 0x80000000
965
- ; CHECK-64-NEXT: setne %al
966
+ ; CHECK-64-NEXT: negl %eax
967
+ ; CHECK-64-NEXT: setno %al
966
968
; CHECK-64-NEXT: retq
967
969
entry:
968
970
%0 = tail call i1 @llvm.is.fpclass.f32 (float %x , i32 991 ) ; ~0x20 = ~"-zero"
0 commit comments