@@ -6664,10 +6664,8 @@ define i1 @memcmp_le_zero(ptr %s1, ptr %s2) nounwind {
66646664; CHECK-UNALIGNED-RV32-ZBB-NEXT: lw a1, 0(a1)
66656665; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a0, a0
66666666; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a1, a1
6667- ; CHECK-UNALIGNED-RV32-ZBB-NEXT: sltu a2, a0, a1
66686667; 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
66716669; CHECK-UNALIGNED-RV32-ZBB-NEXT: ret
66726670;
66736671; CHECK-UNALIGNED-RV64-ZBB-LABEL: memcmp_le_zero:
@@ -6678,10 +6676,8 @@ define i1 @memcmp_le_zero(ptr %s1, ptr %s2) nounwind {
66786676; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a1, a1
66796677; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a0, a0, 32
66806678; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a1, a1, 32
6681- ; CHECK-UNALIGNED-RV64-ZBB-NEXT: sltu a2, a0, a1
66826679; 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
66856681; CHECK-UNALIGNED-RV64-ZBB-NEXT: ret
66866682;
66876683; CHECK-UNALIGNED-RV32-ZBKB-LABEL: memcmp_le_zero:
@@ -6690,10 +6686,8 @@ define i1 @memcmp_le_zero(ptr %s1, ptr %s2) nounwind {
66906686; CHECK-UNALIGNED-RV32-ZBKB-NEXT: lw a1, 0(a1)
66916687; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a0, a0
66926688; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a1, a1
6693- ; CHECK-UNALIGNED-RV32-ZBKB-NEXT: sltu a2, a0, a1
66946689; 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
66976691; CHECK-UNALIGNED-RV32-ZBKB-NEXT: ret
66986692;
66996693; CHECK-UNALIGNED-RV64-ZBKB-LABEL: memcmp_le_zero:
@@ -6704,10 +6698,8 @@ define i1 @memcmp_le_zero(ptr %s1, ptr %s2) nounwind {
67046698; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a1, a1
67056699; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a0, a0, 32
67066700; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a1, a1, 32
6707- ; CHECK-UNALIGNED-RV64-ZBKB-NEXT: sltu a2, a0, a1
67086701; 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
67116703; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ret
67126704;
67136705; CHECK-UNALIGNED-RV32-V-LABEL: memcmp_le_zero:
@@ -6864,10 +6856,7 @@ define i1 @memcmp_ge_zero(ptr %s1, ptr %s2) nounwind {
68646856; CHECK-UNALIGNED-RV32-ZBB-NEXT: lw a1, 0(a1)
68656857; CHECK-UNALIGNED-RV32-ZBB-NEXT: rev8 a0, a0
68666858; 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
68716860; CHECK-UNALIGNED-RV32-ZBB-NEXT: xori a0, a0, 1
68726861; CHECK-UNALIGNED-RV32-ZBB-NEXT: ret
68736862;
@@ -6879,10 +6868,7 @@ define i1 @memcmp_ge_zero(ptr %s1, ptr %s2) nounwind {
68796868; CHECK-UNALIGNED-RV64-ZBB-NEXT: rev8 a1, a1
68806869; CHECK-UNALIGNED-RV64-ZBB-NEXT: srli a0, a0, 32
68816870; 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
68866872; CHECK-UNALIGNED-RV64-ZBB-NEXT: xori a0, a0, 1
68876873; CHECK-UNALIGNED-RV64-ZBB-NEXT: ret
68886874;
@@ -6892,10 +6878,7 @@ define i1 @memcmp_ge_zero(ptr %s1, ptr %s2) nounwind {
68926878; CHECK-UNALIGNED-RV32-ZBKB-NEXT: lw a1, 0(a1)
68936879; CHECK-UNALIGNED-RV32-ZBKB-NEXT: rev8 a0, a0
68946880; 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
68996882; CHECK-UNALIGNED-RV32-ZBKB-NEXT: xori a0, a0, 1
69006883; CHECK-UNALIGNED-RV32-ZBKB-NEXT: ret
69016884;
@@ -6907,10 +6890,7 @@ define i1 @memcmp_ge_zero(ptr %s1, ptr %s2) nounwind {
69076890; CHECK-UNALIGNED-RV64-ZBKB-NEXT: rev8 a1, a1
69086891; CHECK-UNALIGNED-RV64-ZBKB-NEXT: srli a0, a0, 32
69096892; 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
69146894; CHECK-UNALIGNED-RV64-ZBKB-NEXT: xori a0, a0, 1
69156895; CHECK-UNALIGNED-RV64-ZBKB-NEXT: ret
69166896;
0 commit comments