================ @@ -3186,190 +3186,24 @@ define i32 @bcmp_size_16(ptr %s1, ptr %s2) nounwind { ; ; CHECK-ALIGNED-RV32-V-LABEL: bcmp_size_16: ; CHECK-ALIGNED-RV32-V: # %bb.0: # %entry -; CHECK-ALIGNED-RV32-V-NEXT: lbu a2, 1(a0) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a3, 0(a0) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a4, 2(a0) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a5, 3(a0) -; CHECK-ALIGNED-RV32-V-NEXT: slli a2, a2, 8 -; CHECK-ALIGNED-RV32-V-NEXT: or a2, a2, a3 -; CHECK-ALIGNED-RV32-V-NEXT: slli a4, a4, 16 -; CHECK-ALIGNED-RV32-V-NEXT: slli a5, a5, 24 -; CHECK-ALIGNED-RV32-V-NEXT: or a4, a5, a4 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a3, 0(a1) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a5, 1(a1) -; CHECK-ALIGNED-RV32-V-NEXT: or a2, a4, a2 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a4, 2(a1) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a6, 3(a1) -; CHECK-ALIGNED-RV32-V-NEXT: slli a5, a5, 8 -; CHECK-ALIGNED-RV32-V-NEXT: or a3, a5, a3 -; CHECK-ALIGNED-RV32-V-NEXT: slli a4, a4, 16 -; CHECK-ALIGNED-RV32-V-NEXT: slli a6, a6, 24 -; CHECK-ALIGNED-RV32-V-NEXT: or a4, a6, a4 -; CHECK-ALIGNED-RV32-V-NEXT: or a3, a4, a3 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a4, 4(a0) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a5, 5(a0) -; CHECK-ALIGNED-RV32-V-NEXT: xor a2, a2, a3 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a3, 6(a0) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a6, 7(a0) -; CHECK-ALIGNED-RV32-V-NEXT: slli a5, a5, 8 -; CHECK-ALIGNED-RV32-V-NEXT: or a4, a5, a4 -; CHECK-ALIGNED-RV32-V-NEXT: slli a3, a3, 16 -; CHECK-ALIGNED-RV32-V-NEXT: slli a6, a6, 24 -; CHECK-ALIGNED-RV32-V-NEXT: or a3, a6, a3 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a5, 4(a1) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a6, 5(a1) -; CHECK-ALIGNED-RV32-V-NEXT: or a3, a3, a4 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a4, 6(a1) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a7, 7(a1) -; CHECK-ALIGNED-RV32-V-NEXT: slli a6, a6, 8 -; CHECK-ALIGNED-RV32-V-NEXT: or a5, a6, a5 -; CHECK-ALIGNED-RV32-V-NEXT: slli a4, a4, 16 -; CHECK-ALIGNED-RV32-V-NEXT: slli a7, a7, 24 -; CHECK-ALIGNED-RV32-V-NEXT: or a4, a7, a4 -; CHECK-ALIGNED-RV32-V-NEXT: or a4, a4, a5 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a5, 8(a0) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a6, 9(a0) -; CHECK-ALIGNED-RV32-V-NEXT: xor a3, a3, a4 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a4, 10(a0) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a7, 11(a0) -; CHECK-ALIGNED-RV32-V-NEXT: slli a6, a6, 8 -; CHECK-ALIGNED-RV32-V-NEXT: or a5, a6, a5 -; CHECK-ALIGNED-RV32-V-NEXT: slli a4, a4, 16 -; CHECK-ALIGNED-RV32-V-NEXT: slli a7, a7, 24 -; CHECK-ALIGNED-RV32-V-NEXT: or a4, a7, a4 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a6, 8(a1) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a7, 9(a1) -; CHECK-ALIGNED-RV32-V-NEXT: or a4, a4, a5 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a5, 10(a1) -; CHECK-ALIGNED-RV32-V-NEXT: lbu t0, 11(a1) -; CHECK-ALIGNED-RV32-V-NEXT: slli a7, a7, 8 -; CHECK-ALIGNED-RV32-V-NEXT: or a6, a7, a6 -; CHECK-ALIGNED-RV32-V-NEXT: slli a5, a5, 16 -; CHECK-ALIGNED-RV32-V-NEXT: slli t0, t0, 24 -; CHECK-ALIGNED-RV32-V-NEXT: or a5, t0, a5 -; CHECK-ALIGNED-RV32-V-NEXT: or a5, a5, a6 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a6, 12(a0) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a7, 13(a0) -; CHECK-ALIGNED-RV32-V-NEXT: xor a4, a4, a5 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a5, 14(a0) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a0, 15(a0) -; CHECK-ALIGNED-RV32-V-NEXT: slli a7, a7, 8 -; CHECK-ALIGNED-RV32-V-NEXT: or a6, a7, a6 -; CHECK-ALIGNED-RV32-V-NEXT: slli a5, a5, 16 -; CHECK-ALIGNED-RV32-V-NEXT: slli a0, a0, 24 -; CHECK-ALIGNED-RV32-V-NEXT: or a0, a0, a5 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a5, 12(a1) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a7, 13(a1) -; CHECK-ALIGNED-RV32-V-NEXT: or a0, a0, a6 -; CHECK-ALIGNED-RV32-V-NEXT: lbu a6, 14(a1) -; CHECK-ALIGNED-RV32-V-NEXT: lbu a1, 15(a1) -; CHECK-ALIGNED-RV32-V-NEXT: slli a7, a7, 8 -; CHECK-ALIGNED-RV32-V-NEXT: or a5, a7, a5 -; CHECK-ALIGNED-RV32-V-NEXT: slli a6, a6, 16 -; CHECK-ALIGNED-RV32-V-NEXT: slli a1, a1, 24 -; CHECK-ALIGNED-RV32-V-NEXT: or a1, a1, a6 -; CHECK-ALIGNED-RV32-V-NEXT: or a1, a1, a5 -; CHECK-ALIGNED-RV32-V-NEXT: xor a0, a0, a1 -; CHECK-ALIGNED-RV32-V-NEXT: or a2, a2, a3 -; CHECK-ALIGNED-RV32-V-NEXT: or a0, a4, a0 -; CHECK-ALIGNED-RV32-V-NEXT: or a0, a2, a0 -; CHECK-ALIGNED-RV32-V-NEXT: snez a0, a0 +; CHECK-ALIGNED-RV32-V-NEXT: vsetivli zero, 16, e8, m1, ta, ma +; CHECK-ALIGNED-RV32-V-NEXT: vle8.v v8, (a0) +; CHECK-ALIGNED-RV32-V-NEXT: vle8.v v9, (a1) +; CHECK-ALIGNED-RV32-V-NEXT: vmseq.vv v8, v8, v9 +; CHECK-ALIGNED-RV32-V-NEXT: vmnot.m v8, v8 ---------------- topperc wrote:
Missing combine to use vmsne? https://github.com/llvm/llvm-project/pull/114517 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits