1 ; RUN
: llc
-mtriple powerpc64-ibm-aix-xcoff
-mcpu
=pwr8
--vec-extabi
< %s | FileCheck
--check-prefixes
=CHECK
,OLD
%s
2 ; RUN
: llc
-mtriple powerpc-ibm-aix-xcoff
-mcpu
=pwr8
--vec-extabi
< %s | FileCheck
--check-prefixes
=CHECK
,OLD
%s
4 ; RUN
: llc
-mtriple powerpc64-unknown-linux-gnu
-mcpu
=pwr8
< %s | FileCheck
--check-prefixes
=CHECK
,MODERN
%s
5 ; RUN
: llc
-mtriple powerpc64-ibm-aix-xcoff
-mcpu
=pwr8
-mattr
=+modern-aix-as
--vec-extabi
< %s | FileCheck
--check-prefixes
=CHECK
,MODERN
%s
6 ; RUN
: llc
-mtriple powerpc-ibm-aix-xcoff
-mcpu
=pwr8
-mattr
=+modern-aix-as
--vec-extabi
< %s | FileCheck
--check-prefixes
=CHECK
,MODERN
%s
8 define
<2 x double
> @splat1
(<2 x double
> %A, <2 x double
> %B) {
10 %0 = shufflevector
<2 x double
> %B, <2 x double
> undef
, <2 x i32
> <i32
0, i32
0>
15 ; OLD
: xxmrghd
34, 35, 35
16 ; MODERN
: xxspltd
34, 35, 0
18 define
<2 x double
> @splat2
(<2 x double
> %A, <2 x double
> %B) {
20 %0 = shufflevector
<2 x double
> %B, <2 x double
> undef
, <2 x i32
> <i32
1, i32
1>
25 ; OLD
: xxmrgld
34, 35, 35
26 ; MODERN
: xxspltd
34, 35, 1
28 define
<2 x double
> @swap
(<2 x double
> %A, <2 x double
> %B) {
30 %0 = shufflevector
<2 x double
> %B, <2 x double
> undef
, <2 x i32
> <i32
1, i32
0>
35 ; CHECK
: xxswapd
34, 35
37 define
<2 x double
> @mergehi
(<2 x double
> %A, <2 x double
> %B) {
39 %0 = shufflevector
<2 x double
> %A, <2 x double
> %B, <2 x i32
> <i32
0, i32
2>
43 ; CHECK-LABEL
: mergehi
44 ; CHECK
: xxmrghd
34, 34, 35
46 define
<2 x double
> @mergelo
(<2 x double
> %A, <2 x double
> %B) {
48 %0 = shufflevector
<2 x double
> %A, <2 x double
> %B, <2 x i32
> <i32
1, i32
3>
52 ; CHECK-LABEL
: mergelo
53 ; CHECK
: xxmrgld
34, 34, 35