brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 981557f Raw
37 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512vl | FileCheck %s3 4declare <16 x i32> @llvm.experimental.vector.compress.v16i32(<16 x i32>, <16 x i1>, <16 x i32>)5 6define <16 x i32> @test_compress_freeze_elimination(<16 x i32> %a0, <16 x i32> %a1, <16 x i8> %a3) {7; CHECK-LABEL: test_compress_freeze_elimination:8; CHECK:       # %bb.0:9; CHECK-NEXT:    vpcmpgtd %zmm1, %zmm0, %k110; CHECK-NEXT:    vpmovzxbd {{.*#+}} zmm1 = 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,zero11; CHECK-NEXT:    vpbroadcastd {{.*#+}} zmm0 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]12; CHECK-NEXT:    vpcompressd %zmm1, %zmm0 {%k1}13; CHECK-NEXT:    retq14  %cmp = icmp sgt <16 x i32> %a0, %a115  %ext = zext <16 x i8> %a3 to <16 x i32>16  %cpr = call <16 x i32> @llvm.experimental.vector.compress.v16i32(<16 x i32> %ext, <16 x i1> %cmp, <16 x i32> splat(i32 15))17  %fr = freeze <16 x i32> %cpr18  %and = and <16 x i32> %fr, splat(i32 255)19  ret <16 x i32> %and20}21 22define <16 x i32> @test_compress_freeze(<16 x i32> %a0, <16 x i32> %a1, <16 x i8> %a3) {23; CHECK-LABEL: test_compress_freeze:24; CHECK:       # %bb.0:25; CHECK-NEXT:    vpcmpgtd %zmm1, %zmm0, %k126; 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,zero27; CHECK-NEXT:    vpcompressd %zmm0, %zmm0 {%k1}28; CHECK-NEXT:    vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm0, %zmm029; CHECK-NEXT:    retq30  %cmp = icmp sgt <16 x i32> %a0, %a131  %ext = zext <16 x i8> %a3 to <16 x i32>32  %cpr = call <16 x i32> @llvm.experimental.vector.compress.v16i32(<16 x i32> %ext, <16 x i1> %cmp, <16 x i32> poison)33  %fr = freeze <16 x i32> %cpr34  %and = and <16 x i32> %fr, splat(i32 255)35  ret <16 x i32> %and36}37