@@ -13,25 +13,26 @@ target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
13
13
define i64 @bfis_in_loop_zero () {
14
14
; CHECK-LABEL: bfis_in_loop_zero:
15
15
; CHECK: // %bb.0: // %entry
16
- ; CHECK-NEXT: adrp x8, :got:global
17
- ; CHECK-NEXT: mov x0, xzr
18
- ; CHECK-NEXT: mov w9, wzr
19
- ; CHECK-NEXT: ldr x8, [x8, :got_lo12:global]
20
- ; CHECK-NEXT: ldr x8, [x8]
21
- ; CHECK-NEXT: .LBB0_1: // %midblock
22
- ; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
23
- ; CHECK-NEXT: ldrh w10, [x8, #72]
24
- ; CHECK-NEXT: ldr x13, [x8, #8]
25
- ; CHECK-NEXT: lsr w11, w10, #8
26
- ; CHECK-NEXT: cmp w10, #0
27
- ; CHECK-NEXT: ldr x8, [x13, #16]
28
- ; CHECK-NEXT: cset w12, ne
29
- ; CHECK-NEXT: csel w9, w9, w11, eq
30
- ; CHECK-NEXT: and x11, x0, #0xffffffff00000000
31
- ; CHECK-NEXT: bfi w10, w9, #8, #24
32
- ; CHECK-NEXT: orr x11, x11, x12, lsl #16
33
- ; CHECK-NEXT: orr x0, x11, x10
34
- ; CHECK-NEXT: cbnz x13, .LBB0_1
16
+ ; CHECK-NEXT: adrp x9, :got:global
17
+ ; CHECK-NEXT: mov x0, xzr
18
+ ; CHECK-NEXT: mov w8, wzr
19
+ ; CHECK-NEXT: ldr x9, [x9, :got_lo12:global]
20
+ ; CHECK-NEXT: mov w10, #65536 // =0x10000
21
+ ; CHECK-NEXT: ldr x9, [x9]
22
+ ; CHECK-NEXT: .LBB0_1: // %midblock
23
+ ; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
24
+ ; CHECK-NEXT: ldrh w11, [x9, #72]
25
+ ; CHECK-NEXT: and x13, x0, #0xffffffff00000000
26
+ ; CHECK-NEXT: lsr w12, w11, #8
27
+ ; CHECK-NEXT: cmp w11, #0
28
+ ; CHECK-NEXT: csel w8, w8, w12, eq
29
+ ; CHECK-NEXT: ldr x12, [x9, #8]
30
+ ; CHECK-NEXT: csel x9, xzr, x10, eq
31
+ ; CHECK-NEXT: bfi w11, w8, #8, #24
32
+ ; CHECK-NEXT: orr x13, x9, x13
33
+ ; CHECK-NEXT: ldr x9, [x12, #16]
34
+ ; CHECK-NEXT: orr x0, x13, x11
35
+ ; CHECK-NEXT: cbnz x12, .LBB0_1
35
36
; CHECK-NEXT: // %bb.2: // %exit
36
37
; CHECK-NEXT: ret
37
38
entry:
@@ -80,25 +81,26 @@ exit:
80
81
define i64 @bfis_in_loop_undef () {
81
82
; CHECK-LABEL: bfis_in_loop_undef:
82
83
; CHECK: // %bb.0: // %entry
83
- ; CHECK-NEXT: adrp x9, :got:global
84
- ; CHECK-NEXT: mov w8, wzr
85
- ; CHECK-NEXT: // implicit-def: $x0
86
- ; CHECK-NEXT: ldr x9, [x9, :got_lo12:global]
87
- ; CHECK-NEXT: ldr x9, [x9]
88
- ; CHECK-NEXT: .LBB1_1: // %midblock
89
- ; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
90
- ; CHECK-NEXT: ldrh w10, [x9, #72]
91
- ; CHECK-NEXT: ldr x13, [x9, #8]
92
- ; CHECK-NEXT: lsr w11, w10, #8
93
- ; CHECK-NEXT: cmp w10, #0
94
- ; CHECK-NEXT: ldr x9, [x13, #16]
95
- ; CHECK-NEXT: cset w12, ne
96
- ; CHECK-NEXT: csel w8, w8, w11, eq
97
- ; CHECK-NEXT: and x11, x0, #0xffffffff00000000
98
- ; CHECK-NEXT: bfi w10, w8, #8, #24
99
- ; CHECK-NEXT: orr x11, x11, x12, lsl #16
100
- ; CHECK-NEXT: orr x0, x11, x10
101
- ; CHECK-NEXT: cbnz x13, .LBB1_1
84
+ ; CHECK-NEXT: adrp x9, :got:global
85
+ ; CHECK-NEXT: mov w8, wzr
86
+ ; CHECK-NEXT: // implicit-def: $x0
87
+ ; CHECK-NEXT: ldr x9, [x9, :got_lo12:global]
88
+ ; CHECK-NEXT: ldr x10, [x9]
89
+ ; CHECK-NEXT: mov w9, #65536 // =0x10000
90
+ ; CHECK-NEXT: .LBB1_1: // %midblock
91
+ ; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
92
+ ; CHECK-NEXT: ldrh w11, [x10, #72]
93
+ ; CHECK-NEXT: and x13, x0, #0xffffffff00000000
94
+ ; CHECK-NEXT: lsr w12, w11, #8
95
+ ; CHECK-NEXT: cmp w11, #0
96
+ ; CHECK-NEXT: csel w8, w8, w12, eq
97
+ ; CHECK-NEXT: ldr x12, [x10, #8]
98
+ ; CHECK-NEXT: csel x10, xzr, x9, eq
99
+ ; CHECK-NEXT: bfi w11, w8, #8, #24
100
+ ; CHECK-NEXT: orr x13, x10, x13
101
+ ; CHECK-NEXT: ldr x10, [x12, #16]
102
+ ; CHECK-NEXT: orr x0, x13, x11
103
+ ; CHECK-NEXT: cbnz x12, .LBB1_1
102
104
; CHECK-NEXT: // %bb.2: // %exit
103
105
; CHECK-NEXT: ret
104
106
entry:
0 commit comments