@@ -6,68 +6,64 @@ target triple = "aarch64-unknown-linux-gnu"
66define void @vector_loop_with_icmp (ptr nocapture noundef writeonly %dest ) {
77; CHECK-LABEL: vector_loop_with_icmp:
88; CHECK: // %bb.0: // %entry
9- ; CHECK-NEXT: mov w8 , #15 // =0xf
9+ ; CHECK-NEXT: mov w9 , #15 // =0xf
1010; CHECK-NEXT: mov w10, #4 // =0x4
11- ; CHECK-NEXT: adrp x9 , .LCPI0_0
11+ ; CHECK-NEXT: adrp x8 , .LCPI0_0
1212; CHECK-NEXT: adrp x11, .LCPI0_1
13- ; CHECK-NEXT: dup v0.2d, x8
13+ ; CHECK-NEXT: dup v0.2d, x9
1414; CHECK-NEXT: dup v1.2d, x10
15- ; CHECK-NEXT: ldr q2, [x9 , :lo12:.LCPI0_0]
15+ ; CHECK-NEXT: ldr q2, [x8 , :lo12:.LCPI0_0]
1616; CHECK-NEXT: ldr q3, [x11, :lo12:.LCPI0_1]
17- ; CHECK-NEXT: add x9 , x0, #8
18- ; CHECK-NEXT: mov w10 , #16 // =0x10
19- ; CHECK-NEXT: mov w11 , #1 // =0x1
17+ ; CHECK-NEXT: add x8 , x0, #8
18+ ; CHECK-NEXT: mov w9 , #16 // =0x10
19+ ; CHECK-NEXT: mov w10 , #1 // =0x1
2020; CHECK-NEXT: b .LBB0_2
2121; CHECK-NEXT: .LBB0_1: // %pred.store.continue18
2222; CHECK-NEXT: // in Loop: Header=BB0_2 Depth=1
2323; CHECK-NEXT: add v2.2d, v2.2d, v1.2d
2424; CHECK-NEXT: add v3.2d, v3.2d, v1.2d
25- ; CHECK-NEXT: subs x10, x10 , #4
26- ; CHECK-NEXT: add x9, x9 , #16
25+ ; CHECK-NEXT: subs x9, x9 , #4
26+ ; CHECK-NEXT: add x8, x8 , #16
2727; CHECK-NEXT: b.eq .LBB0_10
2828; CHECK-NEXT: .LBB0_2: // %vector.body
2929; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
30- ; CHECK-NEXT: cmhi v4.2d, v0.2d, v3.2d
31- ; CHECK-NEXT: xtn v4.2s, v4.2d
32- ; CHECK-NEXT: uzp1 v4.4h, v4.4h, v0.4h
33- ; CHECK-NEXT: umov w12, v4.h[0]
34- ; CHECK-NEXT: tbz w12, #0, .LBB0_4
35- ; CHECK-NEXT: // %bb.3: // %pred.store.if
30+ ; CHECK-NEXT: cmhi v4.2d, v0.2d, v2.2d
31+ ; CHECK-NEXT: cmhi v5.2d, v0.2d, v3.2d
32+ ; CHECK-NEXT: uzp1 v4.4s, v5.4s, v4.4s
33+ ; CHECK-NEXT: xtn v4.4h, v4.4s
34+ ; CHECK-NEXT: umov w11, v4.h[0]
35+ ; CHECK-NEXT: tbnz w11, #0, .LBB0_6
36+ ; CHECK-NEXT: // %bb.3: // %pred.store.continue
3637; CHECK-NEXT: // in Loop: Header=BB0_2 Depth=1
37- ; CHECK-NEXT: stur w11, [x9, #-8]
38- ; CHECK-NEXT: .LBB0_4: // %pred.store.continue
38+ ; CHECK-NEXT: umov w11, v4.h[1]
39+ ; CHECK-NEXT: tbnz w11, #0, .LBB0_7
40+ ; CHECK-NEXT: .LBB0_4: // %pred.store.continue6
3941; CHECK-NEXT: // in Loop: Header=BB0_2 Depth=1
40- ; CHECK-NEXT: dup v4.2d, x8
41- ; CHECK-NEXT: cmhi v4.2d, v4.2d, v3.2d
42- ; CHECK-NEXT: xtn v4.2s, v4.2d
43- ; CHECK-NEXT: uzp1 v4.4h, v4.4h, v0.4h
44- ; CHECK-NEXT: umov w12, v4.h[1]
45- ; CHECK-NEXT: tbz w12, #0, .LBB0_6
46- ; CHECK-NEXT: // %bb.5: // %pred.store.if5
42+ ; CHECK-NEXT: umov w11, v4.h[2]
43+ ; CHECK-NEXT: tbnz w11, #0, .LBB0_8
44+ ; CHECK-NEXT: .LBB0_5: // %pred.store.continue8
4745; CHECK-NEXT: // in Loop: Header=BB0_2 Depth=1
48- ; CHECK-NEXT: stur w11, [x9, #-4]
49- ; CHECK-NEXT: .LBB0_6: // %pred.store.continue6
46+ ; CHECK-NEXT: umov w11, v4.h[3]
47+ ; CHECK-NEXT: tbz w11, #0, .LBB0_1
48+ ; CHECK-NEXT: b .LBB0_9
49+ ; CHECK-NEXT: .LBB0_6: // %pred.store.if
5050; CHECK-NEXT: // in Loop: Header=BB0_2 Depth=1
51- ; CHECK-NEXT: dup v4.2d, x8
52- ; CHECK-NEXT: cmhi v4.2d, v4.2d, v2.2d
53- ; CHECK-NEXT: xtn v4.2s, v4.2d
54- ; CHECK-NEXT: uzp1 v4.4h, v0.4h, v4.4h
55- ; CHECK-NEXT: umov w12, v4.h[2]
56- ; CHECK-NEXT: tbz w12, #0, .LBB0_8
57- ; CHECK-NEXT: // %bb.7: // %pred.store.if7
51+ ; CHECK-NEXT: stur w10, [x8, #-8]
52+ ; CHECK-NEXT: umov w11, v4.h[1]
53+ ; CHECK-NEXT: tbz w11, #0, .LBB0_4
54+ ; CHECK-NEXT: .LBB0_7: // %pred.store.if5
5855; CHECK-NEXT: // in Loop: Header=BB0_2 Depth=1
59- ; CHECK-NEXT: str w11, [x9]
60- ; CHECK-NEXT: .LBB0_8: // %pred.store.continue8
56+ ; CHECK-NEXT: stur w10, [x8, #-4]
57+ ; CHECK-NEXT: umov w11, v4.h[2]
58+ ; CHECK-NEXT: tbz w11, #0, .LBB0_5
59+ ; CHECK-NEXT: .LBB0_8: // %pred.store.if7
6160; CHECK-NEXT: // in Loop: Header=BB0_2 Depth=1
62- ; CHECK-NEXT: dup v4.2d, x8
63- ; CHECK-NEXT: cmhi v4.2d, v4.2d, v2.2d
64- ; CHECK-NEXT: xtn v4.2s, v4.2d
65- ; CHECK-NEXT: uzp1 v4.4h, v0.4h, v4.4h
66- ; CHECK-NEXT: umov w12, v4.h[3]
67- ; CHECK-NEXT: tbz w12, #0, .LBB0_1
68- ; CHECK-NEXT: // %bb.9: // %pred.store.if9
61+ ; CHECK-NEXT: str w10, [x8]
62+ ; CHECK-NEXT: umov w11, v4.h[3]
63+ ; CHECK-NEXT: tbz w11, #0, .LBB0_1
64+ ; CHECK-NEXT: .LBB0_9: // %pred.store.if9
6965; CHECK-NEXT: // in Loop: Header=BB0_2 Depth=1
70- ; CHECK-NEXT: str w11 , [x9 , #4]
66+ ; CHECK-NEXT: str w10 , [x8 , #4]
7167; CHECK-NEXT: b .LBB0_1
7268; CHECK-NEXT: .LBB0_10: // %for.cond.cleanup
7369; CHECK-NEXT: ret
0 commit comments