|
3 | 3 |
|
4 | 4 | ; Testing VFIRST patterns related to llvm/test/Transforms/LoopIdiom/RISCV/byte-compare-index.ll
|
5 | 5 |
|
6 |
| -define i32 @compare_bytes_simple(ptr %a, ptr %b, i32 %len, i32 %n) { |
| 6 | +define i32 @compare_bytes_simple(ptr %a, ptr %b, i32 signext %len, i32 signext %n) { |
7 | 7 | ; CHECK-LABEL: compare_bytes_simple:
|
8 | 8 | ; CHECK: # %bb.0: # %entry
|
9 |
| -; CHECK-NEXT: sext.w a4, a3 |
10 |
| -; CHECK-NEXT: addiw a5, a2, 1 |
11 |
| -; CHECK-NEXT: bltu a4, a5, .LBB0_7 |
| 9 | +; CHECK-NEXT: addiw a4, a2, 1 |
| 10 | +; CHECK-NEXT: bltu a3, a4, .LBB0_7 |
12 | 11 | ; CHECK-NEXT: # %bb.1: # %mismatch_mem_check
|
13 |
| -; CHECK-NEXT: slli a2, a5, 32 |
| 12 | +; CHECK-NEXT: slli a2, a4, 32 |
14 | 13 | ; CHECK-NEXT: srli a2, a2, 32
|
15 |
| -; CHECK-NEXT: slli a6, a3, 32 |
16 |
| -; CHECK-NEXT: srli a6, a6, 32 |
17 |
| -; CHECK-NEXT: add a7, a0, a2 |
18 |
| -; CHECK-NEXT: add t0, a0, a6 |
| 14 | +; CHECK-NEXT: slli a5, a3, 32 |
| 15 | +; CHECK-NEXT: srli a5, a5, 32 |
| 16 | +; CHECK-NEXT: add a6, a0, a2 |
| 17 | +; CHECK-NEXT: add a7, a0, a5 |
| 18 | +; CHECK-NEXT: srli a6, a6, 12 |
19 | 19 | ; CHECK-NEXT: srli a7, a7, 12
|
20 |
| -; CHECK-NEXT: srli t0, t0, 12 |
21 |
| -; CHECK-NEXT: bne a7, t0, .LBB0_7 |
| 20 | +; CHECK-NEXT: bne a6, a7, .LBB0_7 |
22 | 21 | ; CHECK-NEXT: # %bb.2: # %mismatch_mem_check
|
23 |
| -; CHECK-NEXT: add a7, a1, a2 |
24 |
| -; CHECK-NEXT: add t0, a1, a6 |
| 22 | +; CHECK-NEXT: add a6, a1, a2 |
| 23 | +; CHECK-NEXT: add a7, a1, a5 |
| 24 | +; CHECK-NEXT: srli a6, a6, 12 |
25 | 25 | ; CHECK-NEXT: srli a7, a7, 12
|
26 |
| -; CHECK-NEXT: srli t0, t0, 12 |
27 |
| -; CHECK-NEXT: bne a7, t0, .LBB0_7 |
| 26 | +; CHECK-NEXT: bne a6, a7, .LBB0_7 |
28 | 27 | ; CHECK-NEXT: .LBB0_3: # %mismatch_vec_loop
|
29 | 28 | ; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
|
30 |
| -; CHECK-NEXT: sub a4, a6, a2 |
| 29 | +; CHECK-NEXT: sub a4, a5, a2 |
31 | 30 | ; CHECK-NEXT: vsetvli a4, a4, e8, m2, ta, ma
|
32 |
| -; CHECK-NEXT: add a5, a0, a2 |
33 |
| -; CHECK-NEXT: vle8.v v8, (a5) |
34 |
| -; CHECK-NEXT: add a5, a1, a2 |
35 |
| -; CHECK-NEXT: vle8.v v10, (a5) |
| 31 | +; CHECK-NEXT: add a6, a0, a2 |
| 32 | +; CHECK-NEXT: vle8.v v8, (a6) |
| 33 | +; CHECK-NEXT: add a6, a1, a2 |
| 34 | +; CHECK-NEXT: vle8.v v10, (a6) |
36 | 35 | ; CHECK-NEXT: vmsne.vv v12, v8, v10
|
37 | 36 | ; CHECK-NEXT: vfirst.m a7, v12
|
38 |
| -; CHECK-NEXT: mv a5, a4 |
| 37 | +; CHECK-NEXT: mv a6, a4 |
39 | 38 | ; CHECK-NEXT: bltz a7, .LBB0_5
|
40 | 39 | ; CHECK-NEXT: # %bb.4: # %mismatch_vec_loop
|
41 | 40 | ; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
|
42 |
| -; CHECK-NEXT: mv a5, a7 |
| 41 | +; CHECK-NEXT: mv a6, a7 |
43 | 42 | ; CHECK-NEXT: .LBB0_5: # %mismatch_vec_loop
|
44 | 43 | ; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
|
45 |
| -; CHECK-NEXT: sext.w a7, a5 |
| 44 | +; CHECK-NEXT: sext.w a7, a6 |
46 | 45 | ; CHECK-NEXT: bne a7, a4, .LBB0_11
|
47 | 46 | ; CHECK-NEXT: # %bb.6: # %mismatch_vec_loop_inc
|
48 | 47 | ; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=1
|
49 | 48 | ; CHECK-NEXT: add a2, a2, a4
|
50 |
| -; CHECK-NEXT: bne a2, a6, .LBB0_3 |
| 49 | +; CHECK-NEXT: bne a2, a5, .LBB0_3 |
51 | 50 | ; CHECK-NEXT: j .LBB0_9
|
52 | 51 | ; CHECK-NEXT: .LBB0_7: # %mismatch_loop
|
53 | 52 | ; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
|
54 |
| -; CHECK-NEXT: slli a2, a5, 32 |
| 53 | +; CHECK-NEXT: slli a2, a4, 32 |
55 | 54 | ; CHECK-NEXT: srli a2, a2, 32
|
56 |
| -; CHECK-NEXT: add a6, a0, a2 |
57 |
| -; CHECK-NEXT: lbu a6, 0(a6) |
| 55 | +; CHECK-NEXT: add a5, a0, a2 |
| 56 | +; CHECK-NEXT: lbu a5, 0(a5) |
58 | 57 | ; CHECK-NEXT: add a2, a1, a2
|
59 | 58 | ; CHECK-NEXT: lbu a2, 0(a2)
|
60 |
| -; CHECK-NEXT: bne a6, a2, .LBB0_10 |
| 59 | +; CHECK-NEXT: bne a5, a2, .LBB0_10 |
61 | 60 | ; CHECK-NEXT: # %bb.8: # %mismatch_loop_inc
|
62 | 61 | ; CHECK-NEXT: # in Loop: Header=BB0_7 Depth=1
|
63 |
| -; CHECK-NEXT: addiw a5, a5, 1 |
64 |
| -; CHECK-NEXT: bne a4, a5, .LBB0_7 |
| 62 | +; CHECK-NEXT: addiw a4, a4, 1 |
| 63 | +; CHECK-NEXT: bne a3, a4, .LBB0_7 |
65 | 64 | ; CHECK-NEXT: .LBB0_9: # %while.end
|
66 | 65 | ; CHECK-NEXT: mv a0, a3
|
67 | 66 | ; CHECK-NEXT: ret
|
68 | 67 | ; CHECK-NEXT: .LBB0_10:
|
69 |
| -; CHECK-NEXT: mv a0, a5 |
| 68 | +; CHECK-NEXT: mv a0, a4 |
70 | 69 | ; CHECK-NEXT: ret
|
71 | 70 | ; CHECK-NEXT: .LBB0_11: # %mismatch_vec_loop_found
|
72 |
| -; CHECK-NEXT: slli a5, a5, 32 |
73 |
| -; CHECK-NEXT: srli a3, a5, 32 |
| 71 | +; CHECK-NEXT: slli a6, a6, 32 |
| 72 | +; CHECK-NEXT: srli a3, a6, 32 |
74 | 73 | ; CHECK-NEXT: add a0, a2, a3
|
75 | 74 | ; CHECK-NEXT: ret
|
76 | 75 | entry:
|
|
0 commit comments