11
11
; RUN: -ppc-asm-full-reg-names --ppc-vsr-nums-as-vr < %s | FileCheck %s
12
12
13
13
; Function to test ternary(A, xor(B, C), and(B, C)) for <4 x i32>
14
- define dso_local <4 x i32 > @ternary_A_xor_BC_and_BC_4x32 (<4 x i1 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr # 0 {
14
+ define <4 x i32 > @ternary_A_xor_BC_and_BC_4x32 (<4 x i1 > %A , <4 x i32 > %B , <4 x i32 > %C ) {
15
15
; CHECK-LABEL: ternary_A_xor_BC_and_BC_4x32:
16
16
; CHECK: # %bb.0: # %entry
17
- ; CHECK-NEXT: xxspltiw v5, 31
17
+ ; CHECK-NEXT: xxleqv v5, v5, v5
18
18
; CHECK-NEXT: xxlxor vs0, v3, v4
19
19
; CHECK-NEXT: xxland vs1, v3, v4
20
20
; CHECK-NEXT: vslw v2, v2, v5
29
29
}
30
30
31
31
; Function to test ternary(A, xor(B, C), and(B, C)) for <2 x i64>
32
- define dso_local <2 x i64 > @ternary_A_xor_BC_and_BC_2x64 (<2 x i1 > %A , <2 x i64 > %B , <2 x i64 > %C ) local_unnamed_addr # 0 {
32
+ define <2 x i64 > @ternary_A_xor_BC_and_BC_2x64 (<2 x i1 > %A , <2 x i64 > %B , <2 x i64 > %C ) {
33
33
; CHECK-LABEL: ternary_A_xor_BC_and_BC_2x64:
34
34
; CHECK: # %bb.0: # %entry
35
35
; CHECK-NEXT: xxlxor v5, v5, v5
@@ -48,10 +48,10 @@ entry:
48
48
}
49
49
50
50
; Function to test ternary(A, nor(B, C), and(B, C)) for <4 x i32>
51
- define dso_local <4 x i32 > @ternary_A_nor_BC_and_BC_4x32 (<4 x i1 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr # 0 {
51
+ define <4 x i32 > @ternary_A_nor_BC_and_BC_4x32 (<4 x i1 > %A , <4 x i32 > %B , <4 x i32 > %C ) {
52
52
; CHECK-LABEL: ternary_A_nor_BC_and_BC_4x32:
53
53
; CHECK: # %bb.0: # %entry
54
- ; CHECK-NEXT: xxspltiw v5, 31
54
+ ; CHECK-NEXT: xxleqv v5, v5, v5
55
55
; CHECK-NEXT: xxlnor vs0, v3, v4
56
56
; CHECK-NEXT: xxland vs1, v3, v4
57
57
; CHECK-NEXT: vslw v2, v2, v5
67
67
}
68
68
69
69
; Function to test ternary(A, nor(B, C), and(B, C)) for <2 x i64>
70
- define dso_local <2 x i64 > @ternary_A_nor_BC_and_BC_2x64 (<2 x i1 > %A , <2 x i64 > %B , <2 x i64 > %C ) local_unnamed_addr # 0 {
70
+ define <2 x i64 > @ternary_A_nor_BC_and_BC_2x64 (<2 x i1 > %A , <2 x i64 > %B , <2 x i64 > %C ) {
71
71
; CHECK-LABEL: ternary_A_nor_BC_and_BC_2x64:
72
72
; CHECK: # %bb.0: # %entry
73
73
; CHECK-NEXT: xxlxor v5, v5, v5
@@ -87,10 +87,10 @@ entry:
87
87
}
88
88
89
89
; Function to test ternary(A, eqv(B, C), and(B, C)) for <4 x i32>
90
- define dso_local <4 x i32 > @ternary_A_eqv_BC_and_BC_4x32 (<4 x i1 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr # 0 {
90
+ define <4 x i32 > @ternary_A_eqv_BC_and_BC_4x32 (<4 x i1 > %A , <4 x i32 > %B , <4 x i32 > %C ) {
91
91
; CHECK-LABEL: ternary_A_eqv_BC_and_BC_4x32:
92
92
; CHECK: # %bb.0: # %entry
93
- ; CHECK-NEXT: xxspltiw v5, 31
93
+ ; CHECK-NEXT: xxleqv v5, v5, v5
94
94
; CHECK-NEXT: xxleqv vs0, v3, v4
95
95
; CHECK-NEXT: xxland vs1, v3, v4
96
96
; CHECK-NEXT: vslw v2, v2, v5
@@ -106,7 +106,7 @@ entry:
106
106
}
107
107
108
108
; Function to test ternary(A, eqv(B, C), and(B, C)) for <2 x i64>
109
- define dso_local <2 x i64 > @ternary_A_eqv_BC_and_BC_2x64 (<2 x i1 > %A , <2 x i64 > %B , <2 x i64 > %C ) local_unnamed_addr # 0 {
109
+ define <2 x i64 > @ternary_A_eqv_BC_and_BC_2x64 (<2 x i1 > %A , <2 x i64 > %B , <2 x i64 > %C ) {
110
110
; CHECK-LABEL: ternary_A_eqv_BC_and_BC_2x64:
111
111
; CHECK: # %bb.0: # %entry
112
112
; CHECK-NEXT: xxlxor v5, v5, v5
@@ -126,10 +126,10 @@ entry:
126
126
}
127
127
128
128
; Function to test ternary(A, not(C), and(B, C)) for <4 x i32>
129
- define dso_local <4 x i32 > @ternary_A_not_C_and_BC_4x32 (<4 x i1 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr # 0 {
129
+ define <4 x i32 > @ternary_A_not_C_and_BC_4x32 (<4 x i1 > %A , <4 x i32 > %B , <4 x i32 > %C ) {
130
130
; CHECK-LABEL: ternary_A_not_C_and_BC_4x32:
131
131
; CHECK: # %bb.0: # %entry
132
- ; CHECK-NEXT: xxspltiw v5, 31
132
+ ; CHECK-NEXT: xxleqv v5, v5, v5
133
133
; CHECK-NEXT: xxlnor vs0, v4, v4
134
134
; CHECK-NEXT: xxland vs1, v3, v4
135
135
; CHECK-NEXT: vslw v2, v2, v5
@@ -144,7 +144,7 @@ entry:
144
144
}
145
145
146
146
; Function to test ternary(A, not(C), and(B, C)) for <2 x i64>
147
- define dso_local <2 x i64 > @ternary_A_not_C_and_BC_2x64 (<2 x i1 > %A , <2 x i64 > %B , <2 x i64 > %C ) local_unnamed_addr # 0 {
147
+ define <2 x i64 > @ternary_A_not_C_and_BC_2x64 (<2 x i1 > %A , <2 x i64 > %B , <2 x i64 > %C ) {
148
148
; CHECK-LABEL: ternary_A_not_C_and_BC_2x64:
149
149
; CHECK: # %bb.0: # %entry
150
150
; CHECK-NEXT: xxlxor v5, v5, v5
@@ -163,10 +163,10 @@ entry:
163
163
}
164
164
165
165
; Function to test ternary(A, not(B), and(B, C)) for <4 x i32>
166
- define dso_local <4 x i32 > @ternary_A_not_B_and_BC_4x32 (<4 x i1 > %A , <4 x i32 > %B , <4 x i32 > %C ) local_unnamed_addr # 0 {
166
+ define <4 x i32 > @ternary_A_not_B_and_BC_4x32 (<4 x i1 > %A , <4 x i32 > %B , <4 x i32 > %C ) {
167
167
; CHECK-LABEL: ternary_A_not_B_and_BC_4x32:
168
168
; CHECK: # %bb.0: # %entry
169
- ; CHECK-NEXT: xxspltiw v5, 31
169
+ ; CHECK-NEXT: xxleqv v5, v5, v5
170
170
; CHECK-NEXT: xxlnor vs0, v3, v3
171
171
; CHECK-NEXT: xxland vs1, v3, v4
172
172
; CHECK-NEXT: vslw v2, v2, v5
@@ -181,7 +181,7 @@ entry:
181
181
}
182
182
183
183
; Function to test ternary(A, not(B), and(B, C)) for <2 x i64>
184
- define dso_local <2 x i64 > @ternary_A_not_B_and_BC_2x64 (<2 x i1 > %A , <2 x i64 > %B , <2 x i64 > %C ) local_unnamed_addr # 0 {
184
+ define <2 x i64 > @ternary_A_not_B_and_BC_2x64 (<2 x i1 > %A , <2 x i64 > %B , <2 x i64 > %C ) {
185
185
; CHECK-LABEL: ternary_A_not_B_and_BC_2x64:
186
186
; CHECK: # %bb.0: # %entry
187
187
; CHECK-NEXT: xxlxor v5, v5, v5
0 commit comments