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 3 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 7 8define <2 x double> @splat1(<2 x double> %A, <2 x double> %B) { 9entry: 10 %0 = shufflevector <2 x double> %B, <2 x double> undef, <2 x i32> <i32 0, i32 0> 11 ret <2 x double> %0 12} 13 14; CHECK-LABEL: splat1 15; OLD: xxmrghd 34, 35, 35 16; MODERN: xxspltd 34, 35, 0 17 18define <2 x double> @splat2(<2 x double> %A, <2 x double> %B) { 19entry: 20 %0 = shufflevector <2 x double> %B, <2 x double> undef, <2 x i32> <i32 1, i32 1> 21 ret <2 x double> %0 22} 23 24; CHECK-LABEL: splat2 25; OLD: xxmrgld 34, 35, 35 26; MODERN: xxspltd 34, 35, 1 27 28define <2 x double> @swap(<2 x double> %A, <2 x double> %B) { 29entry: 30 %0 = shufflevector <2 x double> %B, <2 x double> undef, <2 x i32> <i32 1, i32 0> 31 ret <2 x double> %0 32} 33 34; CHECK-LABEL: swap 35; CHECK: xxswapd 34, 35 36 37define <2 x double> @mergehi(<2 x double> %A, <2 x double> %B) { 38entry: 39 %0 = shufflevector <2 x double> %A, <2 x double> %B, <2 x i32> <i32 0, i32 2> 40 ret <2 x double> %0 41} 42 43; CHECK-LABEL: mergehi 44; CHECK: xxmrghd 34, 34, 35 45 46define <2 x double> @mergelo(<2 x double> %A, <2 x double> %B) { 47entry: 48 %0 = shufflevector <2 x double> %A, <2 x double> %B, <2 x i32> <i32 1, i32 3> 49 ret <2 x double> %0 50} 51 52; CHECK-LABEL: mergelo 53; CHECK: xxmrgld 34, 34, 35 54