[AArch64,ELF] Restrict MOVZ/MOVK to non-PIC large code model (#70178)
[llvm-project.git] / llvm / test / CodeGen / X86 / pr30284.ll
blobf4fb1b3ce72e34d31925f1e2a555c65d9aaa11d8
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:
6 ; CHECK:       # %bb.0:
7 ; CHECK-NEXT:    retl
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
13   ret void
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_:
18 ; CHECK:       # %bb.0:
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
31 ; CHECK-NEXT:    retl
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
37   ret void