Skip to content

Commit d67fee9

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

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

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

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,21 @@ 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+
define <16 x i32> @test_compress_freeze_must_remain(<16 x i32> %a0, <16 x i32> %a1, <16 x i8> %a3) {
24+
; CHECK-LABEL: test_compress_freeze_must_remain:
25+
; CHECK: # %bb.0:
26+
; CHECK-NEXT: vpcmpgtd %zmm1, %zmm0, %k1
27+
; 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
28+
; CHECK-NEXT: vpcompressd %zmm0, %zmm0 {%k1} {z}
29+
; CHECK-NEXT: vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm0, %zmm0
30+
; CHECK-NEXT: retq
31+
%cmp = icmp sgt <16 x i32> %a0, %a1
32+
%ext = zext <16 x i8> %a3 to <16 x i32>
33+
%cpr = call <16 x i32> @llvm.experimental.vector.compress.v16i32(<16 x i32> %ext, <16 x i1> %cmp, <16 x i32> poison)
34+
%fr = freeze <16 x i32> %cpr
35+
%and = and <16 x i32> %fr, splat(i32 255)
36+
ret <16 x i32> %and
37+
}

0 commit comments

Comments
 (0)