Skip to content

Commit 7d36727

Browse files
AMDGPU: Add uniformity analysis test for G_ZEXTLOAD and G_SEXTLOAD (llvm#157844)
1 parent 3c60c03 commit 7d36727

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

llvm/test/Analysis/UniformityAnalysis/AMDGPU/MIR/loads-gmir.mir

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,69 @@ body: |
3535
SI_RETURN
3636
3737
...
38+
39+
---
40+
name: zext_loads
41+
tracksRegLiveness: true
42+
body: |
43+
bb.1.entry:
44+
%1:_(p0) = G_IMPLICIT_DEF
45+
%4:_(p1) = G_IMPLICIT_DEF
46+
%6:_(p5) = G_IMPLICIT_DEF
47+
48+
; Atomic load
49+
; CHECK-NOT: DIVERGENT
50+
51+
%0:_(s32) = G_ZEXTLOAD %1(p0) :: (load seq_cst (s16) from `ptr undef`)
52+
53+
; flat load
54+
; CHECK-NOT: DIVERGENT
55+
56+
%2:_(s32) = G_ZEXTLOAD %1(p0) :: (load (s16) from `ptr undef`)
57+
58+
; Gloabal load
59+
; CHECK-NOT: DIVERGENT
60+
%3:_(s32) = G_ZEXTLOAD %4(p1) :: (load (s16) from `ptr addrspace(1) undef`, addrspace 1)
61+
62+
; Private load
63+
; CHECK-NOT: DIVERGENT
64+
%5:_(s32) = G_ZEXTLOAD %6(p5) :: (volatile load (s16) from `ptr addrspace(5) undef`, addrspace 5)
65+
G_STORE %2(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)
66+
G_STORE %3(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)
67+
G_STORE %5(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)
68+
G_STORE %0(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)
69+
SI_RETURN
70+
71+
...
72+
73+
---
74+
name: sext_loads
75+
tracksRegLiveness: true
76+
body: |
77+
bb.1.entry:
78+
%1:_(p0) = G_IMPLICIT_DEF
79+
%4:_(p1) = G_IMPLICIT_DEF
80+
%6:_(p5) = G_IMPLICIT_DEF
81+
82+
; Atomic load
83+
; CHECK-NOT: DIVERGENT
84+
%0:_(s32) = G_SEXTLOAD %1(p0) :: (load seq_cst (s16) from `ptr undef`)
85+
86+
; flat load
87+
; CHECK-NOT: DIVERGENT
88+
%2:_(s32) = G_SEXTLOAD %1(p0) :: (load (s16) from `ptr undef`)
89+
90+
; Gloabal load
91+
; CHECK-NOT: DIVERGENT
92+
%3:_(s32) = G_SEXTLOAD %4(p1) :: (load (s16) from `ptr addrspace(1) undef`, addrspace 1)
93+
94+
; Private load
95+
; CHECK-NOT: DIVERGENT
96+
%5:_(s32) = G_SEXTLOAD %6(p5) :: (volatile load (s16) from `ptr addrspace(5) undef`, addrspace 5)
97+
G_STORE %2(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)
98+
G_STORE %3(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)
99+
G_STORE %5(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)
100+
G_STORE %0(s32), %4(p1) :: (volatile store (s32) into `ptr addrspace(1) undef`, addrspace 1)
101+
SI_RETURN
102+
103+
...

0 commit comments

Comments
 (0)