1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -mattr=avx512dq | FileCheck %s
4 define void @undef_cond() {
5 ; CHECK-LABEL: undef_cond:
8 %a_load22 = load <16 x i64>, ptr null, align 1
9 %bitop = or <16 x i64> %a_load22, <i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736>
10 %v.i = load <16 x i64>, ptr null
11 %v1.i41 = select <16 x i1> undef, <16 x i64> %bitop, <16 x i64> %v.i
12 store <16 x i64> %v1.i41, ptr null
16 define void @f_f___un_3C_unf_3E_un_3C_unf_3E_(<16 x i1> %x) {
17 ; CHECK-LABEL: f_f___un_3C_unf_3E_un_3C_unf_3E_:
19 ; CHECK-NEXT: vpmovsxbd %xmm0, %zmm0
20 ; CHECK-NEXT: vpslld $31, %zmm0, %zmm0
21 ; CHECK-NEXT: vpmovd2m %zmm0, %k1
22 ; CHECK-NEXT: vmovapd 0, %zmm0
23 ; CHECK-NEXT: vmovapd 64, %zmm1
24 ; CHECK-NEXT: vbroadcastsd {{.*#+}} zmm2 = [0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16]
25 ; CHECK-NEXT: kshiftrw $8, %k1, %k2
26 ; CHECK-NEXT: vorpd %zmm2, %zmm1, %zmm1 {%k2}
27 ; CHECK-NEXT: vorpd %zmm2, %zmm0, %zmm0 {%k1}
28 ; CHECK-NEXT: vmovapd %zmm0, 0
29 ; CHECK-NEXT: vmovapd %zmm1, 64
30 ; CHECK-NEXT: vzeroupper
32 %a_load22 = load <16 x i64>, ptr null, align 1
33 %bitop = or <16 x i64> %a_load22, <i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736, i64 68719476736>
34 %v.i = load <16 x i64>, ptr null
35 %v1.i41 = select <16 x i1> %x, <16 x i64> %bitop, <16 x i64> %v.i
36 store <16 x i64> %v1.i41, ptr null