brintos

brintos / llvm-project-archived public Read only

0
0
Text · 29.3 KiB · d9b4635 Raw
588 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -verify-machineinstrs -mtriple=x86_64-unknown-unknown --show-mc-encoding -mattr=+avx10.2 | FileCheck %s --check-prefixes=CHECK,X643; RUN: llc < %s -verify-machineinstrs -mtriple=i686-unknown-unknown --show-mc-encoding -mattr=+avx10.2 | FileCheck %s --check-prefixes=CHECK,X864 5define <32 x bfloat> @test_int_x86_avx10_vaddbf16512(<32 x bfloat> %x1, <32 x bfloat> %x2) {6; CHECK-LABEL: test_int_x86_avx10_vaddbf16512:7; CHECK:       # %bb.0:8; CHECK-NEXT:    vaddbf16 %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x58,0xc1]9; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]10  %res = fadd <32 x bfloat>  %x1, %x211  ret <32 x bfloat> %res12}13 14define <32 x bfloat> @test_int_x86_avx10_mask_add_bf16_512(<32 x bfloat> %src, <32 x bfloat> %x1, <32 x bfloat> %x2, i32 %msk, ptr %ptr) {15; X64-LABEL: test_int_x86_avx10_mask_add_bf16_512:16; X64:       # %bb.0:17; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]18; X64-NEXT:    vaddbf16 %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x75,0x49,0x58,0xc2]19; X64-NEXT:    retq # encoding: [0xc3]20;21; X86-LABEL: test_int_x86_avx10_mask_add_bf16_512:22; X86:       # %bb.0:23; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]24; X86-NEXT:    vaddbf16 %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x75,0x49,0x58,0xc2]25; X86-NEXT:    retl # encoding: [0xc3]26  %mask = bitcast i32 %msk to <32 x i1>27  %res0 = fadd <32 x bfloat>  %x1, %x228  %res = select <32 x i1> %mask, <32 x bfloat> %res0, <32 x bfloat> %src29  ret <32 x bfloat> %res30}31 32define <32 x bfloat> @test_int_x86_avx10_maskz_add_bf16_512(<32 x bfloat> %src, <32 x bfloat> %x1, <32 x bfloat> %x2, i32 %msk, ptr %ptr) {33; X64-LABEL: test_int_x86_avx10_maskz_add_bf16_512:34; X64:       # %bb.0:35; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]36; X64-NEXT:    vaddbf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x58,0xc2]37; X64-NEXT:    vaddbf16 (%rsi), %zmm1, %zmm1 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x58,0x0e]38; X64-NEXT:    vaddbf16 %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x58,0xc1]39; X64-NEXT:    retq # encoding: [0xc3]40;41; X86-LABEL: test_int_x86_avx10_maskz_add_bf16_512:42; X86:       # %bb.0:43; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]44; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]45; X86-NEXT:    vaddbf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x58,0xc2]46; X86-NEXT:    vaddbf16 (%eax), %zmm1, %zmm1 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x58,0x08]47; X86-NEXT:    vaddbf16 %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x58,0xc1]48; X86-NEXT:    retl # encoding: [0xc3]49  %mask = bitcast i32 %msk to <32 x i1>50  %val = load <32 x bfloat>, ptr %ptr51  %res0 = fadd <32 x bfloat>  %x1, %x252  %res1 = select <32 x i1> %mask, <32 x bfloat> %res0, <32 x bfloat> zeroinitializer53  %t2 = fadd <32 x bfloat>  %x1, %val54  %res2 = select <32 x i1> %mask, <32 x bfloat> %t2, <32 x bfloat> zeroinitializer55  %res3  =  fadd <32 x bfloat>  %res1, %res256  ret <32 x bfloat> %res357}58 59define <32 x bfloat> @test_int_x86_avx10_sub_bf16_512(<32 x bfloat> %x1, <32 x bfloat> %x2) {60; CHECK-LABEL: test_int_x86_avx10_sub_bf16_512:61; CHECK:       # %bb.0:62; CHECK-NEXT:    vsubbf16 %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x5c,0xc1]63; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]64  %res = fsub <32 x bfloat> %x1, %x265  ret <32 x bfloat> %res66}67 68define <32 x bfloat> @test_int_x86_avx10_mask_sub_bf16_512(<32 x bfloat> %src, <32 x bfloat> %x1, <32 x bfloat> %x2, i32 %msk, ptr %ptr) {69; X64-LABEL: test_int_x86_avx10_mask_sub_bf16_512:70; X64:       # %bb.0:71; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]72; X64-NEXT:    vsubbf16 %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x75,0x49,0x5c,0xc2]73; X64-NEXT:    retq # encoding: [0xc3]74;75; X86-LABEL: test_int_x86_avx10_mask_sub_bf16_512:76; X86:       # %bb.0:77; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]78; X86-NEXT:    vsubbf16 %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x75,0x49,0x5c,0xc2]79; X86-NEXT:    retl # encoding: [0xc3]80  %mask = bitcast i32 %msk to <32 x i1>81  %res0 = fsub <32 x bfloat> %x1, %x282  %res = select <32 x i1> %mask, <32 x bfloat> %res0, <32 x bfloat> %src83  ret <32 x bfloat> %res84}85 86define <32 x bfloat> @test_int_x86_avx10_maskz_sub_bf16_512(<32 x bfloat> %src, <32 x bfloat> %x1, <32 x bfloat> %x2, i32 %msk, ptr %ptr) {87; X64-LABEL: test_int_x86_avx10_maskz_sub_bf16_512:88; X64:       # %bb.0:89; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]90; X64-NEXT:    vsubbf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x5c,0xc2]91; X64-NEXT:    vsubbf16 (%rsi), %zmm1, %zmm1 # encoding: [0x62,0xf5,0x75,0x48,0x5c,0x0e]92; X64-NEXT:    vsubbf16 %zmm1, %zmm0, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x49,0x5c,0xc1]93; X64-NEXT:    retq # encoding: [0xc3]94;95; X86-LABEL: test_int_x86_avx10_maskz_sub_bf16_512:96; X86:       # %bb.0:97; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]98; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]99; X86-NEXT:    vsubbf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x5c,0xc2]100; X86-NEXT:    vsubbf16 (%eax), %zmm1, %zmm1 # encoding: [0x62,0xf5,0x75,0x48,0x5c,0x08]101; X86-NEXT:    vsubbf16 %zmm1, %zmm0, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x49,0x5c,0xc1]102; X86-NEXT:    retl # encoding: [0xc3]103  %mask = bitcast i32 %msk to <32 x i1>104  %val = load <32 x bfloat>, ptr %ptr105  %res0 = fsub <32 x bfloat> %x1, %x2106  %res1 = select <32 x i1> %mask, <32 x bfloat> %res0, <32 x bfloat> zeroinitializer107  %t2 = fsub <32 x bfloat> %x1, %val108  %res2 = select <32 x i1> %mask, <32 x bfloat> %t2, <32 x bfloat> zeroinitializer109  %res3  = fsub <32 x bfloat> %res1, %res2110  ret <32 x bfloat> %res3111}112 113declare <32 x bfloat> @llvm.x86.avx10.vmulbf16512(<32 x bfloat>, <32 x bfloat>)114 115define <32 x bfloat> @test_int_x86_avx10_mul_bf16_512(<32 x bfloat> %x1, <32 x bfloat> %x2) {116; CHECK-LABEL: test_int_x86_avx10_mul_bf16_512:117; CHECK:       # %bb.0:118; CHECK-NEXT:    vmulbf16 %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x59,0xc1]119; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]120  %res = fmul <32 x bfloat> %x1, %x2121  ret <32 x bfloat> %res122}123 124define <32 x bfloat> @test_int_x86_avx10_mask_mul_bf16_512(<32 x bfloat> %src, <32 x bfloat> %x1, <32 x bfloat> %x2, i32 %msk, ptr %ptr) {125; X64-LABEL: test_int_x86_avx10_mask_mul_bf16_512:126; X64:       # %bb.0:127; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]128; X64-NEXT:    vmulbf16 %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x75,0x49,0x59,0xc2]129; X64-NEXT:    retq # encoding: [0xc3]130;131; X86-LABEL: test_int_x86_avx10_mask_mul_bf16_512:132; X86:       # %bb.0:133; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]134; X86-NEXT:    vmulbf16 %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x75,0x49,0x59,0xc2]135; X86-NEXT:    retl # encoding: [0xc3]136  %mask = bitcast i32 %msk to <32 x i1>137  %res0 = fmul <32 x bfloat> %x1, %x2138  %res = select <32 x i1> %mask, <32 x bfloat> %res0, <32 x bfloat> %src139  ret <32 x bfloat> %res140}141 142define <32 x bfloat> @test_int_x86_avx10_maskz_mul_bf16_512(<32 x bfloat> %src, <32 x bfloat> %x1, <32 x bfloat> %x2, i32 %msk, ptr %ptr) {143; X64-LABEL: test_int_x86_avx10_maskz_mul_bf16_512:144; X64:       # %bb.0:145; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]146; X64-NEXT:    vmulbf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x59,0xc2]147; X64-NEXT:    vmulbf16 (%rsi), %zmm1, %zmm1 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x59,0x0e]148; X64-NEXT:    vmulbf16 %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x59,0xc1]149; X64-NEXT:    retq # encoding: [0xc3]150;151; X86-LABEL: test_int_x86_avx10_maskz_mul_bf16_512:152; X86:       # %bb.0:153; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]154; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]155; X86-NEXT:    vmulbf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x59,0xc2]156; X86-NEXT:    vmulbf16 (%eax), %zmm1, %zmm1 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x59,0x08]157; X86-NEXT:    vmulbf16 %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x59,0xc1]158; X86-NEXT:    retl # encoding: [0xc3]159  %mask = bitcast i32 %msk to <32 x i1>160  %val = load <32 x bfloat>, ptr %ptr161  %res0 = fmul <32 x bfloat> %x1, %x2162  %res1 = select <32 x i1> %mask, <32 x bfloat> %res0, <32 x bfloat> zeroinitializer163  %t2 = fmul <32 x bfloat> %x1, %val164  %res2 = select <32 x i1> %mask, <32 x bfloat> %t2, <32 x bfloat> zeroinitializer165  %res3  = fmul <32 x bfloat> %res1, %res2166  ret <32 x bfloat> %res3167}168 169define <32 x bfloat> @test_int_x86_avx10_div_bf16_512(<32 x bfloat> %x1, <32 x bfloat> %x2) {170; CHECK-LABEL: test_int_x86_avx10_div_bf16_512:171; CHECK:       # %bb.0:172; CHECK-NEXT:    vdivbf16 %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x5e,0xc1]173; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]174  %res = fdiv <32 x bfloat> %x1, %x2175  ret <32 x bfloat> %res176}177 178define <32 x bfloat> @test_int_x86_avx10_mask_div_bf16_512(<32 x bfloat> %src, <32 x bfloat> %x1, <32 x bfloat> %x2, i32 %msk, ptr %ptr) {179; X64-LABEL: test_int_x86_avx10_mask_div_bf16_512:180; X64:       # %bb.0:181; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]182; X64-NEXT:    vdivbf16 %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x75,0x49,0x5e,0xc2]183; X64-NEXT:    retq # encoding: [0xc3]184;185; X86-LABEL: test_int_x86_avx10_mask_div_bf16_512:186; X86:       # %bb.0:187; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]188; X86-NEXT:    vdivbf16 %zmm2, %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x75,0x49,0x5e,0xc2]189; X86-NEXT:    retl # encoding: [0xc3]190  %mask = bitcast i32 %msk to <32 x i1>191  %res0 = fdiv <32 x bfloat> %x1, %x2192  %res = select <32 x i1> %mask, <32 x bfloat> %res0, <32 x bfloat> %src193  ret <32 x bfloat> %res194}195 196define <32 x bfloat> @test_int_x86_avx10_maskz_div_bf16_512(<32 x bfloat> %src, <32 x bfloat> %x1, <32 x bfloat> %x2, i32 %msk, ptr %ptr) {197; X64-LABEL: test_int_x86_avx10_maskz_div_bf16_512:198; X64:       # %bb.0:199; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]200; X64-NEXT:    vdivbf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x5e,0xc2]201; X64-NEXT:    vdivbf16 (%rsi), %zmm1, %zmm1 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x5e,0x0e]202; X64-NEXT:    vdivbf16 %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x5e,0xc1]203; X64-NEXT:    retq # encoding: [0xc3]204;205; X86-LABEL: test_int_x86_avx10_maskz_div_bf16_512:206; X86:       # %bb.0:207; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]208; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]209; X86-NEXT:    vdivbf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x5e,0xc2]210; X86-NEXT:    vdivbf16 (%eax), %zmm1, %zmm1 {%k1} {z} # encoding: [0x62,0xf5,0x75,0xc9,0x5e,0x08]211; X86-NEXT:    vdivbf16 %zmm1, %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x5e,0xc1]212; X86-NEXT:    retl # encoding: [0xc3]213  %mask = bitcast i32 %msk to <32 x i1>214  %val = load <32 x bfloat>, ptr %ptr215  %res0 = fdiv <32 x bfloat> %x1, %x2216  %res1 = select <32 x i1> %mask, <32 x bfloat> %res0, <32 x bfloat> zeroinitializer217  %t2 = fdiv <32 x bfloat> %x1, %val218  %res2 = select <32 x i1> %mask, <32 x bfloat> %t2, <32 x bfloat> zeroinitializer219  %res3  = fdiv <32 x bfloat> %res1, %res2220  ret <32 x bfloat> %res3221}222 223define i32 @test_int_x86_avx10_vcmpbf16512(<32 x bfloat> %x1, <32 x bfloat> %x2) {224; CHECK-LABEL: test_int_x86_avx10_vcmpbf16512:225; CHECK:       # %bb.0:226; CHECK-NEXT:    vcmpunordbf16 %zmm1, %zmm0, %k0 # encoding: [0x62,0xf3,0x7f,0x48,0xc2,0xc1,0x03]227; CHECK-NEXT:    kmovd %k0, %eax # encoding: [0xc5,0xfb,0x93,0xc0]228; CHECK-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]229; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]230  %1 = fcmp uno <32 x bfloat> %x1, %x2231  %res = bitcast <32 x i1> %1 to i32232  ret i32 %res233}234 235; FIXME: _mm512_mask_cmp_p[s|h]_mask is not using {k2} but gcc does236define i32 @test_int_x86_avx10_vcmpbf16512_mask2(<32 x bfloat> %x1, <32 x bfloat> %x2) {237; CHECK-LABEL: test_int_x86_avx10_vcmpbf16512_mask2:238; CHECK:       # %bb.0:239; CHECK-NEXT:    vcmpeqbf16 %zmm1, %zmm0, %k0 # encoding: [0x62,0xf3,0x7f,0x48,0xc2,0xc1,0x00]240; CHECK-NEXT:    kmovd %k0, %eax # encoding: [0xc5,0xfb,0x93,0xc0]241; CHECK-NEXT:    andl $3, %eax # encoding: [0x83,0xe0,0x03]242; CHECK-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]243; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]244  %1 = fcmp oeq <32 x bfloat> %x1, %x2245  %2 = and <32 x i1> %1, <i1 true, i1 true, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false>246  %3 = bitcast <32 x i1> %2 to i32247  ret i32 %3248}249 250define <32 x bfloat> @test_sqrt_bf16_512(<32 x bfloat> %a0) {251; CHECK-LABEL: test_sqrt_bf16_512:252; CHECK:       # %bb.0:253; CHECK-NEXT:    vsqrtbf16 %zmm0, %zmm0 # encoding: [0x62,0xf5,0x7d,0x48,0x51,0xc0]254; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]255  %1 = tail call <32 x bfloat> @llvm.sqrt.v32bf16(<32 x bfloat> %a0)256  ret <32 x bfloat> %1257}258 259define <32 x bfloat> @test_mm512_mask_sqrt_pbh(<32 x bfloat> %__W, i32 %__U, <32 x bfloat> %__A) {260; X64-LABEL: test_mm512_mask_sqrt_pbh:261; X64:       # %bb.0: # %entry262; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]263; X64-NEXT:    vsqrtbf16 %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x49,0x51,0xc1]264; X64-NEXT:    retq # encoding: [0xc3]265;266; X86-LABEL: test_mm512_mask_sqrt_pbh:267; X86:       # %bb.0: # %entry268; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]269; X86-NEXT:    vsqrtbf16 %zmm1, %zmm0 {%k1} # encoding: [0x62,0xf5,0x7d,0x49,0x51,0xc1]270; X86-NEXT:    retl # encoding: [0xc3]271entry:272  %0 = tail call <32 x bfloat> @llvm.sqrt.v32bf16(<32 x bfloat> %__A)273  %1 = bitcast i32 %__U to <32 x i1>274  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> %__W275  ret <32 x bfloat> %2276}277 278define <32 x bfloat> @test_mm512_maskz_sqrt_pbh(i32 %__U, <32 x bfloat>%__A) {279; X64-LABEL: test_mm512_maskz_sqrt_pbh:280; X64:       # %bb.0: # %entry281; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]282; X64-NEXT:    vsqrtbf16 %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xc9,0x51,0xc0]283; X64-NEXT:    retq # encoding: [0xc3]284;285; X86-LABEL: test_mm512_maskz_sqrt_pbh:286; X86:       # %bb.0: # %entry287; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]288; X86-NEXT:    vsqrtbf16 %zmm0, %zmm0 {%k1} {z} # encoding: [0x62,0xf5,0x7d,0xc9,0x51,0xc0]289; X86-NEXT:    retl # encoding: [0xc3]290entry:291  %0 = tail call <32 x bfloat> @llvm.sqrt.v32bf16(<32 x bfloat> %__A)292  %1 = bitcast i32 %__U to <32 x i1>293  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> zeroinitializer294  ret <32 x bfloat> %2295}296 297define <32 x bfloat> @test_mm512_fmaddne_pbh(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C) {298; CHECK-LABEL: test_mm512_fmaddne_pbh:299; CHECK:       # %bb.0: # %entry300; CHECK-NEXT:    vfmadd213bf16 %zmm2, %zmm1, %zmm0 # encoding: [0x62,0xf6,0x74,0x48,0xa8,0xc2]301; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]302entry:303  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C)304  ret <32 x bfloat> %0305}306 307define <32 x bfloat> @test_mm512_mask_fmaddne_pbh(<32 x bfloat> %__A, i32 %__U, <32 x bfloat> %__B, <32 x bfloat> %__C) {308; X64-LABEL: test_mm512_mask_fmaddne_pbh:309; X64:       # %bb.0: # %entry310; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]311; X64-NEXT:    vfmadd132bf16 %zmm1, %zmm2, %zmm0 {%k1} # encoding: [0x62,0xf6,0x6c,0x49,0x98,0xc1]312; X64-NEXT:    retq # encoding: [0xc3]313;314; X86-LABEL: test_mm512_mask_fmaddne_pbh:315; X86:       # %bb.0: # %entry316; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]317; X86-NEXT:    vfmadd132bf16 %zmm1, %zmm2, %zmm0 {%k1} # encoding: [0x62,0xf6,0x6c,0x49,0x98,0xc1]318; X86-NEXT:    retl # encoding: [0xc3]319entry:320  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C)321  %1 = bitcast i32 %__U to <32 x i1>322  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> %__A323  ret <32 x bfloat> %2324}325 326define <32 x bfloat> @test_mm512_mask3_fmaddne_pbh(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C, i32 %__U) {327; X64-LABEL: test_mm512_mask3_fmaddne_pbh:328; X64:       # %bb.0: # %entry329; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]330; X64-NEXT:    vfmadd231bf16 %zmm1, %zmm0, %zmm2 {%k1} # encoding: [0x62,0xf6,0x7c,0x49,0xb8,0xd1]331; X64-NEXT:    vmovaps %zmm2, %zmm0 # encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2]332; X64-NEXT:    retq # encoding: [0xc3]333;334; X86-LABEL: test_mm512_mask3_fmaddne_pbh:335; X86:       # %bb.0: # %entry336; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]337; X86-NEXT:    vfmadd231bf16 %zmm1, %zmm0, %zmm2 {%k1} # encoding: [0x62,0xf6,0x7c,0x49,0xb8,0xd1]338; X86-NEXT:    vmovaps %zmm2, %zmm0 # encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2]339; X86-NEXT:    retl # encoding: [0xc3]340entry:341  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C)342  %1 = bitcast i32 %__U to <32 x i1>343  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> %__C344  ret <32 x bfloat> %2345}346 347define <32 x bfloat> @test_mm512_maskz_fmaddne_pbh(i32 %__U, <32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C) {348; X64-LABEL: test_mm512_maskz_fmaddne_pbh:349; X64:       # %bb.0: # %entry350; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]351; X64-NEXT:    vfmadd213bf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf6,0x74,0xc9,0xa8,0xc2]352; X64-NEXT:    retq # encoding: [0xc3]353;354; X86-LABEL: test_mm512_maskz_fmaddne_pbh:355; X86:       # %bb.0: # %entry356; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]357; X86-NEXT:    vfmadd213bf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf6,0x74,0xc9,0xa8,0xc2]358; X86-NEXT:    retl # encoding: [0xc3]359entry:360  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C)361  %1 = bitcast i32 %__U to <32 x i1>362  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> zeroinitializer363  ret <32 x bfloat> %2364}365 366define <32 x bfloat> @test_mm512_fmsubne_pbh(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C) {367; CHECK-LABEL: test_mm512_fmsubne_pbh:368; CHECK:       # %bb.0: # %entry369; CHECK-NEXT:    vfmsub213bf16 %zmm2, %zmm1, %zmm0 # encoding: [0x62,0xf6,0x74,0x48,0xaa,0xc2]370; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]371entry:372  %fneg.i = fneg <32 x bfloat> %__C373  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %fneg.i)374  ret <32 x bfloat> %0375}376 377define <32 x bfloat> @test_mm512_mask_fmsubne_pbh(<32 x bfloat> %__A, i32 %__U, <32 x bfloat> %__B, <32 x bfloat> %__C) {378; X64-LABEL: test_mm512_mask_fmsubne_pbh:379; X64:       # %bb.0: # %entry380; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]381; X64-NEXT:    vfmsub132bf16 %zmm1, %zmm2, %zmm0 {%k1} # encoding: [0x62,0xf6,0x6c,0x49,0x9a,0xc1]382; X64-NEXT:    retq # encoding: [0xc3]383;384; X86-LABEL: test_mm512_mask_fmsubne_pbh:385; X86:       # %bb.0: # %entry386; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]387; X86-NEXT:    vfmsub132bf16 %zmm1, %zmm2, %zmm0 {%k1} # encoding: [0x62,0xf6,0x6c,0x49,0x9a,0xc1]388; X86-NEXT:    retl # encoding: [0xc3]389entry:390  %fneg.i.i = fneg <32 x bfloat> %__C391  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %fneg.i.i)392  %1 = bitcast i32 %__U to <32 x i1>393  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> %__A394  ret <32 x bfloat> %2395}396 397define <32 x bfloat> @test_mm512_mask3_fmsubne_pbh(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C, i32 %__U) {398; X64-LABEL: test_mm512_mask3_fmsubne_pbh:399; X64:       # %bb.0: # %entry400; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]401; X64-NEXT:    vfmsub231bf16 %zmm1, %zmm0, %zmm2 {%k1} # encoding: [0x62,0xf6,0x7c,0x49,0xba,0xd1]402; X64-NEXT:    vmovaps %zmm2, %zmm0 # encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2]403; X64-NEXT:    retq # encoding: [0xc3]404;405; X86-LABEL: test_mm512_mask3_fmsubne_pbh:406; X86:       # %bb.0: # %entry407; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]408; X86-NEXT:    vfmsub231bf16 %zmm1, %zmm0, %zmm2 {%k1} # encoding: [0x62,0xf6,0x7c,0x49,0xba,0xd1]409; X86-NEXT:    vmovaps %zmm2, %zmm0 # encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2]410; X86-NEXT:    retl # encoding: [0xc3]411entry:412  %fneg.i.i = fneg <32 x bfloat> %__C413  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %fneg.i.i)414  %1 = bitcast i32 %__U to <32 x i1>415  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> %__C416  ret <32 x bfloat> %2417}418 419define <32 x bfloat> @test_mm512_maskz_fmsubne_pbh(i32 %__U, <32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C) {420; X64-LABEL: test_mm512_maskz_fmsubne_pbh:421; X64:       # %bb.0: # %entry422; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]423; X64-NEXT:    vfmsub213bf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf6,0x74,0xc9,0xaa,0xc2]424; X64-NEXT:    retq # encoding: [0xc3]425;426; X86-LABEL: test_mm512_maskz_fmsubne_pbh:427; X86:       # %bb.0: # %entry428; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]429; X86-NEXT:    vfmsub213bf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf6,0x74,0xc9,0xaa,0xc2]430; X86-NEXT:    retl # encoding: [0xc3]431entry:432  %fneg.i.i = fneg <32 x bfloat> %__C433  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %fneg.i.i)434  %1 = bitcast i32 %__U to <32 x i1>435  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> zeroinitializer436  ret <32 x bfloat> %2437}438 439define <32 x bfloat> @test_mm512_fnmaddne_pbh(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C) {440; CHECK-LABEL: test_mm512_fnmaddne_pbh:441; CHECK:       # %bb.0: # %entry442; CHECK-NEXT:    vfnmadd213bf16 %zmm2, %zmm1, %zmm0 # encoding: [0x62,0xf6,0x74,0x48,0xac,0xc2]443; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]444entry:445  %fneg.i = fneg <32 x bfloat> %__B446  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %fneg.i, <32 x bfloat> %__C)447  ret <32 x bfloat> %0448}449 450define <32 x bfloat> @test_mm512_mask_fnmaddne_pbh(<32 x bfloat> %__A, i32 %__U, <32 x bfloat> %__B, <32 x bfloat> %__C) {451; X64-LABEL: test_mm512_mask_fnmaddne_pbh:452; X64:       # %bb.0: # %entry453; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]454; X64-NEXT:    vfnmadd132bf16 %zmm1, %zmm2, %zmm0 {%k1} # encoding: [0x62,0xf6,0x6c,0x49,0x9c,0xc1]455; X64-NEXT:    retq # encoding: [0xc3]456;457; X86-LABEL: test_mm512_mask_fnmaddne_pbh:458; X86:       # %bb.0: # %entry459; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]460; X86-NEXT:    vfnmadd132bf16 %zmm1, %zmm2, %zmm0 {%k1} # encoding: [0x62,0xf6,0x6c,0x49,0x9c,0xc1]461; X86-NEXT:    retl # encoding: [0xc3]462entry:463  %fneg.i.i = fneg <32 x bfloat> %__B464  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %fneg.i.i, <32 x bfloat> %__C)465  %1 = bitcast i32 %__U to <32 x i1>466  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> %__A467  ret <32 x bfloat> %2468}469 470define <32 x bfloat> @test_mm512_mask3_fnmaddne_pbh(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C, i32 %__U) {471; X64-LABEL: test_mm512_mask3_fnmaddne_pbh:472; X64:       # %bb.0: # %entry473; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]474; X64-NEXT:    vfnmadd231bf16 %zmm1, %zmm0, %zmm2 {%k1} # encoding: [0x62,0xf6,0x7c,0x49,0xbc,0xd1]475; X64-NEXT:    vmovaps %zmm2, %zmm0 # encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2]476; X64-NEXT:    retq # encoding: [0xc3]477;478; X86-LABEL: test_mm512_mask3_fnmaddne_pbh:479; X86:       # %bb.0: # %entry480; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]481; X86-NEXT:    vfnmadd231bf16 %zmm1, %zmm0, %zmm2 {%k1} # encoding: [0x62,0xf6,0x7c,0x49,0xbc,0xd1]482; X86-NEXT:    vmovaps %zmm2, %zmm0 # encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2]483; X86-NEXT:    retl # encoding: [0xc3]484entry:485  %fneg.i.i = fneg <32 x bfloat> %__B486  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %fneg.i.i, <32 x bfloat> %__C)487  %1 = bitcast i32 %__U to <32 x i1>488  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> %__C489  ret <32 x bfloat> %2490}491 492define <32 x bfloat> @test_mm512_maskz_fnmaddne_pbh(i32 %__U, <32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C) {493; X64-LABEL: test_mm512_maskz_fnmaddne_pbh:494; X64:       # %bb.0: # %entry495; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]496; X64-NEXT:    vfnmadd213bf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf6,0x74,0xc9,0xac,0xc2]497; X64-NEXT:    retq # encoding: [0xc3]498;499; X86-LABEL: test_mm512_maskz_fnmaddne_pbh:500; X86:       # %bb.0: # %entry501; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]502; X86-NEXT:    vfnmadd213bf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf6,0x74,0xc9,0xac,0xc2]503; X86-NEXT:    retl # encoding: [0xc3]504entry:505  %fneg.i.i = fneg <32 x bfloat> %__B506  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %fneg.i.i, <32 x bfloat> %__C)507  %1 = bitcast i32 %__U to <32 x i1>508  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> zeroinitializer509  ret <32 x bfloat> %2510}511 512define <32 x bfloat> @test_mm512_fnmsubne_pbh(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C) {513; CHECK-LABEL: test_mm512_fnmsubne_pbh:514; CHECK:       # %bb.0: # %entry515; CHECK-NEXT:    vfnmsub213bf16 %zmm2, %zmm1, %zmm0 # encoding: [0x62,0xf6,0x74,0x48,0xae,0xc2]516; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]517entry:518  %fneg.i = fneg <32 x bfloat> %__B519  %fneg1.i = fneg <32 x bfloat> %__C520  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %fneg.i, <32 x bfloat> %fneg1.i)521  ret <32 x bfloat> %0522}523 524define <32 x bfloat> @test_mm512_mask_fnmsubne_pbh(<32 x bfloat> %__A, i32 %__U, <32 x bfloat> %__B, <32 x bfloat> %__C) {525; X64-LABEL: test_mm512_mask_fnmsubne_pbh:526; X64:       # %bb.0: # %entry527; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]528; X64-NEXT:    vfnmsub132bf16 %zmm1, %zmm2, %zmm0 {%k1} # encoding: [0x62,0xf6,0x6c,0x49,0x9e,0xc1]529; X64-NEXT:    retq # encoding: [0xc3]530;531; X86-LABEL: test_mm512_mask_fnmsubne_pbh:532; X86:       # %bb.0: # %entry533; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]534; X86-NEXT:    vfnmsub132bf16 %zmm1, %zmm2, %zmm0 {%k1} # encoding: [0x62,0xf6,0x6c,0x49,0x9e,0xc1]535; X86-NEXT:    retl # encoding: [0xc3]536entry:537  %fneg.i.i = fneg <32 x bfloat> %__B538  %fneg1.i.i = fneg <32 x bfloat> %__C539  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %fneg.i.i, <32 x bfloat> %fneg1.i.i)540  %1 = bitcast i32 %__U to <32 x i1>541  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> %__A542  ret <32 x bfloat> %2543}544 545define <32 x bfloat> @test_mm512_mask3_fnmsubne_pbh(<32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C, i32 %__U) {546; X64-LABEL: test_mm512_mask3_fnmsubne_pbh:547; X64:       # %bb.0: # %entry548; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]549; X64-NEXT:    vfnmsub231bf16 %zmm1, %zmm0, %zmm2 {%k1} # encoding: [0x62,0xf6,0x7c,0x49,0xbe,0xd1]550; X64-NEXT:    vmovaps %zmm2, %zmm0 # encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2]551; X64-NEXT:    retq # encoding: [0xc3]552;553; X86-LABEL: test_mm512_mask3_fnmsubne_pbh:554; X86:       # %bb.0: # %entry555; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]556; X86-NEXT:    vfnmsub231bf16 %zmm1, %zmm0, %zmm2 {%k1} # encoding: [0x62,0xf6,0x7c,0x49,0xbe,0xd1]557; X86-NEXT:    vmovaps %zmm2, %zmm0 # encoding: [0x62,0xf1,0x7c,0x48,0x28,0xc2]558; X86-NEXT:    retl # encoding: [0xc3]559entry:560  %fneg.i.i = fneg <32 x bfloat> %__B561  %fneg1.i.i = fneg <32 x bfloat> %__C562  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %fneg.i.i, <32 x bfloat> %fneg1.i.i)563  %1 = bitcast i32 %__U to <32 x i1>564  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> %__C565  ret <32 x bfloat> %2566}567 568define <32 x bfloat> @test_mm512_maskz_fnmsubne_pbh(i32 %__U, <32 x bfloat> %__A, <32 x bfloat> %__B, <32 x bfloat> %__C) {569; X64-LABEL: test_mm512_maskz_fnmsubne_pbh:570; X64:       # %bb.0: # %entry571; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]572; X64-NEXT:    vfnmsub213bf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf6,0x74,0xc9,0xae,0xc2]573; X64-NEXT:    retq # encoding: [0xc3]574;575; X86-LABEL: test_mm512_maskz_fnmsubne_pbh:576; X86:       # %bb.0: # %entry577; X86-NEXT:    kmovd {{[0-9]+}}(%esp), %k1 # encoding: [0xc4,0xe1,0xf9,0x90,0x4c,0x24,0x04]578; X86-NEXT:    vfnmsub213bf16 %zmm2, %zmm1, %zmm0 {%k1} {z} # encoding: [0x62,0xf6,0x74,0xc9,0xae,0xc2]579; X86-NEXT:    retl # encoding: [0xc3]580entry:581  %fneg.i.i = fneg <32 x bfloat> %__B582  %fneg1.i.i = fneg <32 x bfloat> %__C583  %0 = tail call <32 x bfloat> @llvm.fma.v32bf16(<32 x bfloat> %__A, <32 x bfloat> %fneg.i.i, <32 x bfloat> %fneg1.i.i)584  %1 = bitcast i32 %__U to <32 x i1>585  %2 = select <32 x i1> %1, <32 x bfloat> %0, <32 x bfloat> zeroinitializer586  ret <32 x bfloat> %2587}588