aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/X86/pr30284.ll
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2017-02-28 21:07:18 +0000
committerDimitry Andric <dim@FreeBSD.org>2017-02-28 21:07:18 +0000
commit365919ebc13fcd6ddae24bfcc7c4720dc682c78b (patch)
treefe2bf4fc65fd9e5c13d565a4c449157efa9dbe59 /test/CodeGen/X86/pr30284.ll
parent9c618dddcd075579cf4f157ba4a03d088c166dab (diff)
downloadsrc-vendor/llvm/llvm-release_40-r296509.tar.gz
src-vendor/llvm/llvm-release_40-r296509.zip
Vendor import of llvm release_40 branch r296509:vendor/llvm/llvm-release_40-r296509
Diffstat (limited to 'test/CodeGen/X86/pr30284.ll')
-rw-r--r--test/CodeGen/X86/pr30284.ll22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/CodeGen/X86/pr30284.ll b/test/CodeGen/X86/pr30284.ll
new file mode 100644
index 000000000000..cb2de00d436a
--- /dev/null
+++ b/test/CodeGen/X86/pr30284.ll
@@ -0,0 +1,22 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -mattr=avx512dq | FileCheck %s
+
+define void @f_f___un_3C_unf_3E_un_3C_unf_3E_() {
+; CHECK-LABEL: f_f___un_3C_unf_3E_un_3C_unf_3E_:
+; CHECK: # BB#0:
+; CHECK-NEXT: vmovapd 0, %zmm0
+; CHECK-NEXT: vmovapd 64, %zmm1
+; CHECK-NEXT: vmovapd {{.*#+}} zmm2 = [0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16]
+; CHECK-NEXT: kshiftrw $8, %k0, %k1
+; CHECK-NEXT: vorpd %zmm2, %zmm1, %zmm1 {%k1}
+; CHECK-NEXT: vorpd %zmm2, %zmm0, %zmm0 {%k1}
+; CHECK-NEXT: vmovapd %zmm0, 0
+; CHECK-NEXT: vmovapd %zmm1, 64
+; 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
+}