1- ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
21; RUN: llc -verify-machineinstrs -mcpu=pwr10 -mtriple=powerpc64le-unknown-unknown \
32; RUN: -ppc-asm-full-reg-names --ppc-vsr-nums-as-vr < %s | FileCheck %s
43
76; CHECK: xxlandc v2, v2, v3
87; CHECK-NEXT: blr
98define dso_local <4 x i32 > @and_not (<4 x i32 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr #0 {
10- ; CHECK-LABEL: and_not:
11- ; CHECK: # %bb.0: # %entry
12- ; CHECK-NEXT: xxlandc v2, v2, v3
13- ; CHECK-NEXT: blr
149entry:
1510 %neg = xor <4 x i32 > %B , <i32 -1 , i32 -1 , i32 -1 , i32 -1 >
1611 %and = and <4 x i32 > %neg , %A
@@ -22,10 +17,6 @@ entry:
2217; CHECK: xxeval v2, v3, v2, v4, 1
2318; CHECK-NEXT: blr
2419define dso_local <16 x i8 > @and_and8 (<16 x i8 > %A , <16 x i8 > %B , <16 x i8 > %C ) local_unnamed_addr #0 {
25- ; CHECK-LABEL: and_and8:
26- ; CHECK: # %bb.0: # %entry
27- ; CHECK-NEXT: xxeval v2, v3, v2, v4, 1
28- ; CHECK-NEXT: blr
2920entry:
3021 %and = and <16 x i8 > %B , %A
3122 %and1 = and <16 x i8 > %and , %C
@@ -37,10 +28,6 @@ entry:
3728; CHECK: xxeval v2, v3, v2, v4, 1
3829; CHECK-NEXT: blr
3930define dso_local <8 x i16 > @and_and16 (<8 x i16 > %A , <8 x i16 > %B , <8 x i16 > %C ) local_unnamed_addr #0 {
40- ; CHECK-LABEL: and_and16:
41- ; CHECK: # %bb.0: # %entry
42- ; CHECK-NEXT: xxeval v2, v3, v2, v4, 1
43- ; CHECK-NEXT: blr
4431entry:
4532 %and = and <8 x i16 > %B , %A
4633 %and1 = and <8 x i16 > %and , %C
@@ -52,10 +39,6 @@ entry:
5239; CHECK: xxeval v2, v3, v2, v4, 1
5340; CHECK-NEXT: blr
5441define dso_local <4 x i32 > @and_and32 (<4 x i32 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr #0 {
55- ; CHECK-LABEL: and_and32:
56- ; CHECK: # %bb.0: # %entry
57- ; CHECK-NEXT: xxeval v2, v3, v2, v4, 1
58- ; CHECK-NEXT: blr
5942entry:
6043 %and = and <4 x i32 > %B , %A
6144 %and1 = and <4 x i32 > %and , %C
@@ -67,10 +50,6 @@ entry:
6750; CHECK: xxeval v2, v3, v2, v4, 1
6851; CHECK-NEXT: blr
6952define dso_local <2 x i64 > @and_and64 (<2 x i64 > %A , <2 x i64 > %B , <2 x i64 > %C ) local_unnamed_addr #0 {
70- ; CHECK-LABEL: and_and64:
71- ; CHECK: # %bb.0: # %entry
72- ; CHECK-NEXT: xxeval v2, v3, v2, v4, 1
73- ; CHECK-NEXT: blr
7453entry:
7554 %and = and <2 x i64 > %B , %A
7655 %and1 = and <2 x i64 > %and , %C
@@ -82,10 +61,6 @@ entry:
8261; CHECK: xxeval v2, v2, v4, v3, 14
8362; CHECK-NEXT: blr
8463define dso_local <4 x i32 > @and_nand (<4 x i32 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr #0 {
85- ; CHECK-LABEL: and_nand:
86- ; CHECK: # %bb.0: # %entry
87- ; CHECK-NEXT: xxeval v2, v2, v4, v3, 14
88- ; CHECK-NEXT: blr
8964entry:
9065 %and = and <4 x i32 > %C , %B
9166 %neg = xor <4 x i32 > %and , <i32 -1 , i32 -1 , i32 -1 , i32 -1 >
@@ -98,10 +73,6 @@ entry:
9873; CHECK: xxeval v2, v2, v4, v3, 7
9974; CHECK-NEXT: blr
10075define dso_local <4 x i32 > @and_or (<4 x i32 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr #0 {
101- ; CHECK-LABEL: and_or:
102- ; CHECK: # %bb.0: # %entry
103- ; CHECK-NEXT: xxeval v2, v2, v4, v3, 7
104- ; CHECK-NEXT: blr
10576entry:
10677 %or = or <4 x i32 > %C , %B
10778 %and = and <4 x i32 > %or , %A
@@ -113,10 +84,6 @@ entry:
11384; CHECK: xxeval v2, v2, v4, v3, 8
11485; CHECK-NEXT: blr
11586define dso_local <4 x i32 > @and_nor (<4 x i32 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr #0 {
116- ; CHECK-LABEL: and_nor:
117- ; CHECK: # %bb.0: # %entry
118- ; CHECK-NEXT: xxeval v2, v2, v4, v3, 8
119- ; CHECK-NEXT: blr
12087entry:
12188 %or = or <4 x i32 > %C , %B
12289 %neg = xor <4 x i32 > %or , <i32 -1 , i32 -1 , i32 -1 , i32 -1 >
@@ -129,10 +96,6 @@ entry:
12996; CHECK: xxeval v2, v2, v4, v3, 6
13097; CHECK-NEXT: blr
13198define dso_local <4 x i32 > @and_xor (<4 x i32 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr #0 {
132- ; CHECK-LABEL: and_xor:
133- ; CHECK: # %bb.0: # %entry
134- ; CHECK-NEXT: xxeval v2, v2, v4, v3, 6
135- ; CHECK-NEXT: blr
13699entry:
137100 %xor = xor <4 x i32 > %C , %B
138101 %and = and <4 x i32 > %xor , %A
@@ -144,10 +107,6 @@ entry:
144107; CHECK: xxeval v2, v2, v3, v4, 9
145108; CHECK-NEXT: blr
146109define dso_local <4 x i32 > @and_eqv (<4 x i32 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr #0 {
147- ; CHECK-LABEL: and_eqv:
148- ; CHECK: # %bb.0: # %entry
149- ; CHECK-NEXT: xxeval v2, v2, v3, v4, 9
150- ; CHECK-NEXT: blr
151110entry:
152111 %xor = xor <4 x i32 > %B , <i32 -1 , i32 -1 , i32 -1 , i32 -1 >
153112 %neg = xor <4 x i32 > %xor , %C
@@ -160,10 +119,6 @@ entry:
160119; CHECK: xxeval v2, v2, v4, v3, 241
161120; CHECK-NEXT: blr
162121define dso_local <4 x i32 > @nand_nand (<4 x i32 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr #0 {
163- ; CHECK-LABEL: nand_nand:
164- ; CHECK: # %bb.0: # %entry
165- ; CHECK-NEXT: xxeval v2, v2, v4, v3, 241
166- ; CHECK-NEXT: blr
167122entry:
168123 %and = and <4 x i32 > %C , %B
169124 %A.not = xor <4 x i32 > %A , <i32 -1 , i32 -1 , i32 -1 , i32 -1 >
@@ -176,10 +131,6 @@ entry:
176131; CHECK: xxeval v2, v3, v2, v4, 254
177132; CHECK-NEXT: blr
178133define dso_local <4 x i32 > @nand_and (<4 x i32 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr #0 {
179- ; CHECK-LABEL: nand_and:
180- ; CHECK: # %bb.0: # %entry
181- ; CHECK-NEXT: xxeval v2, v3, v2, v4, 254
182- ; CHECK-NEXT: blr
183134entry:
184135 %and = and <4 x i32 > %B , %A
185136 %and1 = and <4 x i32 > %and , %C
@@ -192,10 +143,6 @@ entry:
192143; CHECK: xxeval v2, v2, v4, v3, 249
193144; CHECK-NEXT: blr
194145define dso_local <4 x i32 > @nand_xor (<4 x i32 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr #0 {
195- ; CHECK-LABEL: nand_xor:
196- ; CHECK: # %bb.0: # %entry
197- ; CHECK-NEXT: xxeval v2, v2, v4, v3, 249
198- ; CHECK-NEXT: blr
199146entry:
200147 %xor = xor <4 x i32 > %C , %B
201148 %and = and <4 x i32 > %xor , %A
@@ -208,10 +155,6 @@ entry:
208155; CHECK: xxeval v2, v2, v4, v3, 246
209156; CHECK-NEXT: blr
210157define dso_local <4 x i32 > @nand_eqv (<4 x i32 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr #0 {
211- ; CHECK-LABEL: nand_eqv:
212- ; CHECK: # %bb.0: # %entry
213- ; CHECK-NEXT: xxeval v2, v2, v4, v3, 246
214- ; CHECK-NEXT: blr
215158entry:
216159 %xor = xor <4 x i32 > %C , %B
217160 %A.not = xor <4 x i32 > %A , <i32 -1 , i32 -1 , i32 -1 , i32 -1 >
@@ -224,10 +167,6 @@ entry:
224167; CHECK: xxeval v2, v2, v4, v3, 248
225168; CHECK-NEXT: blr
226169define dso_local <4 x i32 > @nand_or (<4 x i32 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr #0 {
227- ; CHECK-LABEL: nand_or:
228- ; CHECK: # %bb.0: # %entry
229- ; CHECK-NEXT: xxeval v2, v2, v4, v3, 248
230- ; CHECK-NEXT: blr
231170entry:
232171 %or = or <4 x i32 > %C , %B
233172 %and = and <4 x i32 > %or , %A
@@ -240,10 +179,6 @@ entry:
240179; CHECK: xxeval v2, v2, v3, v4, 247
241180; CHECK-NEXT: blr
242181define dso_local <4 x i32 > @nand_nor (<4 x i32 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr #0 {
243- ; CHECK-LABEL: nand_nor:
244- ; CHECK: # %bb.0: # %entry
245- ; CHECK-NEXT: xxeval v2, v2, v3, v4, 247
246- ; CHECK-NEXT: blr
247182entry:
248183 %A.not = xor <4 x i32 > %A , <i32 -1 , i32 -1 , i32 -1 , i32 -1 >
249184 %or = or <4 x i32 > %A.not , %B
0 commit comments