Skip to content

Commit e8f1125

Browse files
committed
Pre-Commit test: SWDEV-542372: crash in si-fold-operands
1 parent 7c2182a commit e8f1125

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
; RUN: not --crash llc -O3 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a %s -o /dev/null
2+
3+
@lds = internal addrspace(3) global [5 x i32] poison
4+
5+
define amdgpu_kernel void @kernel() {
6+
entry:
7+
%load.lds.0 = load <2 x i32>, ptr addrspace(3) @lds
8+
%vecext.i55 = extractelement <2 x i32> %load.lds.0, i64 0
9+
%cmp3.i57 = icmp eq i32 %vecext.i55, 2
10+
store i32 0, ptr addrspace(3) @lds
11+
br i1 %cmp3.i57, label %land.rhs49, label %land.end59
12+
13+
land.rhs49: ; preds = %entry
14+
%load.lds.1 = load <2 x i32>, ptr addrspace(3) @lds
15+
%vecext.i67 = extractelement <2 x i32> %load.lds.1, i64 0
16+
%cmp3.i69 = icmp eq i32 %vecext.i67, 1
17+
br i1 %cmp3.i69, label %land.rhs57, label %land.end59
18+
19+
land.rhs57: ; preds = %land.rhs49
20+
%rem.i.i.i = srem <2 x i32> %load.lds.0, %load.lds.1
21+
%ref.tmp.sroa.0.0.vec.extract.i.i = extractelement <2 x i32> %rem.i.i.i, i64 0
22+
store i32 %ref.tmp.sroa.0.0.vec.extract.i.i, ptr addrspace(3) @lds
23+
store i32 %ref.tmp.sroa.0.0.vec.extract.i.i, ptr addrspace(3) getelementptr inbounds nuw (i8, ptr addrspace(3) @lds, i32 4)
24+
%load.lds.2 = load <2 x i32>, ptr addrspace(3) @lds
25+
%vecext.i.i.i = extractelement <2 x i32> %load.lds.2, i64 0
26+
%cmp3.i.i.i = icmp ne i32 %vecext.i.i.i, 0
27+
%vecext.1.i.i.i = extractelement <2 x i32> %load.lds.2, i64 1
28+
%cmp3.1.i.i.i = icmp ne i32 %vecext.1.i.i.i, 0
29+
%.not.i.i = select i1 %cmp3.i.i.i, i1 true, i1 %cmp3.1.i.i.i
30+
br i1 %.not.i.i, label %land.end59, label %if.end.i
31+
32+
if.end.i: ; preds = %land.rhs57
33+
%and.i.i.i = and <2 x i32> %load.lds.2, splat (i32 1)
34+
%ref.tmp.sroa.0.0.vec.extract.i20.i = extractelement <2 x i32> %and.i.i.i, i64 0
35+
br label %land.end59
36+
37+
land.end59: ; preds = %if.end.i, %land.rhs57, %land.rhs49, %entry
38+
ret void
39+
}

0 commit comments

Comments
 (0)