77
|
1 ; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -mattr=+neon | FileCheck %s --check-prefix=CHECK
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 define <8 x i8> @movi8b() {
|
77
|
4 ; CHECK-LABEL: movi8b:
|
|
5 ; CHECK: movi {{v[0-9]+}}.8b, #{{0x8|8}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 ret <8 x i8> < i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 define <16 x i8> @movi16b() {
|
77
|
10 ; CHECK-LABEL: movi16b:
|
|
11 ; CHECK: movi {{v[0-9]+}}.16b, #{{0x8|8}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 ret <16 x i8> < i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 define <2 x i32> @movi2s_lsl0() {
|
77
|
16 ; CHECK-LABEL: movi2s_lsl0:
|
|
17 ; CHECK: movi {{d[0-9]+}}, #0x0000ff000000ff
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 ret <2 x i32> < i32 255, i32 255 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 define <2 x i32> @movi2s_lsl8() {
|
77
|
22 ; CHECK-LABEL: movi2s_lsl8:
|
|
23 ; CHECK: movi {{d[0-9]+}}, #0x00ff000000ff00
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 ret <2 x i32> < i32 65280, i32 65280 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 define <2 x i32> @movi2s_lsl16() {
|
77
|
28 ; CHECK-LABEL: movi2s_lsl16:
|
|
29 ; CHECK: movi {{d[0-9]+}}, #0xff000000ff0000
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 ret <2 x i32> < i32 16711680, i32 16711680 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 define <2 x i32> @movi2s_lsl24() {
|
77
|
35 ; CHECK-LABEL: movi2s_lsl24:
|
|
36 ; CHECK: movi {{d[0-9]+}}, #0xff000000ff000000
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 ret <2 x i32> < i32 4278190080, i32 4278190080 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 define <4 x i32> @movi4s_lsl0() {
|
77
|
41 ; CHECK-LABEL: movi4s_lsl0:
|
|
42 ; CHECK: movi {{v[0-9]+}}.2d, #0x0000ff000000ff
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 ret <4 x i32> < i32 255, i32 255, i32 255, i32 255 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 define <4 x i32> @movi4s_lsl8() {
|
77
|
47 ; CHECK-LABEL: movi4s_lsl8:
|
|
48 ; CHECK: movi {{v[0-9]+}}.2d, #0x00ff000000ff00
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49 ret <4 x i32> < i32 65280, i32 65280, i32 65280, i32 65280 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 define <4 x i32> @movi4s_lsl16() {
|
77
|
53 ; CHECK-LABEL: movi4s_lsl16:
|
|
54 ; CHECK: movi {{v[0-9]+}}.2d, #0xff000000ff0000
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55 ret <4 x i32> < i32 16711680, i32 16711680, i32 16711680, i32 16711680 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
59 define <4 x i32> @movi4s_lsl24() {
|
77
|
60 ; CHECK-LABEL: movi4s_lsl24:
|
|
61 ; CHECK: movi {{v[0-9]+}}.2d, #0xff000000ff000000
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62 ret <4 x i32> < i32 4278190080, i32 4278190080, i32 4278190080, i32 4278190080 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
63 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
64
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
65 define <4 x i16> @movi4h_lsl0() {
|
77
|
66 ; CHECK-LABEL: movi4h_lsl0:
|
|
67 ; CHECK: movi {{d[0-9]+}}, #0xff00ff00ff00ff
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
68 ret <4 x i16> < i16 255, i16 255, i16 255, i16 255 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 define <4 x i16> @movi4h_lsl8() {
|
77
|
72 ; CHECK-LABEL: movi4h_lsl8:
|
|
73 ; CHECK: movi d0, #0xff00ff00ff00ff00
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
74 ret <4 x i16> < i16 65280, i16 65280, i16 65280, i16 65280 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
75 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
76
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
77 define <8 x i16> @movi8h_lsl0() {
|
77
|
78 ; CHECK-LABEL: movi8h_lsl0:
|
|
79 ; CHECK: movi v0.2d, #0xff00ff00ff00ff
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
80 ret <8 x i16> < i16 255, i16 255, i16 255, i16 255, i16 255, i16 255, i16 255, i16 255 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
81 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
82
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
83 define <8 x i16> @movi8h_lsl8() {
|
77
|
84 ; CHECK-LABEL: movi8h_lsl8:
|
|
85 ; CHECK: movi v0.2d, #0xff00ff00ff00ff00
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
86 ret <8 x i16> < i16 65280, i16 65280, i16 65280, i16 65280, i16 65280, i16 65280, i16 65280, i16 65280 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
87 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
88
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
89
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
90 define <2 x i32> @mvni2s_lsl0() {
|
77
|
91 ; CHECK-LABEL: mvni2s_lsl0:
|
|
92 ; CHECK: mvni {{v[0-9]+}}.2s, #{{0x10|16}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
93 ret <2 x i32> < i32 4294967279, i32 4294967279 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
94 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
95
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
96 define <2 x i32> @mvni2s_lsl8() {
|
77
|
97 ; CHECK-LABEL: mvni2s_lsl8:
|
|
98 ; CHECK: mvni {{v[0-9]+}}.2s, #{{0x10|16}}, lsl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
99 ret <2 x i32> < i32 4294963199, i32 4294963199 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
100 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
101
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
102 define <2 x i32> @mvni2s_lsl16() {
|
77
|
103 ; CHECK-LABEL: mvni2s_lsl16:
|
|
104 ; CHECK: mvni {{v[0-9]+}}.2s, #{{0x10|16}}, lsl #16
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
105 ret <2 x i32> < i32 4293918719, i32 4293918719 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
106 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
107
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
108 define <2 x i32> @mvni2s_lsl24() {
|
77
|
109 ; CHECK-LABEL: mvni2s_lsl24:
|
|
110 ; CHECK: mvni {{v[0-9]+}}.2s, #{{0x10|16}}, lsl #24
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
111 ret <2 x i32> < i32 4026531839, i32 4026531839 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
112 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
113
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
114 define <4 x i32> @mvni4s_lsl0() {
|
77
|
115 ; CHECK-LABEL: mvni4s_lsl0:
|
|
116 ; CHECK: mvni {{v[0-9]+}}.4s, #{{0x10|16}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
117 ret <4 x i32> < i32 4294967279, i32 4294967279, i32 4294967279, i32 4294967279 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
118 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
119
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
120 define <4 x i32> @mvni4s_lsl8() {
|
77
|
121 ; CHECK-LABEL: mvni4s_lsl8:
|
|
122 ; CHECK: mvni {{v[0-9]+}}.4s, #{{0x10|16}}, lsl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
123 ret <4 x i32> < i32 4294963199, i32 4294963199, i32 4294963199, i32 4294963199 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
124 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
125
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
126 define <4 x i32> @mvni4s_lsl16() {
|
77
|
127 ; CHECK-LABEL: mvni4s_lsl16:
|
|
128 ; CHECK: mvni {{v[0-9]+}}.4s, #{{0x10|16}}, lsl #16
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
129 ret <4 x i32> < i32 4293918719, i32 4293918719, i32 4293918719, i32 4293918719 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
130
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
131 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
132
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
133 define <4 x i32> @mvni4s_lsl24() {
|
77
|
134 ; CHECK-LABEL: mvni4s_lsl24:
|
|
135 ; CHECK: mvni {{v[0-9]+}}.4s, #{{0x10|16}}, lsl #24
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
136 ret <4 x i32> < i32 4026531839, i32 4026531839, i32 4026531839, i32 4026531839 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
137 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
138
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
139
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
140 define <4 x i16> @mvni4h_lsl0() {
|
77
|
141 ; CHECK-LABEL: mvni4h_lsl0:
|
|
142 ; CHECK: mvni {{v[0-9]+}}.4h, #{{0x10|16}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
143 ret <4 x i16> < i16 65519, i16 65519, i16 65519, i16 65519 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
144 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
145
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
146 define <4 x i16> @mvni4h_lsl8() {
|
77
|
147 ; CHECK-LABEL: mvni4h_lsl8:
|
|
148 ; CHECK: mvni {{v[0-9]+}}.4h, #{{0x10|16}}, lsl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
149 ret <4 x i16> < i16 61439, i16 61439, i16 61439, i16 61439 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
150 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
151
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
152 define <8 x i16> @mvni8h_lsl0() {
|
77
|
153 ; CHECK-LABEL: mvni8h_lsl0:
|
|
154 ; CHECK: mvni {{v[0-9]+}}.8h, #{{0x10|16}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
155 ret <8 x i16> < i16 65519, i16 65519, i16 65519, i16 65519, i16 65519, i16 65519, i16 65519, i16 65519 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
156 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
157
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
158 define <8 x i16> @mvni8h_lsl8() {
|
77
|
159 ; CHECK-LABEL: mvni8h_lsl8:
|
|
160 ; CHECK: mvni {{v[0-9]+}}.8h, #{{0x10|16}}, lsl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
161 ret <8 x i16> < i16 61439, i16 61439, i16 61439, i16 61439, i16 61439, i16 61439, i16 61439, i16 61439 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
162 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
163
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
164
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
165 define <2 x i32> @movi2s_msl8(<2 x i32> %a) {
|
77
|
166 ; CHECK-LABEL: movi2s_msl8:
|
|
167 ; CHECK: movi {{d[0-9]+}}, #0x00ffff0000ffff
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
168 ret <2 x i32> < i32 65535, i32 65535 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
169 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
170
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
171 define <2 x i32> @movi2s_msl16() {
|
77
|
172 ; CHECK-LABEL: movi2s_msl16:
|
|
173 ; CHECK: movi d0, #0xffffff00ffffff
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
174 ret <2 x i32> < i32 16777215, i32 16777215 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
175 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
176
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
177
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
178 define <4 x i32> @movi4s_msl8() {
|
77
|
179 ; CHECK-LABEL: movi4s_msl8:
|
|
180 ; CHECK: movi v0.2d, #0x00ffff0000ffff
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
181 ret <4 x i32> < i32 65535, i32 65535, i32 65535, i32 65535 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
182 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
183
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
184 define <4 x i32> @movi4s_msl16() {
|
77
|
185 ; CHECK-LABEL: movi4s_msl16:
|
|
186 ; CHECK: movi v0.2d, #0xffffff00ffffff
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
187 ret <4 x i32> < i32 16777215, i32 16777215, i32 16777215, i32 16777215 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
188 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
189
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
190 define <2 x i32> @mvni2s_msl8() {
|
77
|
191 ; CHECK-LABEL: mvni2s_msl8:
|
|
192 ; CHECK: mvni {{v[0-9]+}}.2s, #{{0x10|16}}, msl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
193 ret <2 x i32> < i32 18446744073709547264, i32 18446744073709547264>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
194 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
195
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
196 define <2 x i32> @mvni2s_msl16() {
|
77
|
197 ; CHECK-LABEL: mvni2s_msl16:
|
|
198 ; CHECK: mvni {{v[0-9]+}}.2s, #{{0x10|16}}, msl #16
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
199 ret <2 x i32> < i32 18446744073708437504, i32 18446744073708437504>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
200 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
201
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
202 define <4 x i32> @mvni4s_msl8() {
|
77
|
203 ; CHECK-LABEL: mvni4s_msl8:
|
|
204 ; CHECK: mvni {{v[0-9]+}}.4s, #{{0x10|16}}, msl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
205 ret <4 x i32> < i32 18446744073709547264, i32 18446744073709547264, i32 18446744073709547264, i32 18446744073709547264>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
206 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
207
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
208 define <4 x i32> @mvni4s_msl16() {
|
77
|
209 ; CHECK-LABEL: mvni4s_msl16:
|
|
210 ; CHECK: mvni {{v[0-9]+}}.4s, #{{0x10|16}}, msl #16
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
211 ret <4 x i32> < i32 18446744073708437504, i32 18446744073708437504, i32 18446744073708437504, i32 18446744073708437504>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
212 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
213
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
214 define <2 x i64> @movi2d() {
|
77
|
215 ; CHECK-LABEL: movi2d:
|
|
216 ; CHECK: movi {{v[0-9]+}}.2d, #0xff0000ff0000ffff
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
217 ret <2 x i64> < i64 18374687574888349695, i64 18374687574888349695 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
218 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
219
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
220 define <1 x i64> @movid() {
|
77
|
221 ; CHECK-LABEL: movid:
|
|
222 ; CHECK: movi {{d[0-9]+}}, #0xff0000ff0000ffff
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
223 ret <1 x i64> < i64 18374687574888349695 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
224 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
225
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
226 define <2 x float> @fmov2s() {
|
77
|
227 ; CHECK-LABEL: fmov2s:
|
|
228 ; CHECK: fmov {{v[0-9]+}}.2s, #{{-12.00000000|-1.200000e\+01}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
229 ret <2 x float> < float -1.2e1, float -1.2e1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
230 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
231
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
232 define <4 x float> @fmov4s() {
|
77
|
233 ; CHECK-LABEL: fmov4s:
|
|
234 ; CHECK: fmov {{v[0-9]+}}.4s, #{{-12.00000000|-1.200000e\+01}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
235 ret <4 x float> < float -1.2e1, float -1.2e1, float -1.2e1, float -1.2e1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
236 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
237
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
238 define <2 x double> @fmov2d() {
|
77
|
239 ; CHECK-LABEL: fmov2d:
|
|
240 ; CHECK: fmov {{v[0-9]+}}.2d, #{{-12.00000000|-1.200000e\+01}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
241 ret <2 x double> < double -1.2e1, double -1.2e1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
242 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
243
|
33
|
244 define <2 x i32> @movi1d_1() {
|
77
|
245 ; CHECK-LABEL: movi1d_1:
|
|
246 ; CHECK: movi d0, #0x{{0*}}ffffffff0000
|
33
|
247 ret <2 x i32> < i32 -65536, i32 65535>
|
|
248 }
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
249
|
33
|
250
|
|
251 declare <2 x i32> @test_movi1d(<2 x i32>, <2 x i32>)
|
|
252 define <2 x i32> @movi1d() {
|
77
|
253 ; CHECK-LABEL: movi1d:
|
|
254 ; CHECK: adrp {{x[0-9]+}}, .{{[A-Z0-9_]+}}
|
|
255 ; CHECK: ldr {{d[0-9]+}}, [{{x[0-9]+}}, {{#?}}:lo12:.{{[A-Z0-9_]+}}]
|
|
256 ; CHECK-NEXT: movi d1, #0x{{0*}}ffffffff0000
|
33
|
257 %1 = tail call <2 x i32> @test_movi1d(<2 x i32> <i32 -2147483648, i32 2147450880>, <2 x i32> <i32 -65536, i32 65535>)
|
|
258 ret <2 x i32> %1
|
|
259 }
|
|
260
|