1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mtriple=powerpc64le-unknown-linux-gnu < %s \ 3; RUN: -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names | FileCheck --check-prefix=CHECK-LE \ 4; RUN: -implicit-check-not vmrg -implicit-check-not=vperm %s 5; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mtriple=powerpc64-unknown-linux-gnu < %s \ 6; RUN: -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names | FileCheck \ 7; RUN: -implicit-check-not vmrg -implicit-check-not=vperm %s 8; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mtriple=powerpc64-ibm-aix-xcoff < %s \ 9; RUN: -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names | FileCheck \ 10; RUN: -implicit-check-not vmrg -implicit-check-not=vperm %s 11; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mtriple=powerpc-ibm-aix-xcoff < %s \ 12; RUN: -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names | FileCheck \ 13; RUN: --check-prefix=CHECK-AIX-32 -implicit-check-not vmrg \ 14; RUN: -implicit-check-not=vperm %s 15 16define <16 x i8> @test(i32* %s, i32* %t) { 17; CHECK-LE-LABEL: test: 18; CHECK-LE: # %bb.0: # %entry 19; CHECK-LE-NEXT: lfiwzx f0, 0, r3 20; CHECK-LE-NEXT: xxspltw v2, vs0, 1 21; CHECK-LE-NEXT: blr 22; 23; CHECK-LABEL: test: 24; CHECK: # %bb.0: # %entry 25; CHECK-NEXT: lfiwzx f0, 0, r3 26; CHECK-NEXT: xxspltw v2, vs0, 1 27; CHECK-NEXT: blr 28; 29; CHECK-AIX-32-LABEL: test: 30; CHECK-AIX-32: # %bb.0: # %entry 31; CHECK-AIX-32-NEXT: lwz r3, 0(r3) 32; CHECK-AIX-32-NEXT: mtfprwz f0, r3 33; CHECK-AIX-32-NEXT: xxspltw v2, vs0, 1 34; CHECK-AIX-32-NEXT: blr 35 36entry: 37 %0 = bitcast i32* %s to <4 x i8>* 38 %1 = load <4 x i8>, <4 x i8>* %0, align 4 39 %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> 40 ret <16 x i8> %2 41} 42