2017-02-26 02:12:25 +08:00
|
|
|
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
|
|
; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -mattr=avx512dq | FileCheck %s
|
|
|
|
|
2018-11-19 23:33:44 +08:00
|
|
|
define void @undef_cond() {
|
|
|
|
; CHECK-LABEL: undef_cond:
|
2017-12-05 01:18:51 +08:00
|
|
|
; CHECK: # %bb.0:
|
2017-02-26 02:12:25 +08:00
|
|
|
; CHECK-NEXT: retl
|
|
|
|
%a_load22 = load <16 x i64>, <16 x i64>* null, align 1
|
|
|
|
%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>
|
|
|
|
%v.i = load <16 x i64>, <16 x i64>* null
|
|
|
|
%v1.i41 = select <16 x i1> undef, <16 x i64> %bitop, <16 x i64> %v.i
|
|
|
|
store <16 x i64> %v1.i41, <16 x i64>* null
|
|
|
|
ret void
|
|
|
|
}
|
2018-11-19 23:33:44 +08:00
|
|
|
|
|
|
|
define void @f_f___un_3C_unf_3E_un_3C_unf_3E_(<16 x i1> %x) {
|
|
|
|
; CHECK-LABEL: f_f___un_3C_unf_3E_un_3C_unf_3E_:
|
|
|
|
; CHECK: # %bb.0:
|
2019-06-25 18:51:15 +08:00
|
|
|
; CHECK-NEXT: vpmovsxbd %xmm0, %zmm0
|
2018-11-19 23:33:44 +08:00
|
|
|
; CHECK-NEXT: vpslld $31, %zmm0, %zmm0
|
|
|
|
; CHECK-NEXT: vpmovd2m %zmm0, %k1
|
|
|
|
; CHECK-NEXT: vmovapd 0, %zmm0
|
|
|
|
; CHECK-NEXT: vmovapd 64, %zmm1
|
2020-03-04 02:17:18 +08:00
|
|
|
; CHECK-NEXT: vbroadcastsd {{.*#+}} zmm2 = [68719476736,68719476736,68719476736,68719476736,68719476736,68719476736,68719476736,68719476736]
|
2018-11-19 23:33:44 +08:00
|
|
|
; CHECK-NEXT: kshiftrw $8, %k1, %k2
|
|
|
|
; CHECK-NEXT: vorpd %zmm2, %zmm1, %zmm1 {%k2}
|
|
|
|
; CHECK-NEXT: vorpd %zmm2, %zmm0, %zmm0 {%k1}
|
|
|
|
; CHECK-NEXT: vmovapd %zmm0, 0
|
|
|
|
; CHECK-NEXT: vmovapd %zmm1, 64
|
|
|
|
; CHECK-NEXT: vzeroupper
|
|
|
|
; CHECK-NEXT: retl
|
|
|
|
%a_load22 = load <16 x i64>, <16 x i64>* null, align 1
|
|
|
|
%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>
|
|
|
|
%v.i = load <16 x i64>, <16 x i64>* null
|
|
|
|
%v1.i41 = select <16 x i1> %x, <16 x i64> %bitop, <16 x i64> %v.i
|
|
|
|
store <16 x i64> %v1.i41, <16 x i64>* null
|
|
|
|
ret void
|
|
|
|
}
|