Skip to content

Commit bebf3a9

Browse files
authored
[AMDGPU] - Add bitreplicate const folding tests (#72649)
Add more test cases for `s_bitreplicate` constant folding.
1 parent ce800c2 commit bebf3a9

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bitreplicate.ll

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,52 @@ entry:
1616
ret i64 %br
1717
}
1818

19+
define i64 @test_s_bitreplicate_constant_zero() {
20+
; GFX11-LABEL: test_s_bitreplicate_constant_zero:
21+
; GFX11: ; %bb.0: ; %entry
22+
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
23+
; GFX11-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, 0
24+
; GFX11-NEXT: s_setpc_b64 s[30:31]
25+
entry:
26+
%br = call i64 @llvm.amdgcn.s.bitreplicate(i32 0)
27+
ret i64 %br
28+
}
29+
30+
define i64 @test_s_bitreplicate_constant_neg_one() {
31+
; GFX11-LABEL: test_s_bitreplicate_constant_neg_one:
32+
; GFX11: ; %bb.0: ; %entry
33+
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
34+
; GFX11-NEXT: v_dual_mov_b32 v0, -1 :: v_dual_mov_b32 v1, -1
35+
; GFX11-NEXT: s_setpc_b64 s[30:31]
36+
entry:
37+
%br = call i64 @llvm.amdgcn.s.bitreplicate(i32 -1)
38+
ret i64 %br
39+
}
40+
41+
define i64 @test_s_bitreplicate_constant_undef() {
42+
; GFX11-LABEL: test_s_bitreplicate_constant_undef:
43+
; GFX11: ; %bb.0: ; %entry
44+
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
45+
; GFX11-NEXT: s_bitreplicate_b64_b32 s[0:1], s0
46+
; GFX11-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
47+
; GFX11-NEXT: s_setpc_b64 s[30:31]
48+
entry:
49+
%br = call i64 @llvm.amdgcn.s.bitreplicate(i32 undef)
50+
ret i64 %br
51+
}
52+
53+
define i64 @test_s_bitreplicate_constant_poison() {
54+
; GFX11-LABEL: test_s_bitreplicate_constant_poison:
55+
; GFX11: ; %bb.0: ; %entry
56+
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
57+
; GFX11-NEXT: s_bitreplicate_b64_b32 s[0:1], s0
58+
; GFX11-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
59+
; GFX11-NEXT: s_setpc_b64 s[30:31]
60+
entry:
61+
%br = call i64 @llvm.amdgcn.s.bitreplicate(i32 poison)
62+
ret i64 %br
63+
}
64+
1965
define amdgpu_cs void @test_s_bitreplicate_sgpr(i32 inreg %mask, ptr addrspace(1) %out) {
2066
; GFX11-LABEL: test_s_bitreplicate_sgpr:
2167
; GFX11: ; %bb.0: ; %entry

0 commit comments

Comments
 (0)