@@ -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