@@ -6664,10 +6664,8 @@ define i1 @memcmp_le_zero(ptr %s1, ptr %s2) nounwind {
6664
6664
; CHECK-UNALIGNED-RV32-ZBB-NEXT: lw a1, 0(a1)
6665
6665
; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a0, a0
6666
6666
; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a1, a1
6667
- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a2, a0, a1
6668
6667
; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a0, a1, a0
6669
- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sub a0, a0, a2
6670
- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: slti a0, a0, 1
6668
+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: xori a0, a0, 1
6671
6669
; CHECK-UNALIGNED-RV32-ZBB-NEXT: ret
6672
6670
;
6673
6671
; CHECK-UNALIGNED-RV64-ZBB-LABEL: memcmp_le_zero:
@@ -6678,10 +6676,8 @@ define i1 @memcmp_le_zero(ptr %s1, ptr %s2) nounwind {
6678
6676
; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a1, a1
6679
6677
; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a0, a0, 32
6680
6678
; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a1, a1, 32
6681
- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a2, a0, a1
6682
6679
; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a0, a1, a0
6683
- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sub a0, a0, a2
6684
- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: slti a0, a0, 1
6680
+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: xori a0, a0, 1
6685
6681
; CHECK-UNALIGNED-RV64-ZBB-NEXT: ret
6686
6682
;
6687
6683
; CHECK-UNALIGNED-RV32-ZBKB-LABEL: memcmp_le_zero:
@@ -6690,10 +6686,8 @@ define i1 @memcmp_le_zero(ptr %s1, ptr %s2) nounwind {
6690
6686
; CHECK-UNALIGNED-RV32-ZBKB-NEXT: lw a1, 0(a1)
6691
6687
; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a0, a0
6692
6688
; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a1, a1
6693
- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a2, a0, a1
6694
6689
; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a0, a1, a0
6695
- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sub a0, a0, a2
6696
- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: slti a0, a0, 1
6690
+ ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: xori a0, a0, 1
6697
6691
; CHECK-UNALIGNED-RV32-ZBKB-NEXT: ret
6698
6692
;
6699
6693
; CHECK-UNALIGNED-RV64-ZBKB-LABEL: memcmp_le_zero:
@@ -6704,10 +6698,8 @@ define i1 @memcmp_le_zero(ptr %s1, ptr %s2) nounwind {
6704
6698
; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a1, a1
6705
6699
; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a0, a0, 32
6706
6700
; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a1, a1, 32
6707
- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a2, a0, a1
6708
6701
; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a0, a1, a0
6709
- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sub a0, a0, a2
6710
- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: slti a0, a0, 1
6702
+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: xori a0, a0, 1
6711
6703
; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ret
6712
6704
;
6713
6705
; CHECK-UNALIGNED-RV32-V-LABEL: memcmp_le_zero:
@@ -6864,10 +6856,7 @@ define i1 @memcmp_ge_zero(ptr %s1, ptr %s2) nounwind {
6864
6856
; CHECK-UNALIGNED-RV32-ZBB-NEXT: lw a1, 0(a1)
6865
6857
; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a0, a0
6866
6858
; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a1, a1
6867
- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a2, a0, a1
6868
- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a0, a1, a0
6869
- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sub a0, a0, a2
6870
- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: slti a0, a0, 0
6859
+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a0, a0, a1
6871
6860
; CHECK-UNALIGNED-RV32-ZBB-NEXT: xori a0, a0, 1
6872
6861
; CHECK-UNALIGNED-RV32-ZBB-NEXT: ret
6873
6862
;
@@ -6879,10 +6868,7 @@ define i1 @memcmp_ge_zero(ptr %s1, ptr %s2) nounwind {
6879
6868
; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a1, a1
6880
6869
; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a0, a0, 32
6881
6870
; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a1, a1, 32
6882
- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a2, a0, a1
6883
- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a0, a1, a0
6884
- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sub a0, a0, a2
6885
- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: slti a0, a0, 0
6871
+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a0, a0, a1
6886
6872
; CHECK-UNALIGNED-RV64-ZBB-NEXT: xori a0, a0, 1
6887
6873
; CHECK-UNALIGNED-RV64-ZBB-NEXT: ret
6888
6874
;
@@ -6892,10 +6878,7 @@ define i1 @memcmp_ge_zero(ptr %s1, ptr %s2) nounwind {
6892
6878
; CHECK-UNALIGNED-RV32-ZBKB-NEXT: lw a1, 0(a1)
6893
6879
; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a0, a0
6894
6880
; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a1, a1
6895
- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a2, a0, a1
6896
- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a0, a1, a0
6897
- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sub a0, a0, a2
6898
- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: slti a0, a0, 0
6881
+ ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a0, a0, a1
6899
6882
; CHECK-UNALIGNED-RV32-ZBKB-NEXT: xori a0, a0, 1
6900
6883
; CHECK-UNALIGNED-RV32-ZBKB-NEXT: ret
6901
6884
;
@@ -6907,10 +6890,7 @@ define i1 @memcmp_ge_zero(ptr %s1, ptr %s2) nounwind {
6907
6890
; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a1, a1
6908
6891
; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a0, a0, 32
6909
6892
; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a1, a1, 32
6910
- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a2, a0, a1
6911
- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a0, a1, a0
6912
- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sub a0, a0, a2
6913
- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: slti a0, a0, 0
6893
+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a0, a0, a1
6914
6894
; CHECK-UNALIGNED-RV64-ZBKB-NEXT: xori a0, a0, 1
6915
6895
; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ret
6916
6896
;
0 commit comments