Skip to content

Commit 1e28448

Browse files
author
Temperz87
committed
Make scmp/ucmp freeze test not always return -1
1 parent fe1319b commit 1e28448

File tree

1 file changed

+21
-22
lines changed

1 file changed

+21
-22
lines changed

llvm/test/CodeGen/X86/freeze-binary.ll

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -924,17 +924,16 @@ define i32 @freeze_usubo(i32 %a0, i32 %a1, i8 %a2, i8 %a3) nounwind {
924924
ret i32 %r
925925
}
926926

927-
928927
define i32 @freeze_scmp(i32 %a0) nounwind {
929928
; X86-LABEL: freeze_scmp:
930929
; X86: # %bb.0:
931-
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
932-
; X86-NEXT: cmpl $2, %eax
930+
; X86-NEXT: movl $2, %eax
931+
; X86-NEXT: cmpl {{[0-9]+}}(%esp), %eax
933932
; X86-NEXT: setl %al
934933
; X86-NEXT: setg %cl
935934
; X86-NEXT: subb %al, %cl
936935
; X86-NEXT: movsbl %cl, %eax
937-
; X86-NEXT: cmpl $2, %eax
936+
; X86-NEXT: negl %eax
938937
; X86-NEXT: setl %al
939938
; X86-NEXT: setg %cl
940939
; X86-NEXT: subb %al, %cl
@@ -943,55 +942,55 @@ define i32 @freeze_scmp(i32 %a0) nounwind {
943942
;
944943
; X64-LABEL: freeze_scmp:
945944
; X64: # %bb.0:
946-
; X64-NEXT: cmpl $2, %edi
945+
; X64-NEXT: movl $2, %eax
946+
; X64-NEXT: cmpl %edi, %eax
947947
; X64-NEXT: setl %al
948948
; X64-NEXT: setg %cl
949949
; X64-NEXT: subb %al, %cl
950950
; X64-NEXT: movsbl %cl, %eax
951-
; X64-NEXT: cmpl $2, %eax
951+
; X64-NEXT: negl %eax
952952
; X64-NEXT: setl %al
953953
; X64-NEXT: setg %cl
954954
; X64-NEXT: subb %al, %cl
955955
; X64-NEXT: movsbl %cl, %eax
956956
; X64-NEXT: retq
957-
%x = call i32 @llvm.scmp.i32(i32 %a0, i32 2)
957+
%x = call i32 @llvm.scmp.i32(i32 2, i32 %a0)
958958
%y = freeze i32 %x
959-
%z = call i32 @llvm.scmp.i32(i32 %y, i32 2)
959+
%z = call i32 @llvm.scmp.i32(i32 0, i32 %y)
960960
ret i32 %z
961961
}
962962

963963
define i32 @freeze_ucmp(i32 %a0) nounwind {
964964
; X86-LABEL: freeze_ucmp:
965965
; X86: # %bb.0:
966-
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
967-
; X86-NEXT: cmpl $3, %eax
968-
; X86-NEXT: setae %cl
966+
; X86-NEXT: movl $2, %eax
967+
; X86-NEXT: cmpl {{[0-9]+}}(%esp), %eax
968+
; X86-NEXT: seta %al
969+
; X86-NEXT: sbbb $0, %al
970+
; X86-NEXT: movsbl %al, %eax
969971
; X86-NEXT: cmpl $2, %eax
970-
; X86-NEXT: sbbb $0, %cl
971-
; X86-NEXT: movsbl %cl, %eax
972-
; X86-NEXT: cmpl $3, %eax
973972
; X86-NEXT: setae %cl
974-
; X86-NEXT: cmpl $2, %eax
973+
; X86-NEXT: cmpl $1, %eax
975974
; X86-NEXT: sbbb $0, %cl
976975
; X86-NEXT: movsbl %cl, %eax
977976
; X86-NEXT: retl
978977
;
979978
; X64-LABEL: freeze_ucmp:
980979
; X64: # %bb.0:
981-
; X64-NEXT: cmpl $3, %edi
982-
; X64-NEXT: setae %al
983-
; X64-NEXT: cmpl $2, %edi
980+
; X64-NEXT: movl $2, %eax
981+
; X64-NEXT: cmpl %edi, %eax
982+
; X64-NEXT: seta %al
984983
; X64-NEXT: sbbb $0, %al
985984
; X64-NEXT: movsbl %al, %eax
986-
; X64-NEXT: cmpl $3, %eax
987-
; X64-NEXT: setae %cl
988985
; X64-NEXT: cmpl $2, %eax
986+
; X64-NEXT: setae %cl
987+
; X64-NEXT: cmpl $1, %eax
989988
; X64-NEXT: sbbb $0, %cl
990989
; X64-NEXT: movsbl %cl, %eax
991990
; X64-NEXT: retq
992-
%x = call i32 @llvm.ucmp.i32(i32 %a0, i32 2)
991+
%x = call i32 @llvm.ucmp.i32(i32 2, i32 %a0)
993992
%y = freeze i32 %x
994-
%z = call i32 @llvm.ucmp.i32(i32 %y, i32 2)
993+
%z = call i32 @llvm.ucmp.i32(i32 %y, i32 1)
995994
ret i32 %z
996995
}
997996

0 commit comments

Comments
 (0)