@@ -6,68 +6,64 @@ target triple = "aarch64-unknown-linux-gnu"
6
6
define void @vector_loop_with_icmp (ptr nocapture noundef writeonly %dest ) {
7
7
; CHECK-LABEL: vector_loop_with_icmp:
8
8
; CHECK: // %bb.0: // %entry
9
- ; CHECK-NEXT: mov w8 , #15 // =0xf
9
+ ; CHECK-NEXT: mov w9 , #15 // =0xf
10
10
; CHECK-NEXT: mov w10, #4 // =0x4
11
- ; CHECK-NEXT: adrp x9 , .LCPI0_0
11
+ ; CHECK-NEXT: adrp x8 , .LCPI0_0
12
12
; CHECK-NEXT: adrp x11, .LCPI0_1
13
- ; CHECK-NEXT: dup v0.2d, x8
13
+ ; CHECK-NEXT: dup v0.2d, x9
14
14
; CHECK-NEXT: dup v1.2d, x10
15
- ; CHECK-NEXT: ldr q2, [x9 , :lo12:.LCPI0_0]
15
+ ; CHECK-NEXT: ldr q2, [x8 , :lo12:.LCPI0_0]
16
16
; 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
20
20
; CHECK-NEXT: b .LBB0_2
21
21
; CHECK-NEXT: .LBB0_1: // %pred.store.continue18
22
22
; CHECK-NEXT: // in Loop: Header=BB0_2 Depth=1
23
23
; CHECK-NEXT: add v2.2d, v2.2d, v1.2d
24
24
; 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
27
27
; CHECK-NEXT: b.eq .LBB0_10
28
28
; CHECK-NEXT: .LBB0_2: // %vector.body
29
29
; 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
36
37
; 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
39
41
; 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
47
45
; 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
50
50
; 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
58
55
; 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
61
60
; 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
69
65
; CHECK-NEXT: // in Loop: Header=BB0_2 Depth=1
70
- ; CHECK-NEXT: str w11 , [x9 , #4]
66
+ ; CHECK-NEXT: str w10 , [x8 , #4]
71
67
; CHECK-NEXT: b .LBB0_1
72
68
; CHECK-NEXT: .LBB0_10: // %for.cond.cleanup
73
69
; CHECK-NEXT: ret
0 commit comments