54 lines · plain
1; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr8 --vec-extabi < %s | FileCheck --check-prefixes=CHECK,OLD %s2; RUN: llc -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr8 --vec-extabi < %s | FileCheck --check-prefixes=CHECK,OLD %s3 4; RUN: llc -mtriple powerpc64-unknown-linux-gnu -mcpu=pwr8 < %s | FileCheck --check-prefixes=CHECK,MODERN %s5; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr8 -mattr=+modern-aix-as --vec-extabi < %s | FileCheck --check-prefixes=CHECK,MODERN %s6; RUN: llc -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr8 -mattr=+modern-aix-as --vec-extabi < %s | FileCheck --check-prefixes=CHECK,MODERN %s7 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> %012}13 14; CHECK-LABEL: splat115; OLD: xxmrghd 34, 35, 3516; MODERN: xxspltd 34, 35, 017 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> %022}23 24; CHECK-LABEL: splat225; OLD: xxmrgld 34, 35, 3526; MODERN: xxspltd 34, 35, 127 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> %032}33 34; CHECK-LABEL: swap35; CHECK: xxswapd 34, 3536 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> %041}42 43; CHECK-LABEL: mergehi44; CHECK: xxmrghd 34, 34, 3545 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> %050}51 52; CHECK-LABEL: mergelo53; CHECK: xxmrgld 34, 34, 3554