8
8
9
9
; Tests reassociation (ptradd N0:(ptradd p, c1), z) where N0 has only one use.
10
10
define i64 @global_load_ZTwoUses (ptr addrspace (1 ) %base , i64 %voffset ) {
11
- ; GFX942_PTRADD-LABEL: global_load_ZTwoUses:
12
- ; GFX942_PTRADD: ; %bb.0:
13
- ; GFX942_PTRADD-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14
- ; GFX942_PTRADD-NEXT: v_lshl_add_u64 v[4:5], v[2:3], 0, 24
15
- ; GFX942_PTRADD-NEXT: v_lshl_add_u64 v[0:1], v[0:1], 0, v[4:5]
16
- ; GFX942_PTRADD-NEXT: global_load_dwordx2 v[0:1], v[0:1], off
17
- ; GFX942_PTRADD-NEXT: s_waitcnt vmcnt(0)
18
- ; GFX942_PTRADD-NEXT: v_lshl_add_u64 v[0:1], v[0:1], 0, v[2:3]
19
- ; GFX942_PTRADD-NEXT: s_setpc_b64 s[30:31]
20
- ;
21
- ; GFX942_LEGACY-LABEL: global_load_ZTwoUses:
22
- ; GFX942_LEGACY: ; %bb.0:
23
- ; GFX942_LEGACY-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
24
- ; GFX942_LEGACY-NEXT: v_lshl_add_u64 v[0:1], v[0:1], 0, v[2:3]
25
- ; GFX942_LEGACY-NEXT: global_load_dwordx2 v[0:1], v[0:1], off offset:24
26
- ; GFX942_LEGACY-NEXT: s_waitcnt vmcnt(0)
27
- ; GFX942_LEGACY-NEXT: v_lshl_add_u64 v[0:1], v[0:1], 0, v[2:3]
28
- ; GFX942_LEGACY-NEXT: s_setpc_b64 s[30:31]
11
+ ; GFX942-LABEL: global_load_ZTwoUses:
12
+ ; GFX942: ; %bb.0:
13
+ ; GFX942-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14
+ ; GFX942-NEXT: v_lshl_add_u64 v[0:1], v[0:1], 0, v[2:3]
15
+ ; GFX942-NEXT: global_load_dwordx2 v[0:1], v[0:1], off offset:24
16
+ ; GFX942-NEXT: s_waitcnt vmcnt(0)
17
+ ; GFX942-NEXT: v_lshl_add_u64 v[0:1], v[0:1], 0, v[2:3]
18
+ ; GFX942-NEXT: s_setpc_b64 s[30:31]
29
19
%gep0 = getelementptr inbounds i8 , ptr addrspace (1 ) %base , i64 24
30
20
%gep1 = getelementptr inbounds i8 , ptr addrspace (1 ) %gep0 , i64 %voffset
31
21
%l = load i64 , ptr addrspace (1 ) %gep1 , align 8
@@ -37,9 +27,8 @@ define i64 @global_load_gep_add_reassoc(ptr addrspace(1) %base, i64 %voffset) {
37
27
; GFX942_PTRADD-LABEL: global_load_gep_add_reassoc:
38
28
; GFX942_PTRADD: ; %bb.0:
39
29
; GFX942_PTRADD-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
40
- ; GFX942_PTRADD-NEXT: v_lshl_add_u64 v[2:3], v[2:3], 0, 24
41
30
; GFX942_PTRADD-NEXT: v_lshl_add_u64 v[0:1], v[0:1], 0, v[2:3]
42
- ; GFX942_PTRADD-NEXT: global_load_dwordx2 v[0:1], v[0:1], off
31
+ ; GFX942_PTRADD-NEXT: global_load_dwordx2 v[0:1], v[0:1], off offset:24
43
32
; GFX942_PTRADD-NEXT: s_waitcnt vmcnt(0)
44
33
; GFX942_PTRADD-NEXT: s_setpc_b64 s[30:31]
45
34
;
@@ -278,12 +267,11 @@ define ptr addrspace(1) @complextype_global_gep(i64 %offset) {
278
267
; GFX942_PTRADD-LABEL: complextype_global_gep:
279
268
; GFX942_PTRADD: ; %bb.0:
280
269
; GFX942_PTRADD-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
281
- ; GFX942_PTRADD-NEXT: v_lshl_add_u64 v[0:1], v[0:1], 0, 8
282
270
; GFX942_PTRADD-NEXT: s_getpc_b64 s[0:1]
283
271
; GFX942_PTRADD-NEXT: s_add_u32 s0, s0, v0@rel32@lo+4
284
272
; GFX942_PTRADD-NEXT: s_addc_u32 s1, s1, v0@rel32@hi+12
285
273
; GFX942_PTRADD-NEXT: v_lshl_add_u64 v[0:1], s[0:1], 0, v[0:1]
286
- ; GFX942_PTRADD-NEXT: v_lshl_add_u64 v[0:1], v[0:1], 0, 2
274
+ ; GFX942_PTRADD-NEXT: v_lshl_add_u64 v[0:1], v[0:1], 0, 10
287
275
; GFX942_PTRADD-NEXT: s_setpc_b64 s[30:31]
288
276
;
289
277
; GFX942_LEGACY-LABEL: complextype_global_gep:
0 commit comments