annotate test/CodeGen/X86/avx512-mov.ll @ 128:c347d3398279 default tip

fix
author mir3636
date Wed, 06 Dec 2017 14:37:17 +0900
parents 803732b1fca8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
2 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl --show-mc-encoding| FileCheck %s
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 define i32 @test1(float %x) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
5 ; CHECK-LABEL: test1:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
6 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
7 ; CHECK-NEXT: vmovd %xmm0, %eax ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x7e,0xc0]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
8 ; CHECK-NEXT: retq ## encoding: [0xc3]
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 %res = bitcast float %x to i32
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 ret i32 %res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 define <4 x i32> @test2(i32 %x) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
14 ; CHECK-LABEL: test2:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
15 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
16 ; CHECK-NEXT: vmovd %edi, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6e,0xc7]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
17 ; CHECK-NEXT: retq ## encoding: [0xc3]
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 %res = insertelement <4 x i32>undef, i32 %x, i32 0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 ret <4 x i32>%res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 define <2 x i64> @test3(i64 %x) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
23 ; CHECK-LABEL: test3:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
24 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
25 ; CHECK-NEXT: vmovq %rdi, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe1,0xf9,0x6e,0xc7]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
26 ; CHECK-NEXT: retq ## encoding: [0xc3]
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 %res = insertelement <2 x i64>undef, i64 %x, i32 0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 ret <2 x i64>%res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 define <4 x i32> @test4(i32* %x) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
32 ; CHECK-LABEL: test4:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
33 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
34 ; CHECK-NEXT: vmovss (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
35 ; CHECK-NEXT: ## xmm0 = mem[0],zero,zero,zero
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
36 ; CHECK-NEXT: retq ## encoding: [0xc3]
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
37 %y = load i32, i32* %x
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 %res = insertelement <4 x i32>undef, i32 %y, i32 0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 ret <4 x i32>%res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 define void @test5(float %x, float* %y) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
43 ; CHECK-LABEL: test5:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
44 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
45 ; CHECK-NEXT: vmovss %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x11,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
46 ; CHECK-NEXT: retq ## encoding: [0xc3]
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 store float %x, float* %y, align 4
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 ret void
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 define void @test6(double %x, double* %y) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
52 ; CHECK-LABEL: test6:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
53 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
54 ; CHECK-NEXT: vmovsd %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0x11,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
55 ; CHECK-NEXT: retq ## encoding: [0xc3]
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 store double %x, double* %y, align 8
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 ret void
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 define float @test7(i32* %x) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
61 ; CHECK-LABEL: test7:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
62 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
63 ; CHECK-NEXT: vmovss (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
64 ; CHECK-NEXT: ## xmm0 = mem[0],zero,zero,zero
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
65 ; CHECK-NEXT: retq ## encoding: [0xc3]
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
66 %y = load i32, i32* %x
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 %res = bitcast i32 %y to float
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 ret float %res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 define i32 @test8(<4 x i32> %x) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
72 ; CHECK-LABEL: test8:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
73 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
74 ; CHECK-NEXT: vmovd %xmm0, %eax ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x7e,0xc0]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
75 ; CHECK-NEXT: retq ## encoding: [0xc3]
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 %res = extractelement <4 x i32> %x, i32 0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 ret i32 %res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 define i64 @test9(<2 x i64> %x) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
81 ; CHECK-LABEL: test9:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
82 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
83 ; CHECK-NEXT: vmovq %xmm0, %rax ## EVEX TO VEX Compression encoding: [0xc4,0xe1,0xf9,0x7e,0xc0]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
84 ; CHECK-NEXT: retq ## encoding: [0xc3]
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 %res = extractelement <2 x i64> %x, i32 0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 ret i64 %res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 define <4 x i32> @test10(i32* %x) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
90 ; CHECK-LABEL: test10:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
91 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
92 ; CHECK-NEXT: vmovss (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
93 ; CHECK-NEXT: ## xmm0 = mem[0],zero,zero,zero
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
94 ; CHECK-NEXT: retq ## encoding: [0xc3]
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
95 %y = load i32, i32* %x, align 4
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 %res = insertelement <4 x i32>zeroinitializer, i32 %y, i32 0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 ret <4 x i32>%res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 define <4 x float> @test11(float* %x) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
101 ; CHECK-LABEL: test11:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
102 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
103 ; CHECK-NEXT: vmovss (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
104 ; CHECK-NEXT: ## xmm0 = mem[0],zero,zero,zero
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
105 ; CHECK-NEXT: retq ## encoding: [0xc3]
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
106 %y = load float, float* %x, align 4
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 %res = insertelement <4 x float>zeroinitializer, float %y, i32 0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 ret <4 x float>%res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 define <2 x double> @test12(double* %x) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
112 ; CHECK-LABEL: test12:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
113 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
114 ; CHECK-NEXT: vmovsd (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
115 ; CHECK-NEXT: ## xmm0 = mem[0],zero
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
116 ; CHECK-NEXT: retq ## encoding: [0xc3]
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
117 %y = load double, double* %x, align 8
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 %res = insertelement <2 x double>zeroinitializer, double %y, i32 0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 ret <2 x double>%res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 define <2 x i64> @test13(i64 %x) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
123 ; CHECK-LABEL: test13:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
124 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
125 ; CHECK-NEXT: vmovq %rdi, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe1,0xf9,0x6e,0xc7]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
126 ; CHECK-NEXT: retq ## encoding: [0xc3]
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 %res = insertelement <2 x i64>zeroinitializer, i64 %x, i32 0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 ret <2 x i64>%res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 define <4 x i32> @test14(i32 %x) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
132 ; CHECK-LABEL: test14:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
133 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
134 ; CHECK-NEXT: vmovd %edi, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6e,0xc7]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
135 ; CHECK-NEXT: retq ## encoding: [0xc3]
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 %res = insertelement <4 x i32>zeroinitializer, i32 %x, i32 0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 ret <4 x i32>%res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 define <4 x i32> @test15(i32* %x) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
141 ; CHECK-LABEL: test15:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
142 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
143 ; CHECK-NEXT: vmovss (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
144 ; CHECK-NEXT: ## xmm0 = mem[0],zero,zero,zero
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
145 ; CHECK-NEXT: retq ## encoding: [0xc3]
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
146 %y = load i32, i32* %x, align 4
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 %res = insertelement <4 x i32>zeroinitializer, i32 %y, i32 0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 ret <4 x i32>%res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 define <16 x i32> @test16(i8 * %addr) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
152 ; CHECK-LABEL: test16:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
153 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
154 ; CHECK-NEXT: vmovups (%rdi), %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
155 ; CHECK-NEXT: retq ## encoding: [0xc3]
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 %vaddr = bitcast i8* %addr to <16 x i32>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
157 %res = load <16 x i32>, <16 x i32>* %vaddr, align 1
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 ret <16 x i32>%res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 define <16 x i32> @test17(i8 * %addr) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
162 ; CHECK-LABEL: test17:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
163 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
164 ; CHECK-NEXT: vmovaps (%rdi), %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
165 ; CHECK-NEXT: retq ## encoding: [0xc3]
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 %vaddr = bitcast i8* %addr to <16 x i32>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
167 %res = load <16 x i32>, <16 x i32>* %vaddr, align 64
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 ret <16 x i32>%res
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
170
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 define void @test18(i8 * %addr, <8 x i64> %data) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
172 ; CHECK-LABEL: test18:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
173 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
174 ; CHECK-NEXT: vmovaps %zmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x48,0x29,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
175 ; CHECK-NEXT: retq ## encoding: [0xc3]
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 %vaddr = bitcast i8* %addr to <8 x i64>*
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 store <8 x i64>%data, <8 x i64>* %vaddr, align 64
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 ret void
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
180
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
181 define void @test19(i8 * %addr, <16 x i32> %data) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
182 ; CHECK-LABEL: test19:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
183 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
184 ; CHECK-NEXT: vmovups %zmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
185 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
186 %vaddr = bitcast i8* %addr to <16 x i32>*
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
187 store <16 x i32>%data, <16 x i32>* %vaddr, align 1
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
188 ret void
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
189 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
190
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
191 define void @test20(i8 * %addr, <16 x i32> %data) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
192 ; CHECK-LABEL: test20:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
193 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
194 ; CHECK-NEXT: vmovaps %zmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x48,0x29,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
195 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
196 %vaddr = bitcast i8* %addr to <16 x i32>*
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
197 store <16 x i32>%data, <16 x i32>* %vaddr, align 64
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
198 ret void
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
199 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
200
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
201 define <8 x i64> @test21(i8 * %addr) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
202 ; CHECK-LABEL: test21:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
203 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
204 ; CHECK-NEXT: vmovaps (%rdi), %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
205 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
206 %vaddr = bitcast i8* %addr to <8 x i64>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
207 %res = load <8 x i64>, <8 x i64>* %vaddr, align 64
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
208 ret <8 x i64>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
209 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
210
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
211 define void @test22(i8 * %addr, <8 x i64> %data) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
212 ; CHECK-LABEL: test22:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
213 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
214 ; CHECK-NEXT: vmovups %zmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
215 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
216 %vaddr = bitcast i8* %addr to <8 x i64>*
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
217 store <8 x i64>%data, <8 x i64>* %vaddr, align 1
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
218 ret void
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
219 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
220
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
221 define <8 x i64> @test23(i8 * %addr) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
222 ; CHECK-LABEL: test23:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
223 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
224 ; CHECK-NEXT: vmovups (%rdi), %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
225 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
226 %vaddr = bitcast i8* %addr to <8 x i64>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
227 %res = load <8 x i64>, <8 x i64>* %vaddr, align 1
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
228 ret <8 x i64>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
229 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
230
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
231 define void @test24(i8 * %addr, <8 x double> %data) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
232 ; CHECK-LABEL: test24:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
233 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
234 ; CHECK-NEXT: vmovaps %zmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x48,0x29,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
235 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
236 %vaddr = bitcast i8* %addr to <8 x double>*
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
237 store <8 x double>%data, <8 x double>* %vaddr, align 64
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
238 ret void
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
239 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
240
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
241 define <8 x double> @test25(i8 * %addr) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
242 ; CHECK-LABEL: test25:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
243 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
244 ; CHECK-NEXT: vmovaps (%rdi), %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
245 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
246 %vaddr = bitcast i8* %addr to <8 x double>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
247 %res = load <8 x double>, <8 x double>* %vaddr, align 64
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
248 ret <8 x double>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
249 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
250
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
251 define void @test26(i8 * %addr, <16 x float> %data) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
252 ; CHECK-LABEL: test26:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
253 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
254 ; CHECK-NEXT: vmovaps %zmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x48,0x29,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
255 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
256 %vaddr = bitcast i8* %addr to <16 x float>*
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
257 store <16 x float>%data, <16 x float>* %vaddr, align 64
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
258 ret void
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
259 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
260
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
261 define <16 x float> @test27(i8 * %addr) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
262 ; CHECK-LABEL: test27:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
263 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
264 ; CHECK-NEXT: vmovaps (%rdi), %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x28,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
265 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
266 %vaddr = bitcast i8* %addr to <16 x float>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
267 %res = load <16 x float>, <16 x float>* %vaddr, align 64
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
268 ret <16 x float>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
269 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
270
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
271 define void @test28(i8 * %addr, <8 x double> %data) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
272 ; CHECK-LABEL: test28:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
273 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
274 ; CHECK-NEXT: vmovups %zmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
275 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
276 %vaddr = bitcast i8* %addr to <8 x double>*
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
277 store <8 x double>%data, <8 x double>* %vaddr, align 1
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
278 ret void
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
279 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
280
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
281 define <8 x double> @test29(i8 * %addr) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
282 ; CHECK-LABEL: test29:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
283 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
284 ; CHECK-NEXT: vmovups (%rdi), %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
285 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
286 %vaddr = bitcast i8* %addr to <8 x double>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
287 %res = load <8 x double>, <8 x double>* %vaddr, align 1
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
288 ret <8 x double>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
289 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
290
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
291 define void @test30(i8 * %addr, <16 x float> %data) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
292 ; CHECK-LABEL: test30:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
293 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
294 ; CHECK-NEXT: vmovups %zmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
295 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
296 %vaddr = bitcast i8* %addr to <16 x float>*
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
297 store <16 x float>%data, <16 x float>* %vaddr, align 1
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
298 ret void
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
299 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
300
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
301 define <16 x float> @test31(i8 * %addr) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
302 ; CHECK-LABEL: test31:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
303 ; CHECK: ## BB#0:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
304 ; CHECK-NEXT: vmovups (%rdi), %zmm0 ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
305 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
306 %vaddr = bitcast i8* %addr to <16 x float>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
307 %res = load <16 x float>, <16 x float>* %vaddr, align 1
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
308 ret <16 x float>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
309 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
310
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
311 define <16 x i32> @test32(i8 * %addr, <16 x i32> %old, <16 x i32> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
312 ; CHECK-LABEL: test32:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
313 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
314 ; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## encoding: [0xc5,0xe9,0xef,0xd2]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
315 ; CHECK-NEXT: vpcmpneqd %zmm2, %zmm1, %k1 ## encoding: [0x62,0xf3,0x75,0x48,0x1f,0xca,0x04]
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
316 ; CHECK-NEXT: vmovdqa32 (%rdi), %zmm0 {%k1} ## encoding: [0x62,0xf1,0x7d,0x49,0x6f,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
317 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
318 %mask = icmp ne <16 x i32> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
319 %vaddr = bitcast i8* %addr to <16 x i32>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
320 %r = load <16 x i32>, <16 x i32>* %vaddr, align 64
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
321 %res = select <16 x i1> %mask, <16 x i32> %r, <16 x i32> %old
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
322 ret <16 x i32>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
323 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
324
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
325 define <16 x i32> @test33(i8 * %addr, <16 x i32> %old, <16 x i32> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
326 ; CHECK-LABEL: test33:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
327 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
328 ; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## encoding: [0xc5,0xe9,0xef,0xd2]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
329 ; CHECK-NEXT: vpcmpneqd %zmm2, %zmm1, %k1 ## encoding: [0x62,0xf3,0x75,0x48,0x1f,0xca,0x04]
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
330 ; CHECK-NEXT: vmovdqu32 (%rdi), %zmm0 {%k1} ## encoding: [0x62,0xf1,0x7e,0x49,0x6f,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
331 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
332 %mask = icmp ne <16 x i32> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
333 %vaddr = bitcast i8* %addr to <16 x i32>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
334 %r = load <16 x i32>, <16 x i32>* %vaddr, align 1
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
335 %res = select <16 x i1> %mask, <16 x i32> %r, <16 x i32> %old
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
336 ret <16 x i32>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
337 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
338
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
339 define <16 x i32> @test34(i8 * %addr, <16 x i32> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
340 ; CHECK-LABEL: test34:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
341 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
342 ; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## encoding: [0xc5,0xf1,0xef,0xc9]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
343 ; CHECK-NEXT: vpcmpneqd %zmm1, %zmm0, %k1 ## encoding: [0x62,0xf3,0x7d,0x48,0x1f,0xc9,0x04]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
344 ; CHECK-NEXT: vmovdqa32 (%rdi), %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xc9,0x6f,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
345 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
346 %mask = icmp ne <16 x i32> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
347 %vaddr = bitcast i8* %addr to <16 x i32>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
348 %r = load <16 x i32>, <16 x i32>* %vaddr, align 64
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
349 %res = select <16 x i1> %mask, <16 x i32> %r, <16 x i32> zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
350 ret <16 x i32>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
351 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
352
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
353 define <16 x i32> @test35(i8 * %addr, <16 x i32> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
354 ; CHECK-LABEL: test35:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
355 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
356 ; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## encoding: [0xc5,0xf1,0xef,0xc9]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
357 ; CHECK-NEXT: vpcmpneqd %zmm1, %zmm0, %k1 ## encoding: [0x62,0xf3,0x7d,0x48,0x1f,0xc9,0x04]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
358 ; CHECK-NEXT: vmovdqu32 (%rdi), %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7e,0xc9,0x6f,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
359 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
360 %mask = icmp ne <16 x i32> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
361 %vaddr = bitcast i8* %addr to <16 x i32>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
362 %r = load <16 x i32>, <16 x i32>* %vaddr, align 1
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
363 %res = select <16 x i1> %mask, <16 x i32> %r, <16 x i32> zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
364 ret <16 x i32>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
365 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
366
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
367 define <8 x i64> @test36(i8 * %addr, <8 x i64> %old, <8 x i64> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
368 ; CHECK-LABEL: test36:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
369 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
370 ; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## encoding: [0xc5,0xe9,0xef,0xd2]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
371 ; CHECK-NEXT: vpcmpneqq %zmm2, %zmm1, %k1 ## encoding: [0x62,0xf3,0xf5,0x48,0x1f,0xca,0x04]
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
372 ; CHECK-NEXT: vmovdqa64 (%rdi), %zmm0 {%k1} ## encoding: [0x62,0xf1,0xfd,0x49,0x6f,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
373 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
374 %mask = icmp ne <8 x i64> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
375 %vaddr = bitcast i8* %addr to <8 x i64>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
376 %r = load <8 x i64>, <8 x i64>* %vaddr, align 64
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
377 %res = select <8 x i1> %mask, <8 x i64> %r, <8 x i64> %old
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
378 ret <8 x i64>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
379 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
380
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
381 define <8 x i64> @test37(i8 * %addr, <8 x i64> %old, <8 x i64> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
382 ; CHECK-LABEL: test37:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
383 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
384 ; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## encoding: [0xc5,0xe9,0xef,0xd2]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
385 ; CHECK-NEXT: vpcmpneqq %zmm2, %zmm1, %k1 ## encoding: [0x62,0xf3,0xf5,0x48,0x1f,0xca,0x04]
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
386 ; CHECK-NEXT: vmovdqu64 (%rdi), %zmm0 {%k1} ## encoding: [0x62,0xf1,0xfe,0x49,0x6f,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
387 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
388 %mask = icmp ne <8 x i64> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
389 %vaddr = bitcast i8* %addr to <8 x i64>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
390 %r = load <8 x i64>, <8 x i64>* %vaddr, align 1
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
391 %res = select <8 x i1> %mask, <8 x i64> %r, <8 x i64> %old
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
392 ret <8 x i64>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
393 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
394
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
395 define <8 x i64> @test38(i8 * %addr, <8 x i64> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
396 ; CHECK-LABEL: test38:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
397 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
398 ; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## encoding: [0xc5,0xf1,0xef,0xc9]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
399 ; CHECK-NEXT: vpcmpneqq %zmm1, %zmm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x48,0x1f,0xc9,0x04]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
400 ; CHECK-NEXT: vmovdqa64 (%rdi), %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0xc9,0x6f,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
401 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
402 %mask = icmp ne <8 x i64> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
403 %vaddr = bitcast i8* %addr to <8 x i64>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
404 %r = load <8 x i64>, <8 x i64>* %vaddr, align 64
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
405 %res = select <8 x i1> %mask, <8 x i64> %r, <8 x i64> zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
406 ret <8 x i64>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
407 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
408
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
409 define <8 x i64> @test39(i8 * %addr, <8 x i64> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
410 ; CHECK-LABEL: test39:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
411 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
412 ; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## encoding: [0xc5,0xf1,0xef,0xc9]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
413 ; CHECK-NEXT: vpcmpneqq %zmm1, %zmm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x48,0x1f,0xc9,0x04]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
414 ; CHECK-NEXT: vmovdqu64 (%rdi), %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfe,0xc9,0x6f,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
415 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
416 %mask = icmp ne <8 x i64> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
417 %vaddr = bitcast i8* %addr to <8 x i64>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
418 %r = load <8 x i64>, <8 x i64>* %vaddr, align 1
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
419 %res = select <8 x i1> %mask, <8 x i64> %r, <8 x i64> zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
420 ret <8 x i64>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
421 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
422
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
423 define <16 x float> @test40(i8 * %addr, <16 x float> %old, <16 x float> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
424 ; CHECK-LABEL: test40:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
425 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
426 ; CHECK-NEXT: vxorps %xmm2, %xmm2, %xmm2 ## encoding: [0xc5,0xe8,0x57,0xd2]
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
427 ; CHECK-NEXT: vcmpneq_oqps %zmm2, %zmm1, %k1 ## encoding: [0x62,0xf1,0x74,0x48,0xc2,0xca,0x0c]
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
428 ; CHECK-NEXT: vmovaps (%rdi), %zmm0 {%k1} ## encoding: [0x62,0xf1,0x7c,0x49,0x28,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
429 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
430 %mask = fcmp one <16 x float> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
431 %vaddr = bitcast i8* %addr to <16 x float>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
432 %r = load <16 x float>, <16 x float>* %vaddr, align 64
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
433 %res = select <16 x i1> %mask, <16 x float> %r, <16 x float> %old
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
434 ret <16 x float>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
435 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
436
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
437 define <16 x float> @test41(i8 * %addr, <16 x float> %old, <16 x float> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
438 ; CHECK-LABEL: test41:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
439 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
440 ; CHECK-NEXT: vxorps %xmm2, %xmm2, %xmm2 ## encoding: [0xc5,0xe8,0x57,0xd2]
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
441 ; CHECK-NEXT: vcmpneq_oqps %zmm2, %zmm1, %k1 ## encoding: [0x62,0xf1,0x74,0x48,0xc2,0xca,0x0c]
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
442 ; CHECK-NEXT: vmovups (%rdi), %zmm0 {%k1} ## encoding: [0x62,0xf1,0x7c,0x49,0x10,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
443 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
444 %mask = fcmp one <16 x float> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
445 %vaddr = bitcast i8* %addr to <16 x float>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
446 %r = load <16 x float>, <16 x float>* %vaddr, align 1
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
447 %res = select <16 x i1> %mask, <16 x float> %r, <16 x float> %old
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
448 ret <16 x float>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
449 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
450
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
451 define <16 x float> @test42(i8 * %addr, <16 x float> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
452 ; CHECK-LABEL: test42:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
453 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
454 ; CHECK-NEXT: vxorps %xmm1, %xmm1, %xmm1 ## encoding: [0xc5,0xf0,0x57,0xc9]
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
455 ; CHECK-NEXT: vcmpneq_oqps %zmm1, %zmm0, %k1 ## encoding: [0x62,0xf1,0x7c,0x48,0xc2,0xc9,0x0c]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
456 ; CHECK-NEXT: vmovaps (%rdi), %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xc9,0x28,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
457 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
458 %mask = fcmp one <16 x float> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
459 %vaddr = bitcast i8* %addr to <16 x float>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
460 %r = load <16 x float>, <16 x float>* %vaddr, align 64
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
461 %res = select <16 x i1> %mask, <16 x float> %r, <16 x float> zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
462 ret <16 x float>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
463 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
464
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
465 define <16 x float> @test43(i8 * %addr, <16 x float> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
466 ; CHECK-LABEL: test43:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
467 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
468 ; CHECK-NEXT: vxorps %xmm1, %xmm1, %xmm1 ## encoding: [0xc5,0xf0,0x57,0xc9]
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
469 ; CHECK-NEXT: vcmpneq_oqps %zmm1, %zmm0, %k1 ## encoding: [0x62,0xf1,0x7c,0x48,0xc2,0xc9,0x0c]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
470 ; CHECK-NEXT: vmovups (%rdi), %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xc9,0x10,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
471 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
472 %mask = fcmp one <16 x float> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
473 %vaddr = bitcast i8* %addr to <16 x float>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
474 %r = load <16 x float>, <16 x float>* %vaddr, align 1
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
475 %res = select <16 x i1> %mask, <16 x float> %r, <16 x float> zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
476 ret <16 x float>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
477 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
478
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
479 define <8 x double> @test44(i8 * %addr, <8 x double> %old, <8 x double> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
480 ; CHECK-LABEL: test44:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
481 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
482 ; CHECK-NEXT: vxorpd %xmm2, %xmm2, %xmm2 ## encoding: [0xc5,0xe9,0x57,0xd2]
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
483 ; CHECK-NEXT: vcmpneq_oqpd %zmm2, %zmm1, %k1 ## encoding: [0x62,0xf1,0xf5,0x48,0xc2,0xca,0x0c]
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
484 ; CHECK-NEXT: vmovapd (%rdi), %zmm0 {%k1} ## encoding: [0x62,0xf1,0xfd,0x49,0x28,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
485 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
486 %mask = fcmp one <8 x double> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
487 %vaddr = bitcast i8* %addr to <8 x double>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
488 %r = load <8 x double>, <8 x double>* %vaddr, align 64
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
489 %res = select <8 x i1> %mask, <8 x double> %r, <8 x double> %old
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
490 ret <8 x double>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
491 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
492
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
493 define <8 x double> @test45(i8 * %addr, <8 x double> %old, <8 x double> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
494 ; CHECK-LABEL: test45:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
495 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
496 ; CHECK-NEXT: vxorpd %xmm2, %xmm2, %xmm2 ## encoding: [0xc5,0xe9,0x57,0xd2]
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
497 ; CHECK-NEXT: vcmpneq_oqpd %zmm2, %zmm1, %k1 ## encoding: [0x62,0xf1,0xf5,0x48,0xc2,0xca,0x0c]
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
498 ; CHECK-NEXT: vmovupd (%rdi), %zmm0 {%k1} ## encoding: [0x62,0xf1,0xfd,0x49,0x10,0x07]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
499 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
500 %mask = fcmp one <8 x double> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
501 %vaddr = bitcast i8* %addr to <8 x double>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
502 %r = load <8 x double>, <8 x double>* %vaddr, align 1
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
503 %res = select <8 x i1> %mask, <8 x double> %r, <8 x double> %old
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
504 ret <8 x double>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
505 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
506
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
507 define <8 x double> @test46(i8 * %addr, <8 x double> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
508 ; CHECK-LABEL: test46:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
509 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
510 ; CHECK-NEXT: vxorpd %xmm1, %xmm1, %xmm1 ## encoding: [0xc5,0xf1,0x57,0xc9]
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
511 ; CHECK-NEXT: vcmpneq_oqpd %zmm1, %zmm0, %k1 ## encoding: [0x62,0xf1,0xfd,0x48,0xc2,0xc9,0x0c]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
512 ; CHECK-NEXT: vmovapd (%rdi), %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0xc9,0x28,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
513 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
514 %mask = fcmp one <8 x double> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
515 %vaddr = bitcast i8* %addr to <8 x double>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
516 %r = load <8 x double>, <8 x double>* %vaddr, align 64
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
517 %res = select <8 x i1> %mask, <8 x double> %r, <8 x double> zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
518 ret <8 x double>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
519 }
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
520
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
521 define <8 x double> @test47(i8 * %addr, <8 x double> %mask1) {
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
522 ; CHECK-LABEL: test47:
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
523 ; CHECK: ## BB#0:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
524 ; CHECK-NEXT: vxorpd %xmm1, %xmm1, %xmm1 ## encoding: [0xc5,0xf1,0x57,0xc9]
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
525 ; CHECK-NEXT: vcmpneq_oqpd %zmm1, %zmm0, %k1 ## encoding: [0x62,0xf1,0xfd,0x48,0xc2,0xc9,0x0c]
120
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
526 ; CHECK-NEXT: vmovupd (%rdi), %zmm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0xc9,0x10,0x07]
1172e4bd9c6f update 4.0.0
mir3636
parents: 95
diff changeset
527 ; CHECK-NEXT: retq ## encoding: [0xc3]
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
528 %mask = fcmp one <8 x double> %mask1, zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
529 %vaddr = bitcast i8* %addr to <8 x double>*
95
afa8332a0e37 LLVM 3.8
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
530 %r = load <8 x double>, <8 x double>* %vaddr, align 1
77
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
531 %res = select <8 x i1> %mask, <8 x double> %r, <8 x double> zeroinitializer
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
532 ret <8 x double>%res
54457678186b LLVM 3.6
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
533 }