Skip to content

Commit 122d49a

Browse files
[DAG] Add negative test case for freeze elimination in vector.compress
1 parent 1e3bc70 commit 122d49a

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

llvm/test/CodeGen/X86/vector-compress-freeze.ll

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,22 @@ define <16 x i32> @test_compress_freeze_elimination(<16 x i32> %a0, <16 x i32> %
1717
%fr = freeze <16 x i32> %cpr
1818
%and = and <16 x i32> %fr, splat(i32 255)
1919
ret <16 x i32> %and
20-
}
20+
}
21+
22+
; Negative Case
23+
; We use 'poison' here because 'undef' is deprecated.
24+
define <16 x i32> @test_compress_freeze_must_remain(<16 x i32> %a0, <16 x i32> %a1, <16 x i8> %a3) {
25+
; CHECK-LABEL: test_compress_freeze_must_remain:
26+
; CHECK: # %bb.0:
27+
; CHECK-NEXT: vpcmpgtd %zmm1, %zmm0, %k1
28+
; CHECK-NEXT: vpmovzxbd {{.*#+}} zmm0 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero,xmm2[4],zero,zero,zero,xmm2[5],zero,zero,zero,xmm2[6],zero,zero,zero,xmm2[7],zero,zero,zero,xmm2[8],zero,zero,zero,xmm2[9],zero,zero,zero,xmm2[10],zero,zero,zero,xmm2[11],zero,zero,zero,xmm2[12],zero,zero,zero,xmm2[13],zero,zero,zero,xmm2[14],zero,zero,zero,xmm2[15],zero,zero,zero
29+
; CHECK-NEXT: vpcompressd %zmm0, %zmm0 {%k1} {z}
30+
; CHECK-NEXT: vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm0, %zmm0
31+
; CHECK-NEXT: retq
32+
%cmp = icmp sgt <16 x i32> %a0, %a1
33+
%ext = zext <16 x i8> %a3 to <16 x i32>
34+
%cpr = call <16 x i32> @llvm.experimental.vector.compress.v16i32(<16 x i32> %ext, <16 x i1> %cmp, <16 x i32> poison)
35+
%fr = freeze <16 x i32> %cpr
36+
%and = and <16 x i32> %fr, splat(i32 255)
37+
ret <16 x i32> %and
38+
}

0 commit comments

Comments
 (0)