1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=pwr8 -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck \ 2*9880d681SAndroid Build Coastguard Worker; RUN: -implicit-check-not vmrg -implicit-check-not=vperm %s 3*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=pwr8 -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck \ 4*9880d681SAndroid Build Coastguard Worker; RUN: -implicit-check-not vmrg -implicit-check-not=vperm %s \ 5*9880d681SAndroid Build Coastguard Worker; RUN: --check-prefix=CHECK-BE 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test(i32* %s, i32* %t) { 8*9880d681SAndroid Build Coastguard Workerentry: 9*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32* %s to <4 x i8>* 10*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i8>, <4 x i8>* %0, align 4 11*9880d681SAndroid Build Coastguard Worker %2 = shufflevector <4 x i8> %1, <4 x i8> undef, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3> 12*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %2 13*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test 14*9880d681SAndroid Build Coastguard Worker; CHECK: lwz [[GPR:[0-9]+]], 0(3) 15*9880d681SAndroid Build Coastguard Worker; CHECK: mtvsrd [[VSR:[0-9]+]], [[GPR]] 16*9880d681SAndroid Build Coastguard Worker; CHECK: xxswapd [[SWP:[0-9]+]], [[VSR]] 17*9880d681SAndroid Build Coastguard Worker; CHECK: xxspltw 34, [[SWP]], 3 18*9880d681SAndroid Build Coastguard Worker; CHECK-BE-LABEL: test 19*9880d681SAndroid Build Coastguard Worker; CHECK-BE: lwz [[GPR:[0-9]+]], 0(3) 20*9880d681SAndroid Build Coastguard Worker; CHECK-BE: sldi [[SHL:[0-9]+]], [[GPR]], 32 21*9880d681SAndroid Build Coastguard Worker; CHECK-BE: mtvsrd [[VSR:[0-9]+]], [[SHL]] 22*9880d681SAndroid Build Coastguard Worker; CHECK-BE: xxspltw 34, [[VSR]], 0 23*9880d681SAndroid Build Coastguard Worker} 24