brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.7 KiB · cc7bfb5 Raw
358 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s -mtriple=x86_64-linux-gnu -mattr=avx512vl | FileCheck %s3 4define <32 x half> @dump_vec() {5; CHECK-LABEL: dump_vec:6; CHECK:       # %bb.0:7; CHECK-NEXT:    vxorps %xmm0, %xmm0, %xmm08; CHECK-NEXT:    testb %al, %al9; CHECK-NEXT:    jne .LBB0_210; CHECK-NEXT:  # %bb.1: # %cond.load11; CHECK-NEXT:    vmovups (%rax), %zmm012; CHECK-NEXT:  .LBB0_2:13; CHECK-NEXT:    retq14  %1 = call <32 x half> @llvm.masked.load.v32f16.p0(ptr poison, i32 2, <32 x i1> poison, <32 x half> <half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0, half 0.0>)15  ret <32 x half> %116}17 18define <32 x half> @build_vec(ptr %p, <32 x i1> %mask) {19; CHECK-LABEL: build_vec:20; CHECK:       # %bb.0:21; CHECK-NEXT:    vpsllw $7, %ymm0, %ymm022; CHECK-NEXT:    vpmovmskb %ymm0, %eax23; CHECK-NEXT:    testb $1, %al24; CHECK-NEXT:    je .LBB1_125; CHECK-NEXT:  # %bb.2: # %cond.load26; CHECK-NEXT:    vpinsrw $0, (%rdi), %xmm0, %xmm027; CHECK-NEXT:    vpbroadcastd {{.*#+}} zmm1 = [2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0]28; CHECK-NEXT:    vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3,4,5,6,7]29; CHECK-NEXT:    vinserti32x4 $0, %xmm0, %zmm1, %zmm030; CHECK-NEXT:    testb $2, %al31; CHECK-NEXT:    jne .LBB1_432; CHECK-NEXT:    jmp .LBB1_533; CHECK-NEXT:  .LBB1_1:34; CHECK-NEXT:    vpbroadcastw {{.*#+}} ymm0 = [2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0,2.0E+0]35; CHECK-NEXT:    vinserti64x4 $1, %ymm0, %zmm0, %zmm036; CHECK-NEXT:    testb $2, %al37; CHECK-NEXT:    je .LBB1_538; CHECK-NEXT:  .LBB1_4: # %cond.load139; CHECK-NEXT:    vpbroadcastw 2(%rdi), %xmm140; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm0[0],xmm1[1],xmm0[2,3,4,5,6,7]41; CHECK-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm042; CHECK-NEXT:  .LBB1_5: # %else243; CHECK-NEXT:    testb $4, %al44; CHECK-NEXT:    jne .LBB1_645; CHECK-NEXT:  # %bb.7: # %else546; CHECK-NEXT:    testb $8, %al47; CHECK-NEXT:    jne .LBB1_848; CHECK-NEXT:  .LBB1_9: # %else849; CHECK-NEXT:    testb $16, %al50; CHECK-NEXT:    jne .LBB1_1051; CHECK-NEXT:  .LBB1_11: # %else1152; CHECK-NEXT:    testb $32, %al53; CHECK-NEXT:    jne .LBB1_1254; CHECK-NEXT:  .LBB1_13: # %else1455; CHECK-NEXT:    testb $64, %al56; CHECK-NEXT:    jne .LBB1_1457; CHECK-NEXT:  .LBB1_15: # %else1758; CHECK-NEXT:    testb %al, %al59; CHECK-NEXT:    js .LBB1_1660; CHECK-NEXT:  .LBB1_17: # %else2061; CHECK-NEXT:    testl $256, %eax # imm = 0x10062; CHECK-NEXT:    jne .LBB1_1863; CHECK-NEXT:  .LBB1_19: # %else2364; CHECK-NEXT:    testl $512, %eax # imm = 0x20065; CHECK-NEXT:    jne .LBB1_2066; CHECK-NEXT:  .LBB1_21: # %else2667; CHECK-NEXT:    testl $1024, %eax # imm = 0x40068; CHECK-NEXT:    jne .LBB1_2269; CHECK-NEXT:  .LBB1_23: # %else2970; CHECK-NEXT:    testl $2048, %eax # imm = 0x80071; CHECK-NEXT:    jne .LBB1_2472; CHECK-NEXT:  .LBB1_25: # %else3273; CHECK-NEXT:    testl $4096, %eax # imm = 0x100074; CHECK-NEXT:    jne .LBB1_2675; CHECK-NEXT:  .LBB1_27: # %else3576; CHECK-NEXT:    testl $8192, %eax # imm = 0x200077; CHECK-NEXT:    jne .LBB1_2878; CHECK-NEXT:  .LBB1_29: # %else3879; CHECK-NEXT:    testl $16384, %eax # imm = 0x400080; CHECK-NEXT:    jne .LBB1_3081; CHECK-NEXT:  .LBB1_31: # %else4182; CHECK-NEXT:    testw %ax, %ax83; CHECK-NEXT:    js .LBB1_3284; CHECK-NEXT:  .LBB1_33: # %else4485; CHECK-NEXT:    testl $65536, %eax # imm = 0x1000086; CHECK-NEXT:    jne .LBB1_3487; CHECK-NEXT:  .LBB1_35: # %else4788; CHECK-NEXT:    testl $131072, %eax # imm = 0x2000089; CHECK-NEXT:    jne .LBB1_3690; CHECK-NEXT:  .LBB1_37: # %else5091; CHECK-NEXT:    testl $262144, %eax # imm = 0x4000092; CHECK-NEXT:    jne .LBB1_3893; CHECK-NEXT:  .LBB1_39: # %else5394; CHECK-NEXT:    testl $524288, %eax # imm = 0x8000095; CHECK-NEXT:    jne .LBB1_4096; CHECK-NEXT:  .LBB1_41: # %else5697; CHECK-NEXT:    testl $1048576, %eax # imm = 0x10000098; CHECK-NEXT:    jne .LBB1_4299; CHECK-NEXT:  .LBB1_43: # %else59100; CHECK-NEXT:    testl $2097152, %eax # imm = 0x200000101; CHECK-NEXT:    jne .LBB1_44102; CHECK-NEXT:  .LBB1_45: # %else62103; CHECK-NEXT:    testl $4194304, %eax # imm = 0x400000104; CHECK-NEXT:    jne .LBB1_46105; CHECK-NEXT:  .LBB1_47: # %else65106; CHECK-NEXT:    testl $8388608, %eax # imm = 0x800000107; CHECK-NEXT:    jne .LBB1_48108; CHECK-NEXT:  .LBB1_49: # %else68109; CHECK-NEXT:    testl $16777216, %eax # imm = 0x1000000110; CHECK-NEXT:    jne .LBB1_50111; CHECK-NEXT:  .LBB1_51: # %else71112; CHECK-NEXT:    testl $33554432, %eax # imm = 0x2000000113; CHECK-NEXT:    jne .LBB1_52114; CHECK-NEXT:  .LBB1_53: # %else74115; CHECK-NEXT:    testl $67108864, %eax # imm = 0x4000000116; CHECK-NEXT:    jne .LBB1_54117; CHECK-NEXT:  .LBB1_55: # %else77118; CHECK-NEXT:    testl $134217728, %eax # imm = 0x8000000119; CHECK-NEXT:    jne .LBB1_56120; CHECK-NEXT:  .LBB1_57: # %else80121; CHECK-NEXT:    testl $268435456, %eax # imm = 0x10000000122; CHECK-NEXT:    jne .LBB1_58123; CHECK-NEXT:  .LBB1_59: # %else83124; CHECK-NEXT:    testl $536870912, %eax # imm = 0x20000000125; CHECK-NEXT:    jne .LBB1_60126; CHECK-NEXT:  .LBB1_61: # %else86127; CHECK-NEXT:    testl $1073741824, %eax # imm = 0x40000000128; CHECK-NEXT:    jne .LBB1_62129; CHECK-NEXT:  .LBB1_63: # %else89130; CHECK-NEXT:    testl $-2147483648, %eax # imm = 0x80000000131; CHECK-NEXT:    jne .LBB1_64132; CHECK-NEXT:  .LBB1_65: # %else92133; CHECK-NEXT:    retq134; CHECK-NEXT:  .LBB1_6: # %cond.load4135; CHECK-NEXT:    vpbroadcastw 4(%rdi), %xmm1136; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm0[0,1],xmm1[2],xmm0[3,4,5,6,7]137; CHECK-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0138; CHECK-NEXT:    testb $8, %al139; CHECK-NEXT:    je .LBB1_9140; CHECK-NEXT:  .LBB1_8: # %cond.load7141; CHECK-NEXT:    vpbroadcastw 6(%rdi), %xmm1142; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm0[0,1,2],xmm1[3],xmm0[4,5,6,7]143; CHECK-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0144; CHECK-NEXT:    testb $16, %al145; CHECK-NEXT:    je .LBB1_11146; CHECK-NEXT:  .LBB1_10: # %cond.load10147; CHECK-NEXT:    vpbroadcastw 8(%rdi), %xmm1148; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm0[0,1,2,3],xmm1[4],xmm0[5,6,7]149; CHECK-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0150; CHECK-NEXT:    testb $32, %al151; CHECK-NEXT:    je .LBB1_13152; CHECK-NEXT:  .LBB1_12: # %cond.load13153; CHECK-NEXT:    vpbroadcastw 10(%rdi), %xmm1154; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm0[0,1,2,3,4],xmm1[5],xmm0[6,7]155; CHECK-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0156; CHECK-NEXT:    testb $64, %al157; CHECK-NEXT:    je .LBB1_15158; CHECK-NEXT:  .LBB1_14: # %cond.load16159; CHECK-NEXT:    vpbroadcastw 12(%rdi), %xmm1160; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,5],xmm1[6],xmm0[7]161; CHECK-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0162; CHECK-NEXT:    testb %al, %al163; CHECK-NEXT:    jns .LBB1_17164; CHECK-NEXT:  .LBB1_16: # %cond.load19165; CHECK-NEXT:    vpbroadcastw 14(%rdi), %xmm1166; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm0[0,1,2,3,4,5,6],xmm1[7]167; CHECK-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0168; CHECK-NEXT:    testl $256, %eax # imm = 0x100169; CHECK-NEXT:    je .LBB1_19170; CHECK-NEXT:  .LBB1_18: # %cond.load22171; CHECK-NEXT:    vpbroadcastw 16(%rdi), %ymm1172; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,15]173; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]174; CHECK-NEXT:    vshuff64x2 {{.*#+}} zmm0 = zmm1[0,1,2,3],zmm0[4,5,6,7]175; CHECK-NEXT:    testl $512, %eax # imm = 0x200176; CHECK-NEXT:    je .LBB1_21177; CHECK-NEXT:  .LBB1_20: # %cond.load25178; CHECK-NEXT:    vpbroadcastw 18(%rdi), %ymm1179; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6,7,8],ymm1[9],ymm0[10,11,12,13,14,15]180; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]181; CHECK-NEXT:    vshuff64x2 {{.*#+}} zmm0 = zmm1[0,1,2,3],zmm0[4,5,6,7]182; CHECK-NEXT:    testl $1024, %eax # imm = 0x400183; CHECK-NEXT:    je .LBB1_23184; CHECK-NEXT:  .LBB1_22: # %cond.load28185; CHECK-NEXT:    vpbroadcastw 20(%rdi), %ymm1186; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6,7,8,9],ymm1[10],ymm0[11,12,13,14,15]187; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]188; CHECK-NEXT:    vshuff64x2 {{.*#+}} zmm0 = zmm1[0,1,2,3],zmm0[4,5,6,7]189; CHECK-NEXT:    testl $2048, %eax # imm = 0x800190; CHECK-NEXT:    je .LBB1_25191; CHECK-NEXT:  .LBB1_24: # %cond.load31192; CHECK-NEXT:    vpbroadcastw 22(%rdi), %ymm1193; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3],ymm0[4,5,6,7,8,9,10],ymm1[11],ymm0[12,13,14,15]194; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]195; CHECK-NEXT:    vshuff64x2 {{.*#+}} zmm0 = zmm1[0,1,2,3],zmm0[4,5,6,7]196; CHECK-NEXT:    testl $4096, %eax # imm = 0x1000197; CHECK-NEXT:    je .LBB1_27198; CHECK-NEXT:  .LBB1_26: # %cond.load34199; CHECK-NEXT:    vpbroadcastw 24(%rdi), %ymm1200; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4],ymm0[5,6,7,8,9,10,11],ymm1[12],ymm0[13,14,15]201; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]202; CHECK-NEXT:    vshuff64x2 {{.*#+}} zmm0 = zmm1[0,1,2,3],zmm0[4,5,6,7]203; CHECK-NEXT:    testl $8192, %eax # imm = 0x2000204; CHECK-NEXT:    je .LBB1_29205; CHECK-NEXT:  .LBB1_28: # %cond.load37206; CHECK-NEXT:    vpbroadcastw 26(%rdi), %ymm1207; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7,8,9,10,11,12],ymm1[13],ymm0[14,15]208; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]209; CHECK-NEXT:    vshuff64x2 {{.*#+}} zmm0 = zmm1[0,1,2,3],zmm0[4,5,6,7]210; CHECK-NEXT:    testl $16384, %eax # imm = 0x4000211; CHECK-NEXT:    je .LBB1_31212; CHECK-NEXT:  .LBB1_30: # %cond.load40213; CHECK-NEXT:    vpbroadcastw 28(%rdi), %ymm1214; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7,8,9,10,11,12,13],ymm1[14],ymm0[15]215; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]216; CHECK-NEXT:    vshuff64x2 {{.*#+}} zmm0 = zmm1[0,1,2,3],zmm0[4,5,6,7]217; CHECK-NEXT:    testw %ax, %ax218; CHECK-NEXT:    jns .LBB1_33219; CHECK-NEXT:  .LBB1_32: # %cond.load43220; CHECK-NEXT:    vpbroadcastw 30(%rdi), %ymm1221; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5,6],ymm1[7],ymm0[8,9,10,11,12,13,14],ymm1[15]222; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]223; CHECK-NEXT:    vshuff64x2 {{.*#+}} zmm0 = zmm1[0,1,2,3],zmm0[4,5,6,7]224; CHECK-NEXT:    testl $65536, %eax # imm = 0x10000225; CHECK-NEXT:    je .LBB1_35226; CHECK-NEXT:  .LBB1_34: # %cond.load46227; CHECK-NEXT:    vpinsrw $0, 32(%rdi), %xmm0, %xmm1228; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2229; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm1[0],xmm2[1,2,3,4,5,6,7]230; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]231; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0232; CHECK-NEXT:    testl $131072, %eax # imm = 0x20000233; CHECK-NEXT:    je .LBB1_37234; CHECK-NEXT:  .LBB1_36: # %cond.load49235; CHECK-NEXT:    vpbroadcastw 34(%rdi), %xmm1236; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2237; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm2[0],xmm1[1],xmm2[2,3,4,5,6,7]238; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]239; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0240; CHECK-NEXT:    testl $262144, %eax # imm = 0x40000241; CHECK-NEXT:    je .LBB1_39242; CHECK-NEXT:  .LBB1_38: # %cond.load52243; CHECK-NEXT:    vpbroadcastw 36(%rdi), %xmm1244; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2245; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm2[0,1],xmm1[2],xmm2[3,4,5,6,7]246; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]247; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0248; CHECK-NEXT:    testl $524288, %eax # imm = 0x80000249; CHECK-NEXT:    je .LBB1_41250; CHECK-NEXT:  .LBB1_40: # %cond.load55251; CHECK-NEXT:    vpbroadcastw 38(%rdi), %xmm1252; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2253; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3],xmm2[4,5,6,7]254; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]255; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0256; CHECK-NEXT:    testl $1048576, %eax # imm = 0x100000257; CHECK-NEXT:    je .LBB1_43258; CHECK-NEXT:  .LBB1_42: # %cond.load58259; CHECK-NEXT:    vpbroadcastw 40(%rdi), %xmm1260; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2261; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm2[0,1,2,3],xmm1[4],xmm2[5,6,7]262; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]263; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0264; CHECK-NEXT:    testl $2097152, %eax # imm = 0x200000265; CHECK-NEXT:    je .LBB1_45266; CHECK-NEXT:  .LBB1_44: # %cond.load61267; CHECK-NEXT:    vpbroadcastw 42(%rdi), %xmm1268; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2269; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm2[0,1,2,3,4],xmm1[5],xmm2[6,7]270; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]271; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0272; CHECK-NEXT:    testl $4194304, %eax # imm = 0x400000273; CHECK-NEXT:    je .LBB1_47274; CHECK-NEXT:  .LBB1_46: # %cond.load64275; CHECK-NEXT:    vpbroadcastw 44(%rdi), %xmm1276; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2277; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm2[0,1,2,3,4,5],xmm1[6],xmm2[7]278; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]279; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0280; CHECK-NEXT:    testl $8388608, %eax # imm = 0x800000281; CHECK-NEXT:    je .LBB1_49282; CHECK-NEXT:  .LBB1_48: # %cond.load67283; CHECK-NEXT:    vpbroadcastw 46(%rdi), %xmm1284; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2285; CHECK-NEXT:    vpblendw {{.*#+}} xmm1 = xmm2[0,1,2,3,4,5,6],xmm1[7]286; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]287; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0288; CHECK-NEXT:    testl $16777216, %eax # imm = 0x1000000289; CHECK-NEXT:    je .LBB1_51290; CHECK-NEXT:  .LBB1_50: # %cond.load70291; CHECK-NEXT:    vpbroadcastw 48(%rdi), %ymm1292; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2293; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3,4,5,6,7],ymm1[8],ymm2[9,10,11,12,13,14,15]294; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]295; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0296; CHECK-NEXT:    testl $33554432, %eax # imm = 0x2000000297; CHECK-NEXT:    je .LBB1_53298; CHECK-NEXT:  .LBB1_52: # %cond.load73299; CHECK-NEXT:    vpbroadcastw 50(%rdi), %ymm1300; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2301; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3,4,5,6,7,8],ymm1[9],ymm2[10,11,12,13,14,15]302; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]303; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0304; CHECK-NEXT:    testl $67108864, %eax # imm = 0x4000000305; CHECK-NEXT:    je .LBB1_55306; CHECK-NEXT:  .LBB1_54: # %cond.load76307; CHECK-NEXT:    vpbroadcastw 52(%rdi), %ymm1308; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2309; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4,5,6,7,8,9],ymm1[10],ymm2[11,12,13,14,15]310; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]311; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0312; CHECK-NEXT:    testl $134217728, %eax # imm = 0x8000000313; CHECK-NEXT:    je .LBB1_57314; CHECK-NEXT:  .LBB1_56: # %cond.load79315; CHECK-NEXT:    vpbroadcastw 54(%rdi), %ymm1316; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2317; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6,7,8,9,10],ymm1[11],ymm2[12,13,14,15]318; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]319; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0320; CHECK-NEXT:    testl $268435456, %eax # imm = 0x10000000321; CHECK-NEXT:    je .LBB1_59322; CHECK-NEXT:  .LBB1_58: # %cond.load82323; CHECK-NEXT:    vpbroadcastw 56(%rdi), %ymm1324; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2325; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4],ymm2[5,6,7,8,9,10,11],ymm1[12],ymm2[13,14,15]326; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]327; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0328; CHECK-NEXT:    testl $536870912, %eax # imm = 0x20000000329; CHECK-NEXT:    je .LBB1_61330; CHECK-NEXT:  .LBB1_60: # %cond.load85331; CHECK-NEXT:    vpbroadcastw 58(%rdi), %ymm1332; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2333; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0,1,2,3,4],ymm1[5],ymm2[6,7,8,9,10,11,12],ymm1[13],ymm2[14,15]334; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]335; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0336; CHECK-NEXT:    testl $1073741824, %eax # imm = 0x40000000337; CHECK-NEXT:    je .LBB1_63338; CHECK-NEXT:  .LBB1_62: # %cond.load88339; CHECK-NEXT:    vpbroadcastw 60(%rdi), %ymm1340; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2341; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6],ymm2[7,8,9,10,11,12,13],ymm1[14],ymm2[15]342; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]343; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0344; CHECK-NEXT:    testl $-2147483648, %eax # imm = 0x80000000345; CHECK-NEXT:    je .LBB1_65346; CHECK-NEXT:  .LBB1_64: # %cond.load91347; CHECK-NEXT:    vpbroadcastw 62(%rdi), %ymm1348; CHECK-NEXT:    vextracti64x4 $1, %zmm0, %ymm2349; CHECK-NEXT:    vpblendw {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5,6],ymm1[7],ymm2[8,9,10,11,12,13,14],ymm1[15]350; CHECK-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]351; CHECK-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0352; CHECK-NEXT:    retq353  %1 = call <32 x half> @llvm.masked.load.v32f16.p0(ptr %p, i32 2, <32 x i1 > %mask, <32 x half> <half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0, half 2.0>)354  ret <32 x half> %1355}356 357declare <32 x half> @llvm.masked.load.v32f16.p0(ptr, i32, <32 x i1>, <32 x half>)358