@@ -6702,10 +6702,8 @@ define i1 @memcmp_le_zero(ptr %s1, ptr %s2) nounwind {
67026702; CHECK-UNALIGNED-RV32-ZBB-NEXT: lw a1, 0(a1)
67036703; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a0, a0
67046704; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a1, a1
6705- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a2, a1, a0
6706- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a0, a0, a1
6707- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sub a2, a2, a0
6708- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: slti a0, a2, 1
6705+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a0, a1, a0
6706+ ; CHECK-UNALIGNED-RV32-ZBB-NEXT: xori a0, a0, 1
67096707; CHECK-UNALIGNED-RV32-ZBB-NEXT: ret
67106708;
67116709; CHECK-UNALIGNED-RV64-ZBB-LABEL: memcmp_le_zero:
@@ -6716,10 +6714,8 @@ define i1 @memcmp_le_zero(ptr %s1, ptr %s2) nounwind {
67166714; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a1, a1
67176715; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a0, a0, 32
67186716; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a1, a1, 32
6719- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a2, a1, a0
6720- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a0, a0, a1
6721- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sub a2, a2, a0
6722- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: slti a0, a2, 1
6717+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a0, a1, a0
6718+ ; CHECK-UNALIGNED-RV64-ZBB-NEXT: xori a0, a0, 1
67236719; CHECK-UNALIGNED-RV64-ZBB-NEXT: ret
67246720;
67256721; CHECK-UNALIGNED-RV32-ZBKB-LABEL: memcmp_le_zero:
@@ -6728,10 +6724,8 @@ define i1 @memcmp_le_zero(ptr %s1, ptr %s2) nounwind {
67286724; CHECK-UNALIGNED-RV32-ZBKB-NEXT: lw a1, 0(a1)
67296725; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a0, a0
67306726; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a1, a1
6731- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a2, a1, a0
6732- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a0, a0, a1
6733- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sub a2, a2, a0
6734- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: slti a0, a2, 1
6727+ ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a0, a1, a0
6728+ ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: xori a0, a0, 1
67356729; CHECK-UNALIGNED-RV32-ZBKB-NEXT: ret
67366730;
67376731; CHECK-UNALIGNED-RV64-ZBKB-LABEL: memcmp_le_zero:
@@ -6742,10 +6736,8 @@ define i1 @memcmp_le_zero(ptr %s1, ptr %s2) nounwind {
67426736; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a1, a1
67436737; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a0, a0, 32
67446738; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a1, a1, 32
6745- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a2, a1, a0
6746- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a0, a0, a1
6747- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sub a2, a2, a0
6748- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: slti a0, a2, 1
6739+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a0, a1, a0
6740+ ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: xori a0, a0, 1
67496741; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ret
67506742;
67516743; CHECK-UNALIGNED-RV32-V-LABEL: memcmp_le_zero:
@@ -6902,10 +6894,7 @@ define i1 @memcmp_ge_zero(ptr %s1, ptr %s2) nounwind {
69026894; CHECK-UNALIGNED-RV32-ZBB-NEXT: lw a1, 0(a1)
69036895; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a0, a0
69046896; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a1, a1
6905- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a2, a1, a0
69066897; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a0, a0, a1
6907- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sub a2, a2, a0
6908- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: slti a0, a2, 0
69096898; CHECK-UNALIGNED-RV32-ZBB-NEXT: xori a0, a0, 1
69106899; CHECK-UNALIGNED-RV32-ZBB-NEXT: ret
69116900;
@@ -6917,10 +6906,7 @@ define i1 @memcmp_ge_zero(ptr %s1, ptr %s2) nounwind {
69176906; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a1, a1
69186907; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a0, a0, 32
69196908; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a1, a1, 32
6920- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a2, a1, a0
69216909; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a0, a0, a1
6922- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sub a2, a2, a0
6923- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: slti a0, a2, 0
69246910; CHECK-UNALIGNED-RV64-ZBB-NEXT: xori a0, a0, 1
69256911; CHECK-UNALIGNED-RV64-ZBB-NEXT: ret
69266912;
@@ -6930,10 +6916,7 @@ define i1 @memcmp_ge_zero(ptr %s1, ptr %s2) nounwind {
69306916; CHECK-UNALIGNED-RV32-ZBKB-NEXT: lw a1, 0(a1)
69316917; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a0, a0
69326918; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a1, a1
6933- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a2, a1, a0
69346919; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a0, a0, a1
6935- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sub a2, a2, a0
6936- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: slti a0, a2, 0
69376920; CHECK-UNALIGNED-RV32-ZBKB-NEXT: xori a0, a0, 1
69386921; CHECK-UNALIGNED-RV32-ZBKB-NEXT: ret
69396922;
@@ -6945,10 +6928,7 @@ define i1 @memcmp_ge_zero(ptr %s1, ptr %s2) nounwind {
69456928; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a1, a1
69466929; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a0, a0, 32
69476930; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a1, a1, 32
6948- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a2, a1, a0
69496931; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a0, a0, a1
6950- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sub a2, a2, a0
6951- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: slti a0, a2, 0
69526932; CHECK-UNALIGNED-RV64-ZBKB-NEXT: xori a0, a0, 1
69536933; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ret
69546934;
0 commit comments