[RISCV] Add shrinkwrap test cases showing gaps in current impl
[llvm-project.git] / llvm / test / CodeGen / X86 / pr53842.ll
bloba962a9b3ddf2fbc9bd4c1eef98d31fafb89f88e2
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s
3 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512vl | FileCheck %s
4 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512bw | FileCheck %s
5 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512dq | FileCheck %s
7 define void @PR53842() {
8 ; CHECK-LABEL: PR53842:
9 ; CHECK:       # %bb.0: # %entry
10 ; CHECK-NEXT:    vpxor %xmm0, %xmm0, %xmm0
11 ; CHECK-NEXT:    vpmovzxbq {{.*#+}} zmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero,mem[1],zero,zero,zero,zero,zero,zero,zero,mem[2],zero,zero,zero,zero,zero,zero,zero,mem[3],zero,zero,zero,zero,zero,zero,zero,mem[4],zero,zero,zero,zero,zero,zero,zero,mem[5],zero,zero,zero,zero,zero,zero,zero,mem[6],zero,zero,zero,zero,zero,zero,zero,mem[7],zero,zero,zero,zero,zero,zero,zero
12 ; CHECK-NEXT:    vextracti64x4 $1, %zmm1, %ymm2
13 ; CHECK-NEXT:    vpxor %xmm3, %xmm3, %xmm3
14 ; CHECK-NEXT:    vpcmpeqq %ymm3, %ymm2, %ymm2
15 ; CHECK-NEXT:    vpcmpeqq %ymm3, %ymm1, %ymm1
16 ; CHECK-NEXT:    vinserti64x4 $1, %ymm2, %zmm1, %zmm1
17 ; CHECK-NEXT:    .p2align 4
18 ; CHECK-NEXT:  .LBB0_1: # %vector.body
19 ; CHECK-NEXT:    # =>This Inner Loop Header: Depth=1
20 ; CHECK-NEXT:    vpsubq %zmm1, %zmm0, %zmm0
21 ; CHECK-NEXT:    jmp .LBB0_1
22 entry:
23   br label %vector.body
25 vector.body:
26   %index = phi i64 [ 0, %entry ], [ 0, %vector.body ]
27   %vec.phi = phi <8 x i64> [ zeroinitializer, %entry ], [ %i2, %vector.body ]
28   %wide.load23 = load <8 x i8>, ptr undef, align 1
29   %i = icmp eq <8 x i8> zeroinitializer, %wide.load23
30   %i1 = zext <8 x i1> %i to <8 x i64>
31   %i2 = add <8 x i64> %vec.phi, %i1
32   br i1 false, label %middle.block, label %vector.body
34 middle.block:
35   %bin.rdx = add <8 x i64> undef, %i2
36   unreachable