0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 ; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -mattr=+neon | FileCheck %s
|
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> @and8xi8(<8 x i8> %a, <8 x i8> %b) {
|
77
|
4 ; CHECK-LABEL: and8xi8:
|
|
5 ; CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 %tmp1 = and <8 x i8> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 ret <8 x i8> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 define <16 x i8> @and16xi8(<16 x i8> %a, <16 x i8> %b) {
|
77
|
11 ; CHECK-LABEL: and16xi8:
|
|
12 ; CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 %tmp1 = and <16 x i8> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 ret <16 x i8> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 define <8 x i8> @orr8xi8(<8 x i8> %a, <8 x i8> %b) {
|
77
|
19 ; CHECK-LABEL: orr8xi8:
|
|
20 ; CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 %tmp1 = or <8 x i8> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 ret <8 x i8> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 define <16 x i8> @orr16xi8(<16 x i8> %a, <16 x i8> %b) {
|
77
|
26 ; CHECK-LABEL: orr16xi8:
|
|
27 ; CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 %tmp1 = or <16 x i8> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 ret <16 x i8> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 }
|
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 define <8 x i8> @xor8xi8(<8 x i8> %a, <8 x i8> %b) {
|
77
|
34 ; CHECK-LABEL: xor8xi8:
|
|
35 ; CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36 %tmp1 = xor <8 x i8> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 ret <8 x i8> %tmp1
|
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 <16 x i8> @xor16xi8(<16 x i8> %a, <16 x i8> %b) {
|
77
|
41 ; CHECK-LABEL: xor16xi8:
|
|
42 ; CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 %tmp1 = xor <16 x i8> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 ret <16 x i8> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 define <8 x i8> @bsl8xi8_const(<8 x i8> %a, <8 x i8> %b) {
|
77
|
48 ; CHECK-LABEL: bsl8xi8_const:
|
|
49 ; CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
50 %tmp1 = and <8 x i8> %a, < i8 -1, i8 -1, i8 0, i8 0, i8 -1, i8 -1, i8 0, i8 0 >
|
|
51 %tmp2 = and <8 x i8> %b, < i8 0, i8 0, i8 -1, i8 -1, i8 0, i8 0, i8 -1, i8 -1 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 %tmp3 = or <8 x i8> %tmp1, %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53 ret <8 x i8> %tmp3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56 define <16 x i8> @bsl16xi8_const(<16 x i8> %a, <16 x i8> %b) {
|
77
|
57 ; CHECK-LABEL: bsl16xi8_const:
|
|
58 ; CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
|
59 %tmp1 = and <16 x i8> %a, < i8 -1, i8 -1, i8 -1, i8 -1, i8 0, i8 0, i8 0, i8 0, i8 -1, i8 -1, i8 -1, i8 -1, i8 0, i8 0, i8 0, i8 0 >
|
|
60 %tmp2 = and <16 x i8> %b, < i8 0, i8 0, i8 0, i8 0, i8 -1, i8 -1, i8 -1, i8 -1, i8 0, i8 0, i8 0, i8 0, i8 -1, i8 -1, i8 -1, i8 -1 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 %tmp3 = or <16 x i8> %tmp1, %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62 ret <16 x i8> %tmp3
|
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 <8 x i8> @orn8xi8(<8 x i8> %a, <8 x i8> %b) {
|
77
|
66 ; CHECK-LABEL: orn8xi8:
|
|
67 ; CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
68 %tmp1 = xor <8 x i8> %b, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69 %tmp2 = or <8 x i8> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70 ret <8 x i8> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
73 define <16 x i8> @orn16xi8(<16 x i8> %a, <16 x i8> %b) {
|
77
|
74 ; CHECK-LABEL: orn16xi8:
|
|
75 ; CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
76 %tmp1 = xor <16 x i8> %b, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
77 %tmp2 = or <16 x i8> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 ret <16 x i8> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
79 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
80
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
81 define <8 x i8> @bic8xi8(<8 x i8> %a, <8 x i8> %b) {
|
77
|
82 ; CHECK-LABEL: bic8xi8:
|
|
83 ; CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
84 %tmp1 = xor <8 x i8> %b, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
85 %tmp2 = and <8 x i8> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
86 ret <8 x i8> %tmp2
|
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 define <16 x i8> @bic16xi8(<16 x i8> %a, <16 x i8> %b) {
|
77
|
90 ; CHECK-LABEL: bic16xi8:
|
|
91 ; CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
92 %tmp1 = xor <16 x i8> %b, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
93 %tmp2 = and <16 x i8> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
94 ret <16 x i8> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
95 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
96
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
97 define <2 x i32> @orrimm2s_lsl0(<2 x i32> %a) {
|
77
|
98 ; CHECK-LABEL: orrimm2s_lsl0:
|
|
99 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
100 %tmp1 = or <2 x i32> %a, < i32 255, i32 255>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
101 ret <2 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
102 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
103
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
104 define <2 x i32> @orrimm2s_lsl8(<2 x i32> %a) {
|
77
|
105 ; CHECK-LABEL: orrimm2s_lsl8:
|
|
106 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
107 %tmp1 = or <2 x i32> %a, < i32 65280, i32 65280>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
108 ret <2 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
109 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
110
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
111 define <2 x i32> @orrimm2s_lsl16(<2 x i32> %a) {
|
77
|
112 ; CHECK-LABEL: orrimm2s_lsl16:
|
|
113 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #16
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
114 %tmp1 = or <2 x i32> %a, < i32 16711680, i32 16711680>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
115 ret <2 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
116 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
117
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
118 define <2 x i32> @orrimm2s_lsl24(<2 x i32> %a) {
|
77
|
119 ; CHECK-LABEL: orrimm2s_lsl24:
|
|
120 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #24
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
121 %tmp1 = or <2 x i32> %a, < i32 4278190080, i32 4278190080>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
122 ret <2 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
123 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
124
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
125 define <4 x i32> @orrimm4s_lsl0(<4 x i32> %a) {
|
77
|
126 ; CHECK-LABEL: orrimm4s_lsl0:
|
|
127 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
128 %tmp1 = or <4 x i32> %a, < i32 255, i32 255, i32 255, i32 255>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
129 ret <4 x i32> %tmp1
|
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 define <4 x i32> @orrimm4s_lsl8(<4 x i32> %a) {
|
77
|
133 ; CHECK-LABEL: orrimm4s_lsl8:
|
|
134 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
135 %tmp1 = or <4 x i32> %a, < i32 65280, i32 65280, i32 65280, i32 65280>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
136 ret <4 x i32> %tmp1
|
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 define <4 x i32> @orrimm4s_lsl16(<4 x i32> %a) {
|
77
|
140 ; CHECK-LABEL: orrimm4s_lsl16:
|
|
141 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #16
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
142 %tmp1 = or <4 x i32> %a, < i32 16711680, i32 16711680, i32 16711680, i32 16711680>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
143 ret <4 x i32> %tmp1
|
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 i32> @orrimm4s_lsl24(<4 x i32> %a) {
|
77
|
147 ; CHECK-LABEL: orrimm4s_lsl24:
|
|
148 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #24
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
149 %tmp1 = or <4 x i32> %a, < i32 4278190080, i32 4278190080, i32 4278190080, i32 4278190080>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
150 ret <4 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
151 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
152
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
153 define <4 x i16> @orrimm4h_lsl0(<4 x i16> %a) {
|
77
|
154 ; CHECK-LABEL: orrimm4h_lsl0:
|
|
155 ; CHECK: orr {{v[0-9]+}}.4h, #{{0xff|255}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
156 %tmp1 = or <4 x i16> %a, < i16 255, i16 255, i16 255, i16 255 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
157 ret <4 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
158 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
159
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
160 define <4 x i16> @orrimm4h_lsl8(<4 x i16> %a) {
|
77
|
161 ; CHECK-LABEL: orrimm4h_lsl8:
|
|
162 ; CHECK: orr {{v[0-9]+}}.4h, #{{0xff|255}}, lsl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
163 %tmp1 = or <4 x i16> %a, < i16 65280, i16 65280, i16 65280, i16 65280 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
164 ret <4 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
165 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
166
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
167 define <8 x i16> @orrimm8h_lsl0(<8 x i16> %a) {
|
77
|
168 ; CHECK-LABEL: orrimm8h_lsl0:
|
|
169 ; CHECK: orr {{v[0-9]+}}.8h, #{{0xff|255}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
170 %tmp1 = or <8 x i16> %a, < 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
|
171 ret <8 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
172 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
173
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
174 define <8 x i16> @orrimm8h_lsl8(<8 x i16> %a) {
|
77
|
175 ; CHECK-LABEL: orrimm8h_lsl8:
|
|
176 ; CHECK: orr {{v[0-9]+}}.8h, #{{0xff|255}}, lsl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
177 %tmp1 = or <8 x i16> %a, < 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
|
178 ret <8 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
179 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
180
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
181 define <2 x i32> @bicimm2s_lsl0(<2 x i32> %a) {
|
77
|
182 ; CHECK-LABEL: bicimm2s_lsl0:
|
|
183 ; CHECK: bic {{v[0-9]+}}.2s, #{{0x10|16}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
184 %tmp1 = and <2 x i32> %a, < i32 4294967279, i32 4294967279 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
185 ret <2 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
186 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
187
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
188 define <2 x i32> @bicimm2s_lsl8(<2 x i32> %a) {
|
77
|
189 ; CHECK-LABEL: bicimm2s_lsl8:
|
|
190 ; CHECK: bic {{v[0-9]+}}.2s, #{{0x10|16}}, lsl #8
|
|
191 %tmp1 = and <2 x i32> %a, < i32 4294963199, i32 4294963199 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
192 ret <2 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
193 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
194
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
195 define <2 x i32> @bicimm2s_lsl16(<2 x i32> %a) {
|
77
|
196 ; CHECK-LABEL: bicimm2s_lsl16:
|
|
197 ; CHECK: bic {{v[0-9]+}}.2s, #{{0x10|16}}, lsl #16
|
|
198 %tmp1 = and <2 x i32> %a, < i32 4293918719, i32 4293918719 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
199 ret <2 x i32> %tmp1
|
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 <2 x i32> @bicimm2s_lsl124(<2 x i32> %a) {
|
77
|
203 ; CHECK-LABEL: bicimm2s_lsl124:
|
|
204 ; CHECK: bic {{v[0-9]+}}.2s, #{{0x10|16}}, lsl #24
|
|
205 %tmp1 = and <2 x i32> %a, < i32 4026531839, i32 4026531839>
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
206 ret <2 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
207 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
208
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
209 define <4 x i32> @bicimm4s_lsl0(<4 x i32> %a) {
|
77
|
210 ; CHECK-LABEL: bicimm4s_lsl0:
|
|
211 ; CHECK: bic {{v[0-9]+}}.4s, #{{0x10|16}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
212 %tmp1 = and <4 x i32> %a, < i32 4294967279, i32 4294967279, i32 4294967279, i32 4294967279 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
213 ret <4 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
214 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
215
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
216 define <4 x i32> @bicimm4s_lsl8(<4 x i32> %a) {
|
77
|
217 ; CHECK-LABEL: bicimm4s_lsl8:
|
|
218 ; CHECK: bic {{v[0-9]+}}.4s, #{{0x10|16}}, lsl #8
|
|
219 %tmp1 = and <4 x i32> %a, < i32 4294963199, i32 4294963199, i32 4294963199, i32 4294963199 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
220 ret <4 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
221 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
222
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
223 define <4 x i32> @bicimm4s_lsl16(<4 x i32> %a) {
|
77
|
224 ; CHECK-LABEL: bicimm4s_lsl16:
|
|
225 ; CHECK: bic {{v[0-9]+}}.4s, #{{0x10|16}}, lsl #16
|
|
226 %tmp1 = and <4 x i32> %a, < i32 4293918719, i32 4293918719, i32 4293918719, i32 4293918719 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
227 ret <4 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
228 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
229
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
230 define <4 x i32> @bicimm4s_lsl124(<4 x i32> %a) {
|
77
|
231 ; CHECK-LABEL: bicimm4s_lsl124:
|
|
232 ; CHECK: bic {{v[0-9]+}}.4s, #{{0x10|16}}, lsl #24
|
|
233 %tmp1 = and <4 x i32> %a, < i32 4026531839, i32 4026531839, i32 4026531839, i32 4026531839>
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
234 ret <4 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
235 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
236
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
237 define <4 x i16> @bicimm4h_lsl0_a(<4 x i16> %a) {
|
77
|
238 ; CHECK-LABEL: bicimm4h_lsl0_a:
|
|
239 ; CHECK: bic {{v[0-9]+}}.4h, #{{0x10|16}}
|
|
240 %tmp1 = and <4 x i16> %a, < i16 4294967279, i16 4294967279, i16 4294967279, i16 4294967279 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
241 ret <4 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
242 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
243
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
244 define <4 x i16> @bicimm4h_lsl0_b(<4 x i16> %a) {
|
77
|
245 ; CHECK-LABEL: bicimm4h_lsl0_b:
|
|
246 ; CHECK: bic {{v[0-9]+}}.4h, #{{0xff|255}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
247 %tmp1 = and <4 x i16> %a, < i16 65280, i16 65280, i16 65280, i16 65280 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
248 ret <4 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
249 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
250
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
251 define <4 x i16> @bicimm4h_lsl8_a(<4 x i16> %a) {
|
77
|
252 ; CHECK-LABEL: bicimm4h_lsl8_a:
|
|
253 ; CHECK: bic {{v[0-9]+}}.4h, #{{0x10|16}}, lsl #8
|
|
254 %tmp1 = and <4 x i16> %a, < i16 4294963199, i16 4294963199, i16 4294963199, i16 4294963199>
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
255 ret <4 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
256 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
257
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
258 define <4 x i16> @bicimm4h_lsl8_b(<4 x i16> %a) {
|
77
|
259 ; CHECK-LABEL: bicimm4h_lsl8_b:
|
|
260 ; CHECK: bic {{v[0-9]+}}.4h, #{{0xff|255}}, lsl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
261 %tmp1 = and <4 x i16> %a, < i16 255, i16 255, i16 255, i16 255>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
262 ret <4 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
263 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
264
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
265 define <8 x i16> @bicimm8h_lsl0_a(<8 x i16> %a) {
|
77
|
266 ; CHECK-LABEL: bicimm8h_lsl0_a:
|
|
267 ; CHECK: bic {{v[0-9]+}}.8h, #{{0x10|16}}
|
|
268 %tmp1 = and <8 x i16> %a, < i16 4294967279, i16 4294967279, i16 4294967279, i16 4294967279,
|
|
269 i16 4294967279, i16 4294967279, i16 4294967279, i16 4294967279 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
270 ret <8 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
271 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
272
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
273 define <8 x i16> @bicimm8h_lsl0_b(<8 x i16> %a) {
|
77
|
274 ; CHECK-LABEL: bicimm8h_lsl0_b:
|
|
275 ; CHECK: bic {{v[0-9]+}}.8h, #{{0xff|255}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
276 %tmp1 = and <8 x i16> %a, < 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
|
277 ret <8 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
278 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
279
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
280 define <8 x i16> @bicimm8h_lsl8_a(<8 x i16> %a) {
|
77
|
281 ; CHECK-LABEL: bicimm8h_lsl8_a:
|
|
282 ; CHECK: bic {{v[0-9]+}}.8h, #{{0x10|16}}, lsl #8
|
|
283 %tmp1 = and <8 x i16> %a, < i16 4294963199, i16 4294963199, i16 4294963199, i16 4294963199,
|
|
284 i16 4294963199, i16 4294963199, i16 4294963199, i16 4294963199>
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
285 ret <8 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
286 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
287
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
288 define <8 x i16> @bicimm8h_lsl8_b(<8 x i16> %a) {
|
77
|
289 ; CHECK-LABEL: bicimm8h_lsl8_b:
|
|
290 ; CHECK: bic {{v[0-9]+}}.8h, #{{0xff|255}}, lsl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
291 %tmp1 = and <8 x i16> %a, < 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
|
292 ret <8 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
293 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
294
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
295 define <2 x i32> @and2xi32(<2 x i32> %a, <2 x i32> %b) {
|
77
|
296 ; CHECK-LABEL: and2xi32:
|
|
297 ; CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
298 %tmp1 = and <2 x i32> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
299 ret <2 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
300 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
301
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
302 define <4 x i16> @and4xi16(<4 x i16> %a, <4 x i16> %b) {
|
77
|
303 ; CHECK-LABEL: and4xi16:
|
|
304 ; CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
305 %tmp1 = and <4 x i16> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
306 ret <4 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
307 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
308
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
309 define <1 x i64> @and1xi64(<1 x i64> %a, <1 x i64> %b) {
|
77
|
310 ; CHECK-LABEL: and1xi64:
|
|
311 ; CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
312 %tmp1 = and <1 x i64> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
313 ret <1 x i64> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
314 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
315
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
316 define <4 x i32> @and4xi32(<4 x i32> %a, <4 x i32> %b) {
|
77
|
317 ; CHECK-LABEL: and4xi32:
|
|
318 ; CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
319 %tmp1 = and <4 x i32> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
320 ret <4 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
321 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
322
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
323 define <8 x i16> @and8xi16(<8 x i16> %a, <8 x i16> %b) {
|
77
|
324 ; CHECK-LABEL: and8xi16:
|
|
325 ; CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
326 %tmp1 = and <8 x i16> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
327 ret <8 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
328 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
329
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
330 define <2 x i64> @and2xi64(<2 x i64> %a, <2 x i64> %b) {
|
77
|
331 ; CHECK-LABEL: and2xi64:
|
|
332 ; CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
333 %tmp1 = and <2 x i64> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
334 ret <2 x i64> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
335 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
336
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
337 define <2 x i32> @orr2xi32(<2 x i32> %a, <2 x i32> %b) {
|
77
|
338 ; CHECK-LABEL: orr2xi32:
|
|
339 ; CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
340 %tmp1 = or <2 x i32> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
341 ret <2 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
342 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
343
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
344 define <4 x i16> @orr4xi16(<4 x i16> %a, <4 x i16> %b) {
|
77
|
345 ; CHECK-LABEL: orr4xi16:
|
|
346 ; CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
347 %tmp1 = or <4 x i16> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
348 ret <4 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
349 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
350
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
351 define <1 x i64> @orr1xi64(<1 x i64> %a, <1 x i64> %b) {
|
77
|
352 ; CHECK-LABEL: orr1xi64:
|
|
353 ; CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
354 %tmp1 = or <1 x i64> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
355 ret <1 x i64> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
356 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
357
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
358 define <4 x i32> @orr4xi32(<4 x i32> %a, <4 x i32> %b) {
|
77
|
359 ; CHECK-LABEL: orr4xi32:
|
|
360 ; CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
361 %tmp1 = or <4 x i32> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
362 ret <4 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
363 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
364
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
365 define <8 x i16> @orr8xi16(<8 x i16> %a, <8 x i16> %b) {
|
77
|
366 ; CHECK-LABEL: orr8xi16:
|
|
367 ; CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
368 %tmp1 = or <8 x i16> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
369 ret <8 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
370 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
371
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
372 define <2 x i64> @orr2xi64(<2 x i64> %a, <2 x i64> %b) {
|
77
|
373 ; CHECK-LABEL: orr2xi64:
|
|
374 ; CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
375 %tmp1 = or <2 x i64> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
376 ret <2 x i64> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
377 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
378
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
379 define <2 x i32> @eor2xi32(<2 x i32> %a, <2 x i32> %b) {
|
77
|
380 ; CHECK-LABEL: eor2xi32:
|
|
381 ; CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
382 %tmp1 = xor <2 x i32> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
383 ret <2 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
384 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
385
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
386 define <4 x i16> @eor4xi16(<4 x i16> %a, <4 x i16> %b) {
|
77
|
387 ; CHECK-LABEL: eor4xi16:
|
|
388 ; CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
389 %tmp1 = xor <4 x i16> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
390 ret <4 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
391 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
392
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
393 define <1 x i64> @eor1xi64(<1 x i64> %a, <1 x i64> %b) {
|
77
|
394 ; CHECK-LABEL: eor1xi64:
|
|
395 ; CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
396 %tmp1 = xor <1 x i64> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
397 ret <1 x i64> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
398 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
399
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
400 define <4 x i32> @eor4xi32(<4 x i32> %a, <4 x i32> %b) {
|
77
|
401 ; CHECK-LABEL: eor4xi32:
|
|
402 ; CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
403 %tmp1 = xor <4 x i32> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
404 ret <4 x i32> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
405 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
406
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
407 define <8 x i16> @eor8xi16(<8 x i16> %a, <8 x i16> %b) {
|
77
|
408 ; CHECK-LABEL: eor8xi16:
|
|
409 ; CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
410 %tmp1 = xor <8 x i16> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
411 ret <8 x i16> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
412 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
413
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
414 define <2 x i64> @eor2xi64(<2 x i64> %a, <2 x i64> %b) {
|
77
|
415 ; CHECK-LABEL: eor2xi64:
|
|
416 ; CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
417 %tmp1 = xor <2 x i64> %a, %b;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
418 ret <2 x i64> %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
419 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
420
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
421
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
422 define <2 x i32> @bic2xi32(<2 x i32> %a, <2 x i32> %b) {
|
77
|
423 ; CHECK-LABEL: bic2xi32:
|
|
424 ; CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
425 %tmp1 = xor <2 x i32> %b, < i32 -1, i32 -1 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
426 %tmp2 = and <2 x i32> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
427 ret <2 x i32> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
428 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
429
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
430 define <4 x i16> @bic4xi16(<4 x i16> %a, <4 x i16> %b) {
|
77
|
431 ; CHECK-LABEL: bic4xi16:
|
|
432 ; CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
433 %tmp1 = xor <4 x i16> %b, < i16 -1, i16 -1, i16 -1, i16-1 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
434 %tmp2 = and <4 x i16> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
435 ret <4 x i16> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
436 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
437
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
438 define <1 x i64> @bic1xi64(<1 x i64> %a, <1 x i64> %b) {
|
77
|
439 ; CHECK-LABEL: bic1xi64:
|
|
440 ; CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
441 %tmp1 = xor <1 x i64> %b, < i64 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
442 %tmp2 = and <1 x i64> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
443 ret <1 x i64> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
444 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
445
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
446 define <4 x i32> @bic4xi32(<4 x i32> %a, <4 x i32> %b) {
|
77
|
447 ; CHECK-LABEL: bic4xi32:
|
|
448 ; CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
449 %tmp1 = xor <4 x i32> %b, < i32 -1, i32 -1, i32 -1, i32 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
450 %tmp2 = and <4 x i32> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
451 ret <4 x i32> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
452 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
453
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
454 define <8 x i16> @bic8xi16(<8 x i16> %a, <8 x i16> %b) {
|
77
|
455 ; CHECK-LABEL: bic8xi16:
|
|
456 ; CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
457 %tmp1 = xor <8 x i16> %b, < i16 -1, i16 -1, i16 -1, i16-1, i16 -1, i16 -1, i16 -1, i16 -1 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
458 %tmp2 = and <8 x i16> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
459 ret <8 x i16> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
460 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
461
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
462 define <2 x i64> @bic2xi64(<2 x i64> %a, <2 x i64> %b) {
|
77
|
463 ; CHECK-LABEL: bic2xi64:
|
|
464 ; CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
465 %tmp1 = xor <2 x i64> %b, < i64 -1, i64 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
466 %tmp2 = and <2 x i64> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
467 ret <2 x i64> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
468 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
469
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
470 define <2 x i32> @orn2xi32(<2 x i32> %a, <2 x i32> %b) {
|
77
|
471 ; CHECK-LABEL: orn2xi32:
|
|
472 ; CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
473 %tmp1 = xor <2 x i32> %b, < i32 -1, i32 -1 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
474 %tmp2 = or <2 x i32> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
475 ret <2 x i32> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
476 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
477
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
478 define <4 x i16> @orn4xi16(<4 x i16> %a, <4 x i16> %b) {
|
77
|
479 ; CHECK-LABEL: orn4xi16:
|
|
480 ; CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
481 %tmp1 = xor <4 x i16> %b, < i16 -1, i16 -1, i16 -1, i16-1 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
482 %tmp2 = or <4 x i16> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
483 ret <4 x i16> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
484 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
485
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
486 define <1 x i64> @orn1xi64(<1 x i64> %a, <1 x i64> %b) {
|
77
|
487 ; CHECK-LABEL: orn1xi64:
|
|
488 ; CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
489 %tmp1 = xor <1 x i64> %b, < i64 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
490 %tmp2 = or <1 x i64> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
491 ret <1 x i64> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
492 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
493
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
494 define <4 x i32> @orn4xi32(<4 x i32> %a, <4 x i32> %b) {
|
77
|
495 ; CHECK-LABEL: orn4xi32:
|
|
496 ; CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
497 %tmp1 = xor <4 x i32> %b, < i32 -1, i32 -1, i32 -1, i32 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
498 %tmp2 = or <4 x i32> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
499 ret <4 x i32> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
500 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
501
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
502 define <8 x i16> @orn8xi16(<8 x i16> %a, <8 x i16> %b) {
|
77
|
503 ; CHECK-LABEL: orn8xi16:
|
|
504 ; CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
505 %tmp1 = xor <8 x i16> %b, < i16 -1, i16 -1, i16 -1, i16-1, i16 -1, i16 -1, i16 -1, i16 -1 >
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
506 %tmp2 = or <8 x i16> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
507 ret <8 x i16> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
508 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
509
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
510 define <2 x i64> @orn2xi64(<2 x i64> %a, <2 x i64> %b) {
|
77
|
511 ; CHECK-LABEL: orn2xi64:
|
|
512 ; CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
513 %tmp1 = xor <2 x i64> %b, < i64 -1, i64 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
514 %tmp2 = or <2 x i64> %a, %tmp1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
515 ret <2 x i64> %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
516 }
|
77
|
517
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
518 define <2 x i32> @bsl2xi32_const(<2 x i32> %a, <2 x i32> %b) {
|
77
|
519 ; CHECK-LABEL: bsl2xi32_const:
|
|
520 ; CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
521 %tmp1 = and <2 x i32> %a, < i32 -1, i32 0 >
|
|
522 %tmp2 = and <2 x i32> %b, < i32 0, i32 -1 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
523 %tmp3 = or <2 x i32> %tmp1, %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
524 ret <2 x i32> %tmp3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
525 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
526
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
527
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
528 define <4 x i16> @bsl4xi16_const(<4 x i16> %a, <4 x i16> %b) {
|
77
|
529 ; CHECK-LABEL: bsl4xi16_const:
|
|
530 ; CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
531 %tmp1 = and <4 x i16> %a, < i16 -1, i16 0, i16 -1,i16 0 >
|
|
532 %tmp2 = and <4 x i16> %b, < i16 0, i16 -1,i16 0, i16 -1 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
533 %tmp3 = or <4 x i16> %tmp1, %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
534 ret <4 x i16> %tmp3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
535 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
536
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
537 define <1 x i64> @bsl1xi64_const(<1 x i64> %a, <1 x i64> %b) {
|
77
|
538 ; CHECK-LABEL: bsl1xi64_const:
|
|
539 ; CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
540 %tmp1 = and <1 x i64> %a, < i64 -16 >
|
|
541 %tmp2 = and <1 x i64> %b, < i64 15 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
542 %tmp3 = or <1 x i64> %tmp1, %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
543 ret <1 x i64> %tmp3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
544 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
545
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
546 define <4 x i32> @bsl4xi32_const(<4 x i32> %a, <4 x i32> %b) {
|
77
|
547 ; CHECK-LABEL: bsl4xi32_const:
|
|
548 ; CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
|
549 %tmp1 = and <4 x i32> %a, < i32 -1, i32 0, i32 -1, i32 0 >
|
|
550 %tmp2 = and <4 x i32> %b, < i32 0, i32 -1, i32 0, i32 -1 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
551 %tmp3 = or <4 x i32> %tmp1, %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
552 ret <4 x i32> %tmp3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
553 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
554
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
555 define <8 x i16> @bsl8xi16_const(<8 x i16> %a, <8 x i16> %b) {
|
77
|
556 ; CHECK-LABEL: bsl8xi16_const:
|
|
557 ; CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
|
558 %tmp1 = and <8 x i16> %a, < i16 -1, i16 -1, i16 0,i16 0, i16 -1, i16 -1, i16 0,i16 0 >
|
|
559 %tmp2 = and <8 x i16> %b, < i16 0, i16 0, i16 -1, i16 -1, i16 0, i16 0, i16 -1, i16 -1 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
560 %tmp3 = or <8 x i16> %tmp1, %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
561 ret <8 x i16> %tmp3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
562 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
563
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
564 define <2 x i64> @bsl2xi64_const(<2 x i64> %a, <2 x i64> %b) {
|
77
|
565 ; CHECK-LABEL: bsl2xi64_const:
|
|
566 ; CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
|
567 %tmp1 = and <2 x i64> %a, < i64 -1, i64 0 >
|
|
568 %tmp2 = and <2 x i64> %b, < i64 0, i64 -1 >
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
569 %tmp3 = or <2 x i64> %tmp1, %tmp2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
570 ret <2 x i64> %tmp3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
571 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
572
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
573
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
574 define <8 x i8> @bsl8xi8(<8 x i8> %v1, <8 x i8> %v2, <8 x i8> %v3) {
|
77
|
575 ; CHECK-LABEL: bsl8xi8:
|
|
576 ; CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
577 %1 = and <8 x i8> %v1, %v2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
578 %2 = xor <8 x i8> %v1, <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
579 %3 = and <8 x i8> %2, %v3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
580 %4 = or <8 x i8> %1, %3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
581 ret <8 x i8> %4
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
582 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
583
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
584 define <4 x i16> @bsl4xi16(<4 x i16> %v1, <4 x i16> %v2, <4 x i16> %v3) {
|
77
|
585 ; CHECK-LABEL: bsl4xi16:
|
|
586 ; CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
587 %1 = and <4 x i16> %v1, %v2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
588 %2 = xor <4 x i16> %v1, <i16 -1, i16 -1, i16 -1, i16 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
589 %3 = and <4 x i16> %2, %v3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
590 %4 = or <4 x i16> %1, %3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
591 ret <4 x i16> %4
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
592 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
593
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
594 define <2 x i32> @bsl2xi32(<2 x i32> %v1, <2 x i32> %v2, <2 x i32> %v3) {
|
77
|
595 ; CHECK-LABEL: bsl2xi32:
|
|
596 ; CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
597 %1 = and <2 x i32> %v1, %v2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
598 %2 = xor <2 x i32> %v1, <i32 -1, i32 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
599 %3 = and <2 x i32> %2, %v3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
600 %4 = or <2 x i32> %1, %3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
601 ret <2 x i32> %4
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
602 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
603
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
604 define <1 x i64> @bsl1xi64(<1 x i64> %v1, <1 x i64> %v2, <1 x i64> %v3) {
|
77
|
605 ; CHECK-LABEL: bsl1xi64:
|
|
606 ; CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
607 %1 = and <1 x i64> %v1, %v2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
608 %2 = xor <1 x i64> %v1, <i64 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
609 %3 = and <1 x i64> %2, %v3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
610 %4 = or <1 x i64> %1, %3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
611 ret <1 x i64> %4
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
612 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
613
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
614 define <16 x i8> @bsl16xi8(<16 x i8> %v1, <16 x i8> %v2, <16 x i8> %v3) {
|
77
|
615 ; CHECK-LABEL: bsl16xi8:
|
|
616 ; CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
617 %1 = and <16 x i8> %v1, %v2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
618 %2 = xor <16 x i8> %v1, <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
619 %3 = and <16 x i8> %2, %v3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
620 %4 = or <16 x i8> %1, %3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
621 ret <16 x i8> %4
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
622 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
623
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
624 define <8 x i16> @bsl8xi16(<8 x i16> %v1, <8 x i16> %v2, <8 x i16> %v3) {
|
77
|
625 ; CHECK-LABEL: bsl8xi16:
|
|
626 ; CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
627 %1 = and <8 x i16> %v1, %v2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
628 %2 = xor <8 x i16> %v1, <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
629 %3 = and <8 x i16> %2, %v3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
630 %4 = or <8 x i16> %1, %3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
631 ret <8 x i16> %4
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
632 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
633
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
634 define <4 x i32> @bsl4xi32(<4 x i32> %v1, <4 x i32> %v2, <4 x i32> %v3) {
|
77
|
635 ; CHECK-LABEL: bsl4xi32:
|
|
636 ; CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
637 %1 = and <4 x i32> %v1, %v2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
638 %2 = xor <4 x i32> %v1, <i32 -1, i32 -1, i32 -1, i32 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
639 %3 = and <4 x i32> %2, %v3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
640 %4 = or <4 x i32> %1, %3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
641 ret <4 x i32> %4
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
642 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
643
|
77
|
644 define <8 x i8> @vselect_v8i8(<8 x i8> %a) {
|
|
645 ; CHECK-LABEL: vselect_v8i8:
|
|
646 ; CHECK: movi {{d[0-9]+}}, #0x{{0*}}ffff
|
|
647 ; CHECK-NEXT: {{bsl v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b|and v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b}}
|
|
648 %b = select <8 x i1> <i1 true, i1 true, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false>, <8 x i8> %a, <8 x i8> <i8 undef, i8 undef, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>
|
|
649 ret <8 x i8> %b
|
|
650 }
|
|
651
|
|
652 define <4 x i16> @vselect_v4i16(<4 x i16> %a) {
|
|
653 ; CHECK-LABEL: vselect_v4i16:
|
|
654 ; CHECK: movi {{d[0-9]+}}, #0x{{0*}}ffff
|
|
655 ; CHECK-NEXT: {{bsl v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b|and v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b}}
|
|
656 %b = select <4 x i1> <i1 true, i1 false, i1 false, i1 false>, <4 x i16> %a, <4 x i16> <i16 undef, i16 0, i16 0, i16 0>
|
|
657 ret <4 x i16> %b
|
|
658 }
|
|
659
|
|
660 define <8 x i8> @vselect_cmp_ne(<8 x i8> %a, <8 x i8> %b, <8 x i8> %c) {
|
|
661 ; CHECK-LABEL: vselect_cmp_ne:
|
|
662 ; CHECK: cmeq {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
663 ; CHECK-NEXT: {{mvn|not}} {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
664 ; CHECK-NEXT: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
665 %cmp = icmp ne <8 x i8> %a, %b
|
|
666 %d = select <8 x i1> %cmp, <8 x i8> %b, <8 x i8> %c
|
|
667 ret <8 x i8> %d
|
|
668 }
|
|
669
|
|
670 define <8 x i8> @vselect_cmp_eq(<8 x i8> %a, <8 x i8> %b, <8 x i8> %c) {
|
|
671 ; CHECK-LABEL: vselect_cmp_eq:
|
|
672 ; CHECK: cmeq {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
673 ; CHECK-NEXT: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
674 %cmp = icmp eq <8 x i8> %a, %b
|
|
675 %d = select <8 x i1> %cmp, <8 x i8> %b, <8 x i8> %c
|
|
676 ret <8 x i8> %d
|
|
677 }
|
|
678
|
|
679 define <8 x i8> @vselect_cmpz_ne(<8 x i8> %a, <8 x i8> %b, <8 x i8> %c) {
|
|
680 ; CHECK-LABEL: vselect_cmpz_ne:
|
|
681 ; CHECK: cmeq {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #0
|
|
682 ; CHECK-NEXT: {{mvn|not}} {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
683 ; CHECK-NEXT: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
684 %cmp = icmp ne <8 x i8> %a, zeroinitializer
|
|
685 %d = select <8 x i1> %cmp, <8 x i8> %b, <8 x i8> %c
|
|
686 ret <8 x i8> %d
|
|
687 }
|
|
688
|
|
689 define <8 x i8> @vselect_cmpz_eq(<8 x i8> %a, <8 x i8> %b, <8 x i8> %c) {
|
|
690 ; CHECK-LABEL: vselect_cmpz_eq:
|
|
691 ; CHECK: cmeq {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #0
|
|
692 ; CHECK-NEXT: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
693 %cmp = icmp eq <8 x i8> %a, zeroinitializer
|
|
694 %d = select <8 x i1> %cmp, <8 x i8> %b, <8 x i8> %c
|
|
695 ret <8 x i8> %d
|
|
696 }
|
|
697
|
|
698 define <8 x i8> @vselect_tst(<8 x i8> %a, <8 x i8> %b, <8 x i8> %c) {
|
|
699 ; CHECK-LABEL: vselect_tst:
|
|
700 ; CHECK: cmtst {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
701 ; CHECK-NEXT: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
|
|
702 %tmp3 = and <8 x i8> %a, %b
|
|
703 %tmp4 = icmp ne <8 x i8> %tmp3, zeroinitializer
|
|
704 %d = select <8 x i1> %tmp4, <8 x i8> %b, <8 x i8> %c
|
|
705 ret <8 x i8> %d
|
|
706 }
|
|
707
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
708 define <2 x i64> @bsl2xi64(<2 x i64> %v1, <2 x i64> %v2, <2 x i64> %v3) {
|
77
|
709 ; CHECK-LABEL: bsl2xi64:
|
|
710 ; CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
711 %1 = and <2 x i64> %v1, %v2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
712 %2 = xor <2 x i64> %v1, <i64 -1, i64 -1>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
713 %3 = and <2 x i64> %2, %v3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
714 %4 = or <2 x i64> %1, %3
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
715 ret <2 x i64> %4
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
716 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
717
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
718 define <8 x i8> @orrimm8b_as_orrimm4h_lsl0(<8 x i8> %a) {
|
77
|
719 ; CHECK-LABEL: orrimm8b_as_orrimm4h_lsl0:
|
|
720 ; CHECK: orr {{v[0-9]+}}.4h, #{{0xff|255}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
721 %val = or <8 x i8> %a, <i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
722 ret <8 x i8> %val
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
723 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
724
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
725 define <8 x i8> @orrimm8b_as_orimm4h_lsl8(<8 x i8> %a) {
|
77
|
726 ; CHECK-LABEL: orrimm8b_as_orimm4h_lsl8:
|
|
727 ; CHECK: orr {{v[0-9]+}}.4h, #{{0xff|255}}, lsl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
728 %val = or <8 x i8> %a, <i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
729 ret <8 x i8> %val
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
730 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
731
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
732 define <16 x i8> @orimm16b_as_orrimm8h_lsl0(<16 x i8> %a) {
|
77
|
733 ; CHECK-LABEL: orimm16b_as_orrimm8h_lsl0:
|
|
734 ; CHECK: orr {{v[0-9]+}}.8h, #{{0xff|255}}
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
735 %val = or <16 x i8> %a, <i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
736 ret <16 x i8> %val
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
737 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
738
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
739 define <16 x i8> @orimm16b_as_orrimm8h_lsl8(<16 x i8> %a) {
|
77
|
740 ; CHECK-LABEL: orimm16b_as_orrimm8h_lsl8:
|
|
741 ; CHECK: orr {{v[0-9]+}}.8h, #{{0xff|255}}, lsl #8
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
742 %val = or <16 x i8> %a, <i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
743 ret <16 x i8> %val
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
744 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
745
|
77
|
746 define <8 x i8> @and8imm2s_lsl0(<8 x i8> %a) {
|
|
747 ; CHECK-LABEL: and8imm2s_lsl0:
|
|
748 ; CHECK: bic {{v[0-9]+}}.2s, #{{0xff|255}}
|
|
749 %tmp1 = and <8 x i8> %a, < i8 0, i8 255, i8 255, i8 255, i8 0, i8 255, i8 255, i8 255>
|
|
750 ret <8 x i8> %tmp1
|
|
751 }
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
752
|
77
|
753 define <8 x i8> @and8imm2s_lsl8(<8 x i8> %a) {
|
|
754 ; CHECK-LABEL: and8imm2s_lsl8:
|
|
755 ; CHECK: bic {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #8
|
|
756 %tmp1 = and <8 x i8> %a, < i8 255, i8 0, i8 255, i8 255, i8 255, i8 0, i8 255, i8 255>
|
|
757 ret <8 x i8> %tmp1
|
|
758 }
|
|
759
|
|
760 define <8 x i8> @and8imm2s_lsl16(<8 x i8> %a) {
|
|
761 ; CHECK-LABEL: and8imm2s_lsl16:
|
|
762 ; CHECK: bic {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #16
|
|
763 %tmp1 = and <8 x i8> %a, < i8 255, i8 255, i8 0, i8 255, i8 255, i8 255, i8 0, i8 255>
|
|
764 ret <8 x i8> %tmp1
|
|
765 }
|
|
766
|
|
767 define <8 x i8> @and8imm2s_lsl24(<8 x i8> %a) {
|
|
768 ; CHECK-LABEL: and8imm2s_lsl24:
|
|
769 ; CHECK: bic {{v[0-9]+}}.2s, #{{0xfe|254}}, lsl #24
|
|
770 %tmp1 = and <8 x i8> %a, < i8 255, i8 255, i8 255, i8 1, i8 255, i8 255, i8 255, i8 1>
|
|
771 ret <8 x i8> %tmp1
|
|
772 }
|
|
773
|
|
774 define <4 x i16> @and16imm2s_lsl0(<4 x i16> %a) {
|
|
775 ; CHECK-LABEL: and16imm2s_lsl0:
|
|
776 ; CHECK: bic {{v[0-9]+}}.2s, #{{0xff|255}}
|
|
777 %tmp1 = and <4 x i16> %a, < i16 65280, i16 65535, i16 65280, i16 65535>
|
|
778 ret <4 x i16> %tmp1
|
|
779 }
|
|
780
|
|
781 define <4 x i16> @and16imm2s_lsl8(<4 x i16> %a) {
|
|
782 ; CHECK-LABEL: and16imm2s_lsl8:
|
|
783 ; CHECK: bic {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #8
|
|
784 %tmp1 = and <4 x i16> %a, < i16 255, i16 65535, i16 255, i16 65535>
|
|
785 ret <4 x i16> %tmp1
|
|
786 }
|
|
787
|
|
788 define <4 x i16> @and16imm2s_lsl16(<4 x i16> %a) {
|
|
789 ; CHECK-LABEL: and16imm2s_lsl16:
|
|
790 ; CHECK: bic {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #16
|
|
791 %tmp1 = and <4 x i16> %a, < i16 65535, i16 65280, i16 65535, i16 65280>
|
|
792 ret <4 x i16> %tmp1
|
|
793 }
|
|
794
|
|
795 define <4 x i16> @and16imm2s_lsl24(<4 x i16> %a) {
|
|
796 ; CHECK-LABEL: and16imm2s_lsl24:
|
|
797 ; CHECK: bic {{v[0-9]+}}.2s, #{{0xfe|254}}, lsl #24
|
|
798 %tmp1 = and <4 x i16> %a, < i16 65535, i16 511, i16 65535, i16 511>
|
|
799 ret <4 x i16> %tmp1
|
|
800 }
|
|
801
|
|
802
|
|
803 define <1 x i64> @and64imm2s_lsl0(<1 x i64> %a) {
|
|
804 ; CHECK-LABEL: and64imm2s_lsl0:
|
|
805 ; CHECK: bic {{v[0-9]+}}.2s, #{{0xff|255}}
|
|
806 %tmp1 = and <1 x i64> %a, < i64 -1095216660736>
|
|
807 ret <1 x i64> %tmp1
|
|
808 }
|
|
809
|
|
810 define <1 x i64> @and64imm2s_lsl8(<1 x i64> %a) {
|
|
811 ; CHECK-LABEL: and64imm2s_lsl8:
|
|
812 ; CHECK: bic {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #8
|
|
813 %tmp1 = and <1 x i64> %a, < i64 -280375465148161>
|
|
814 ret <1 x i64> %tmp1
|
|
815 }
|
|
816
|
|
817 define <1 x i64> @and64imm2s_lsl16(<1 x i64> %a) {
|
|
818 ; CHECK-LABEL: and64imm2s_lsl16:
|
|
819 ; CHECK: bic {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #16
|
|
820 %tmp1 = and <1 x i64> %a, < i64 -71776119077928961>
|
|
821 ret <1 x i64> %tmp1
|
|
822 }
|
|
823
|
|
824 define <1 x i64> @and64imm2s_lsl24(<1 x i64> %a) {
|
|
825 ; CHECK-LABEL: and64imm2s_lsl24:
|
|
826 ; CHECK: bic {{v[0-9]+}}.2s, #{{0xfe|254}}, lsl #24
|
|
827 %tmp1 = and <1 x i64> %a, < i64 144115183814443007>
|
|
828 ret <1 x i64> %tmp1
|
|
829 }
|
|
830
|
|
831 define <16 x i8> @and8imm4s_lsl0(<16 x i8> %a) {
|
|
832 ; CHECK-LABEL: and8imm4s_lsl0:
|
|
833 ; CHECK: bic {{v[0-9]+}}.4s, #{{0xff|255}}
|
|
834 %tmp1 = and <16 x i8> %a, < i8 0, i8 255, i8 255, i8 255, i8 0, i8 255, i8 255, i8 255, i8 0, i8 255, i8 255, i8 255, i8 0, i8 255, i8 255, i8 255>
|
|
835 ret <16 x i8> %tmp1
|
|
836 }
|
|
837
|
|
838 define <16 x i8> @and8imm4s_lsl8(<16 x i8> %a) {
|
|
839 ; CHECK-LABEL: and8imm4s_lsl8:
|
|
840 ; CHECK: bic {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #8
|
|
841 %tmp1 = and <16 x i8> %a, < i8 255, i8 0, i8 255, i8 255, i8 255, i8 0, i8 255, i8 255, i8 255, i8 0, i8 255, i8 255, i8 255, i8 0, i8 255, i8 255>
|
|
842 ret <16 x i8> %tmp1
|
|
843 }
|
|
844
|
|
845 define <16 x i8> @and8imm4s_lsl16(<16 x i8> %a) {
|
|
846 ; CHECK-LABEL: and8imm4s_lsl16:
|
|
847 ; CHECK: bic {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #16
|
|
848 %tmp1 = and <16 x i8> %a, < i8 255, i8 255, i8 0, i8 255, i8 255, i8 255, i8 0, i8 255, i8 255, i8 255, i8 0, i8 255, i8 255, i8 255, i8 0, i8 255>
|
|
849 ret <16 x i8> %tmp1
|
|
850 }
|
|
851
|
|
852 define <16 x i8> @and8imm4s_lsl24(<16 x i8> %a) {
|
|
853 ; CHECK-LABEL: and8imm4s_lsl24:
|
|
854 ; CHECK: bic {{v[0-9]+}}.4s, #{{0xfe|254}}, lsl #24
|
|
855 %tmp1 = and <16 x i8> %a, < i8 255, i8 255, i8 255, i8 1, i8 255, i8 255, i8 255, i8 1, i8 255, i8 255, i8 255, i8 1, i8 255, i8 255, i8 255, i8 1>
|
|
856 ret <16 x i8> %tmp1
|
|
857 }
|
|
858
|
|
859 define <8 x i16> @and16imm4s_lsl0(<8 x i16> %a) {
|
|
860 ; CHECK-LABEL: and16imm4s_lsl0:
|
|
861 ; CHECK: bic {{v[0-9]+}}.4s, #{{0xff|255}}
|
|
862 %tmp1 = and <8 x i16> %a, < i16 65280, i16 65535, i16 65280, i16 65535, i16 65280, i16 65535, i16 65280, i16 65535>
|
|
863 ret <8 x i16> %tmp1
|
|
864 }
|
|
865
|
|
866 define <8 x i16> @and16imm4s_lsl8(<8 x i16> %a) {
|
|
867 ; CHECK-LABEL: and16imm4s_lsl8:
|
|
868 ; CHECK: bic {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #8
|
|
869 %tmp1 = and <8 x i16> %a, < i16 255, i16 65535, i16 255, i16 65535, i16 255, i16 65535, i16 255, i16 65535>
|
|
870 ret <8 x i16> %tmp1
|
|
871 }
|
|
872
|
|
873 define <8 x i16> @and16imm4s_lsl16(<8 x i16> %a) {
|
|
874 ; CHECK-LABEL: and16imm4s_lsl16:
|
|
875 ; CHECK: bic {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #16
|
|
876 %tmp1 = and <8 x i16> %a, < i16 65535, i16 65280, i16 65535, i16 65280, i16 65535, i16 65280, i16 65535, i16 65280>
|
|
877 ret <8 x i16> %tmp1
|
|
878 }
|
|
879
|
|
880 define <8 x i16> @and16imm4s_lsl24(<8 x i16> %a) {
|
|
881 ; CHECK-LABEL: and16imm4s_lsl24:
|
|
882 ; CHECK: bic {{v[0-9]+}}.4s, #{{0xfe|254}}, lsl #24
|
|
883 %tmp1 = and <8 x i16> %a, < i16 65535, i16 511, i16 65535, i16 511, i16 65535, i16 511, i16 65535, i16 511>
|
|
884 ret <8 x i16> %tmp1
|
|
885 }
|
|
886
|
|
887 define <2 x i64> @and64imm4s_lsl0(<2 x i64> %a) {
|
|
888 ; CHECK-LABEL: and64imm4s_lsl0:
|
|
889 ; CHECK: bic {{v[0-9]+}}.4s, #{{0xff|255}}
|
|
890 %tmp1 = and <2 x i64> %a, < i64 -1095216660736, i64 -1095216660736>
|
|
891 ret <2 x i64> %tmp1
|
|
892 }
|
|
893
|
|
894 define <2 x i64> @and64imm4s_lsl8(<2 x i64> %a) {
|
|
895 ; CHECK-LABEL: and64imm4s_lsl8:
|
|
896 ; CHECK: bic {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #8
|
|
897 %tmp1 = and <2 x i64> %a, < i64 -280375465148161, i64 -280375465148161>
|
|
898 ret <2 x i64> %tmp1
|
|
899 }
|
|
900
|
|
901 define <2 x i64> @and64imm4s_lsl16(<2 x i64> %a) {
|
|
902 ; CHECK-LABEL: and64imm4s_lsl16:
|
|
903 ; CHECK: bic {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #16
|
|
904 %tmp1 = and <2 x i64> %a, < i64 -71776119077928961, i64 -71776119077928961>
|
|
905 ret <2 x i64> %tmp1
|
|
906 }
|
|
907
|
|
908 define <2 x i64> @and64imm4s_lsl24(<2 x i64> %a) {
|
|
909 ; CHECK-LABEL: and64imm4s_lsl24:
|
|
910 ; CHECK: bic {{v[0-9]+}}.4s, #{{0xfe|254}}, lsl #24
|
|
911 %tmp1 = and <2 x i64> %a, < i64 144115183814443007, i64 144115183814443007>
|
|
912 ret <2 x i64> %tmp1
|
|
913 }
|
|
914
|
|
915 define <8 x i8> @and8imm4h_lsl0(<8 x i8> %a) {
|
|
916 ; CHECK-LABEL: and8imm4h_lsl0:
|
|
917 ; CHECK: bic {{v[0-9]+}}.4h, #{{0xff|255}}
|
|
918 %tmp1 = and <8 x i8> %a, < i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255>
|
|
919 ret <8 x i8> %tmp1
|
|
920 }
|
|
921
|
|
922 define <8 x i8> @and8imm4h_lsl8(<8 x i8> %a) {
|
|
923 ; CHECK-LABEL: and8imm4h_lsl8:
|
|
924 ; CHECK: bic {{v[0-9]+}}.4h, #{{0xff|255}}, lsl #8
|
|
925 %tmp1 = and <8 x i8> %a, < i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0>
|
|
926 ret <8 x i8> %tmp1
|
|
927 }
|
|
928
|
|
929 define <2 x i32> @and16imm4h_lsl0(<2 x i32> %a) {
|
|
930 ; CHECK-LABEL: and16imm4h_lsl0:
|
|
931 ; CHECK: bic {{v[0-9]+}}.4h, #{{0xff|255}}
|
|
932 %tmp1 = and <2 x i32> %a, < i32 4278255360, i32 4278255360>
|
|
933 ret <2 x i32> %tmp1
|
|
934 }
|
|
935
|
|
936 define <2 x i32> @and16imm4h_lsl8(<2 x i32> %a) {
|
|
937 ; CHECK-LABEL: and16imm4h_lsl8:
|
|
938 ; CHECK: bic {{v[0-9]+}}.4h, #{{0xff|255}}, lsl #8
|
|
939 %tmp1 = and <2 x i32> %a, < i32 16711935, i32 16711935>
|
|
940 ret <2 x i32> %tmp1
|
|
941 }
|
|
942
|
|
943 define <1 x i64> @and64imm4h_lsl0(<1 x i64> %a) {
|
|
944 ; CHECK-LABEL: and64imm4h_lsl0:
|
|
945 ; CHECK: bic {{v[0-9]+}}.4h, #{{0xff|255}}
|
|
946 %tmp1 = and <1 x i64> %a, < i64 -71777214294589696>
|
|
947 ret <1 x i64> %tmp1
|
|
948 }
|
|
949
|
|
950 define <1 x i64> @and64imm4h_lsl8(<1 x i64> %a) {
|
|
951 ; CHECK-LABEL: and64imm4h_lsl8:
|
|
952 ; CHECK: bic {{v[0-9]+}}.4h, #{{0xff|255}}, lsl #8
|
|
953 %tmp1 = and <1 x i64> %a, < i64 71777214294589695>
|
|
954 ret <1 x i64> %tmp1
|
|
955 }
|
|
956
|
|
957 define <16 x i8> @and8imm8h_lsl0(<16 x i8> %a) {
|
|
958 ; CHECK-LABEL: and8imm8h_lsl0:
|
|
959 ; CHECK: bic {{v[0-9]+}}.8h, #{{0xff|255}}
|
|
960 %tmp1 = and <16 x i8> %a, < i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255 >
|
|
961 ret <16 x i8> %tmp1
|
|
962 }
|
|
963
|
|
964 define <16 x i8> @and8imm8h_lsl8(<16 x i8> %a) {
|
|
965 ; CHECK-LABEL: and8imm8h_lsl8:
|
|
966 ; CHECK: bic {{v[0-9]+}}.8h, #{{0xff|255}}, lsl #8
|
|
967 %tmp1 = and <16 x i8> %a, <i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0 >
|
|
968 ret <16 x i8> %tmp1
|
|
969 }
|
|
970
|
|
971 define <4 x i32> @and16imm8h_lsl0(<4 x i32> %a) {
|
|
972 ; CHECK-LABEL: and16imm8h_lsl0:
|
|
973 ; CHECK: bic {{v[0-9]+}}.8h, #{{0xff|255}}
|
|
974 %tmp1 = and <4 x i32> %a, < i32 4278255360, i32 4278255360, i32 4278255360, i32 4278255360>
|
|
975 ret <4 x i32> %tmp1
|
|
976 }
|
|
977
|
|
978 define <4 x i32> @and16imm8h_lsl8(<4 x i32> %a) {
|
|
979 ; CHECK-LABEL: and16imm8h_lsl8:
|
|
980 ; CHECK: bic {{v[0-9]+}}.8h, #{{0xff|255}}, lsl #8
|
|
981 %tmp1 = and <4 x i32> %a, < i32 16711935, i32 16711935, i32 16711935, i32 16711935>
|
|
982 ret <4 x i32> %tmp1
|
|
983 }
|
|
984
|
|
985 define <2 x i64> @and64imm8h_lsl0(<2 x i64> %a) {
|
|
986 ; CHECK-LABEL: and64imm8h_lsl0:
|
|
987 ; CHECK: bic {{v[0-9]+}}.8h, #{{0xff|255}}
|
|
988 %tmp1 = and <2 x i64> %a, < i64 -71777214294589696, i64 -71777214294589696>
|
|
989 ret <2 x i64> %tmp1
|
|
990 }
|
|
991
|
|
992 define <2 x i64> @and64imm8h_lsl8(<2 x i64> %a) {
|
|
993 ; CHECK-LABEL: and64imm8h_lsl8:
|
|
994 ; CHECK: bic {{v[0-9]+}}.8h, #{{0xff|255}}, lsl #8
|
|
995 %tmp1 = and <2 x i64> %a, < i64 71777214294589695, i64 71777214294589695>
|
|
996 ret <2 x i64> %tmp1
|
|
997 }
|
|
998
|
|
999 define <8 x i8> @orr8imm2s_lsl0(<8 x i8> %a) {
|
|
1000 ; CHECK-LABEL: orr8imm2s_lsl0:
|
|
1001 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}
|
|
1002 %tmp1 = or <8 x i8> %a, < i8 255, i8 0, i8 0, i8 0, i8 255, i8 0, i8 0, i8 0>
|
|
1003 ret <8 x i8> %tmp1
|
|
1004 }
|
|
1005
|
|
1006 define <8 x i8> @orr8imm2s_lsl8(<8 x i8> %a) {
|
|
1007 ; CHECK-LABEL: orr8imm2s_lsl8:
|
|
1008 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #8
|
|
1009 %tmp1 = or <8 x i8> %a, < i8 0, i8 255, i8 0, i8 0, i8 0, i8 255, i8 0, i8 0>
|
|
1010 ret <8 x i8> %tmp1
|
|
1011 }
|
|
1012
|
|
1013 define <8 x i8> @orr8imm2s_lsl16(<8 x i8> %a) {
|
|
1014 ; CHECK-LABEL: orr8imm2s_lsl16:
|
|
1015 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #16
|
|
1016 %tmp1 = or <8 x i8> %a, < i8 0, i8 0, i8 255, i8 0, i8 0, i8 0, i8 255, i8 0>
|
|
1017 ret <8 x i8> %tmp1
|
|
1018 }
|
|
1019
|
|
1020 define <8 x i8> @orr8imm2s_lsl24(<8 x i8> %a) {
|
|
1021 ; CHECK-LABEL: orr8imm2s_lsl24:
|
|
1022 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #24
|
|
1023 %tmp1 = or <8 x i8> %a, < i8 0, i8 0, i8 0, i8 255, i8 0, i8 0, i8 0, i8 255>
|
|
1024 ret <8 x i8> %tmp1
|
|
1025 }
|
|
1026
|
|
1027 define <4 x i16> @orr16imm2s_lsl0(<4 x i16> %a) {
|
|
1028 ; CHECK-LABEL: orr16imm2s_lsl0:
|
|
1029 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}
|
|
1030 %tmp1 = or <4 x i16> %a, < i16 255, i16 0, i16 255, i16 0>
|
|
1031 ret <4 x i16> %tmp1
|
|
1032 }
|
|
1033
|
|
1034 define <4 x i16> @orr16imm2s_lsl8(<4 x i16> %a) {
|
|
1035 ; CHECK-LABEL: orr16imm2s_lsl8:
|
|
1036 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #8
|
|
1037 %tmp1 = or <4 x i16> %a, < i16 65280, i16 0, i16 65280, i16 0>
|
|
1038 ret <4 x i16> %tmp1
|
|
1039 }
|
|
1040
|
|
1041 define <4 x i16> @orr16imm2s_lsl16(<4 x i16> %a) {
|
|
1042 ; CHECK-LABEL: orr16imm2s_lsl16:
|
|
1043 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #16
|
|
1044 %tmp1 = or <4 x i16> %a, < i16 0, i16 255, i16 0, i16 255>
|
|
1045 ret <4 x i16> %tmp1
|
|
1046 }
|
|
1047
|
|
1048 define <4 x i16> @orr16imm2s_lsl24(<4 x i16> %a) {
|
|
1049 ; CHECK-LABEL: orr16imm2s_lsl24:
|
|
1050 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #24
|
|
1051 %tmp1 = or <4 x i16> %a, < i16 0, i16 65280, i16 0, i16 65280>
|
|
1052 ret <4 x i16> %tmp1
|
|
1053 }
|
|
1054
|
|
1055 define <1 x i64> @orr64imm2s_lsl0(<1 x i64> %a) {
|
|
1056 ; CHECK-LABEL: orr64imm2s_lsl0:
|
|
1057 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}
|
|
1058 %tmp1 = or <1 x i64> %a, < i64 1095216660735>
|
|
1059 ret <1 x i64> %tmp1
|
|
1060 }
|
|
1061
|
|
1062 define <1 x i64> @orr64imm2s_lsl8(<1 x i64> %a) {
|
|
1063 ; CHECK-LABEL: orr64imm2s_lsl8:
|
|
1064 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #8
|
|
1065 %tmp1 = or <1 x i64> %a, < i64 280375465148160>
|
|
1066 ret <1 x i64> %tmp1
|
|
1067 }
|
|
1068
|
|
1069 define <1 x i64> @orr64imm2s_lsl16(<1 x i64> %a) {
|
|
1070 ; CHECK-LABEL: orr64imm2s_lsl16:
|
|
1071 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #16
|
|
1072 %tmp1 = or <1 x i64> %a, < i64 71776119077928960>
|
|
1073 ret <1 x i64> %tmp1
|
|
1074 }
|
|
1075
|
|
1076 define <1 x i64> @orr64imm2s_lsl24(<1 x i64> %a) {
|
|
1077 ; CHECK-LABEL: orr64imm2s_lsl24:
|
|
1078 ; CHECK: orr {{v[0-9]+}}.2s, #{{0xff|255}}, lsl #24
|
|
1079 %tmp1 = or <1 x i64> %a, < i64 -72057589759737856>
|
|
1080 ret <1 x i64> %tmp1
|
|
1081 }
|
|
1082
|
|
1083 define <16 x i8> @orr8imm4s_lsl0(<16 x i8> %a) {
|
|
1084 ; CHECK-LABEL: orr8imm4s_lsl0:
|
|
1085 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}
|
|
1086 %tmp1 = or <16 x i8> %a, < i8 255, i8 0, i8 0, i8 0, i8 255, i8 0, i8 0, i8 0, i8 255, i8 0, i8 0, i8 0, i8 255, i8 0, i8 0, i8 0>
|
|
1087 ret <16 x i8> %tmp1
|
|
1088 }
|
|
1089
|
|
1090 define <16 x i8> @orr8imm4s_lsl8(<16 x i8> %a) {
|
|
1091 ; CHECK-LABEL: orr8imm4s_lsl8:
|
|
1092 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #8
|
|
1093 %tmp1 = or <16 x i8> %a, < i8 0, i8 255, i8 0, i8 0, i8 0, i8 255, i8 0, i8 0, i8 0, i8 255, i8 0, i8 0, i8 0, i8 255, i8 0, i8 0>
|
|
1094 ret <16 x i8> %tmp1
|
|
1095 }
|
|
1096
|
|
1097 define <16 x i8> @orr8imm4s_lsl16(<16 x i8> %a) {
|
|
1098 ; CHECK-LABEL: orr8imm4s_lsl16:
|
|
1099 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #16
|
|
1100 %tmp1 = or <16 x i8> %a, < i8 0, i8 0, i8 255, i8 0, i8 0, i8 0, i8 255, i8 0, i8 0, i8 0, i8 255, i8 0, i8 0, i8 0, i8 255, i8 0>
|
|
1101 ret <16 x i8> %tmp1
|
|
1102 }
|
|
1103
|
|
1104 define <16 x i8> @orr8imm4s_lsl24(<16 x i8> %a) {
|
|
1105 ; CHECK-LABEL: orr8imm4s_lsl24:
|
|
1106 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #24
|
|
1107 %tmp1 = or <16 x i8> %a, < i8 0, i8 0, i8 0, i8 255, i8 0, i8 0, i8 0, i8 255, i8 0, i8 0, i8 0, i8 255, i8 0, i8 0, i8 0, i8 255>
|
|
1108 ret <16 x i8> %tmp1
|
|
1109 }
|
|
1110
|
|
1111 define <8 x i16> @orr16imm4s_lsl0(<8 x i16> %a) {
|
|
1112 ; CHECK-LABEL: orr16imm4s_lsl0:
|
|
1113 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}
|
|
1114 %tmp1 = or <8 x i16> %a, < i16 255, i16 0, i16 255, i16 0, i16 255, i16 0, i16 255, i16 0>
|
|
1115 ret <8 x i16> %tmp1
|
|
1116 }
|
|
1117
|
|
1118 define <8 x i16> @orr16imm4s_lsl8(<8 x i16> %a) {
|
|
1119 ; CHECK-LABEL: orr16imm4s_lsl8:
|
|
1120 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #8
|
|
1121 %tmp1 = or <8 x i16> %a, < i16 65280, i16 0, i16 65280, i16 0, i16 65280, i16 0, i16 65280, i16 0>
|
|
1122 ret <8 x i16> %tmp1
|
|
1123 }
|
|
1124
|
|
1125 define <8 x i16> @orr16imm4s_lsl16(<8 x i16> %a) {
|
|
1126 ; CHECK-LABEL: orr16imm4s_lsl16:
|
|
1127 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #16
|
|
1128 %tmp1 = or <8 x i16> %a, < i16 0, i16 255, i16 0, i16 255, i16 0, i16 255, i16 0, i16 255>
|
|
1129 ret <8 x i16> %tmp1
|
|
1130 }
|
|
1131
|
|
1132 define <8 x i16> @orr16imm4s_lsl24(<8 x i16> %a) {
|
|
1133 ; CHECK-LABEL: orr16imm4s_lsl24:
|
|
1134 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #24
|
|
1135 %tmp1 = or <8 x i16> %a, < i16 0, i16 65280, i16 0, i16 65280, i16 0, i16 65280, i16 0, i16 65280>
|
|
1136 ret <8 x i16> %tmp1
|
|
1137 }
|
|
1138
|
|
1139 define <2 x i64> @orr64imm4s_lsl0(<2 x i64> %a) {
|
|
1140 ; CHECK-LABEL: orr64imm4s_lsl0:
|
|
1141 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}
|
|
1142 %tmp1 = or <2 x i64> %a, < i64 1095216660735, i64 1095216660735>
|
|
1143 ret <2 x i64> %tmp1
|
|
1144 }
|
|
1145
|
|
1146 define <2 x i64> @orr64imm4s_lsl8(<2 x i64> %a) {
|
|
1147 ; CHECK-LABEL: orr64imm4s_lsl8:
|
|
1148 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #8
|
|
1149 %tmp1 = or <2 x i64> %a, < i64 280375465148160, i64 280375465148160>
|
|
1150 ret <2 x i64> %tmp1
|
|
1151 }
|
|
1152
|
|
1153 define <2 x i64> @orr64imm4s_lsl16(<2 x i64> %a) {
|
|
1154 ; CHECK-LABEL: orr64imm4s_lsl16:
|
|
1155 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #16
|
|
1156 %tmp1 = or <2 x i64> %a, < i64 71776119077928960, i64 71776119077928960>
|
|
1157 ret <2 x i64> %tmp1
|
|
1158 }
|
|
1159
|
|
1160 define <2 x i64> @orr64imm4s_lsl24(<2 x i64> %a) {
|
|
1161 ; CHECK-LABEL: orr64imm4s_lsl24:
|
|
1162 ; CHECK: orr {{v[0-9]+}}.4s, #{{0xff|255}}, lsl #24
|
|
1163 %tmp1 = or <2 x i64> %a, < i64 -72057589759737856, i64 -72057589759737856>
|
|
1164 ret <2 x i64> %tmp1
|
|
1165 }
|
|
1166
|
|
1167 define <8 x i8> @orr8imm4h_lsl0(<8 x i8> %a) {
|
|
1168 ; CHECK-LABEL: orr8imm4h_lsl0:
|
|
1169 ; CHECK: orr {{v[0-9]+}}.4h, #{{0xff|255}}
|
|
1170 %tmp1 = or <8 x i8> %a, < i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0>
|
|
1171 ret <8 x i8> %tmp1
|
|
1172 }
|
|
1173
|
|
1174 define <8 x i8> @orr8imm4h_lsl8(<8 x i8> %a) {
|
|
1175 ; CHECK-LABEL: orr8imm4h_lsl8:
|
|
1176 ; CHECK: orr {{v[0-9]+}}.4h, #{{0xff|255}}, lsl #8
|
|
1177 %tmp1 = or <8 x i8> %a, < i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255>
|
|
1178 ret <8 x i8> %tmp1
|
|
1179 }
|
|
1180
|
|
1181 define <2 x i32> @orr16imm4h_lsl0(<2 x i32> %a) {
|
|
1182 ; CHECK-LABEL: orr16imm4h_lsl0:
|
|
1183 ; CHECK: orr {{v[0-9]+}}.4h, #{{0xff|255}}
|
|
1184 %tmp1 = or <2 x i32> %a, < i32 16711935, i32 16711935>
|
|
1185 ret <2 x i32> %tmp1
|
|
1186 }
|
|
1187
|
|
1188 define <2 x i32> @orr16imm4h_lsl8(<2 x i32> %a) {
|
|
1189 ; CHECK-LABEL: orr16imm4h_lsl8:
|
|
1190 ; CHECK: orr {{v[0-9]+}}.4h, #{{0xff|255}}, lsl #8
|
|
1191 %tmp1 = or <2 x i32> %a, < i32 4278255360, i32 4278255360>
|
|
1192 ret <2 x i32> %tmp1
|
|
1193 }
|
|
1194
|
|
1195 define <1 x i64> @orr64imm4h_lsl0(<1 x i64> %a) {
|
|
1196 ; CHECK-LABEL: orr64imm4h_lsl0:
|
|
1197 ; CHECK: orr {{v[0-9]+}}.4h, #{{0xff|255}}
|
|
1198 %tmp1 = or <1 x i64> %a, < i64 71777214294589695>
|
|
1199 ret <1 x i64> %tmp1
|
|
1200 }
|
|
1201
|
|
1202 define <1 x i64> @orr64imm4h_lsl8(<1 x i64> %a) {
|
|
1203 ; CHECK-LABEL: orr64imm4h_lsl8:
|
|
1204 ; CHECK: orr {{v[0-9]+}}.4h, #{{0xff|255}}, lsl #8
|
|
1205 %tmp1 = or <1 x i64> %a, < i64 -71777214294589696>
|
|
1206 ret <1 x i64> %tmp1
|
|
1207 }
|
|
1208
|
|
1209 define <16 x i8> @orr8imm8h_lsl0(<16 x i8> %a) {
|
|
1210 ; CHECK-LABEL: orr8imm8h_lsl0:
|
|
1211 ; CHECK: orr {{v[0-9]+}}.8h, #{{0xff|255}}
|
|
1212 %tmp1 = or <16 x i8> %a, < i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0>
|
|
1213 ret <16 x i8> %tmp1
|
|
1214 }
|
|
1215
|
|
1216 define <16 x i8> @orr8imm8h_lsl8(<16 x i8> %a) {
|
|
1217 ; CHECK-LABEL: orr8imm8h_lsl8:
|
|
1218 ; CHECK: orr {{v[0-9]+}}.8h, #{{0xff|255}}, lsl #8
|
|
1219 %tmp1 = or <16 x i8> %a, < i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255, i8 0, i8 255>
|
|
1220 ret <16 x i8> %tmp1
|
|
1221 }
|
|
1222
|
|
1223 define <4 x i32> @orr16imm8h_lsl0(<4 x i32> %a) {
|
|
1224 ; CHECK-LABEL: orr16imm8h_lsl0:
|
|
1225 ; CHECK: orr {{v[0-9]+}}.8h, #{{0xff|255}}
|
|
1226 %tmp1 = or <4 x i32> %a, < i32 16711935, i32 16711935, i32 16711935, i32 16711935>
|
|
1227 ret <4 x i32> %tmp1
|
|
1228 }
|
|
1229
|
|
1230 define <4 x i32> @orr16imm8h_lsl8(<4 x i32> %a) {
|
|
1231 ; CHECK-LABEL: orr16imm8h_lsl8:
|
|
1232 ; CHECK: orr {{v[0-9]+}}.8h, #{{0xff|255}}, lsl #8
|
|
1233 %tmp1 = or <4 x i32> %a, < i32 4278255360, i32 4278255360, i32 4278255360, i32 4278255360>
|
|
1234 ret <4 x i32> %tmp1
|
|
1235 }
|
|
1236
|
|
1237 define <2 x i64> @orr64imm8h_lsl0(<2 x i64> %a) {
|
|
1238 ; CHECK-LABEL: orr64imm8h_lsl0:
|
|
1239 ; CHECK: orr {{v[0-9]+}}.8h, #{{0xff|255}}
|
|
1240 %tmp1 = or <2 x i64> %a, < i64 71777214294589695, i64 71777214294589695>
|
|
1241 ret <2 x i64> %tmp1
|
|
1242 }
|
|
1243
|
|
1244 define <2 x i64> @orr64imm8h_lsl8(<2 x i64> %a) {
|
|
1245 ; CHECK-LABEL: orr64imm8h_lsl8:
|
|
1246 ; CHECK: orr {{v[0-9]+}}.8h, #{{0xff|255}}, lsl #8
|
|
1247 %tmp1 = or <2 x i64> %a, < i64 -71777214294589696, i64 -71777214294589696>
|
|
1248 ret <2 x i64> %tmp1
|
|
1249 }
|
|
1250
|