1 ; RUN: llc -O0 -fast-isel=false -mcpu=ppc64 < %s | FileCheck %s 2 3 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32:64" 4 target triple = "powerpc64le-unknown-linux-gnu" 5 6 define <16 x i8> @foo() nounwind ssp { 7 %1 = shufflevector <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, <16 x i32> <i32 0, i32 5, i32 10, i32 15, i32 20, i32 25, i32 30, i32 3, i32 8, i32 13, i32 18, i32 23, i32 28, i32 1, i32 6, i32 11> 8 ret <16 x i8> %1 9 } 10 11 ; CHECK: .LCPI0_0: 12 ; CHECK: .byte 31 13 ; CHECK: .byte 26 14 ; CHECK: .byte 21 15 ; CHECK: .byte 16 16 ; CHECK: .byte 11 17 ; CHECK: .byte 6 18 ; CHECK: .byte 1 19 ; CHECK: .byte 28 20 ; CHECK: .byte 23 21 ; CHECK: .byte 18 22 ; CHECK: .byte 13 23 ; CHECK: .byte 8 24 ; CHECK: .byte 3 25 ; CHECK: .byte 30 26 ; CHECK: .byte 25 27 ; CHECK: .byte 20 28 ; CHECK: .LCPI0_1: 29 ; CHECK: .byte 0 30 ; CHECK: .byte 1 31 ; CHECK: .byte 2 32 ; CHECK: .byte 3 33 ; CHECK: .byte 4 34 ; CHECK: .byte 5 35 ; CHECK: .byte 6 36 ; CHECK: .byte 7 37 ; CHECK: .byte 8 38 ; CHECK: .byte 9 39 ; CHECK: .byte 10 40 ; CHECK: .byte 11 41 ; CHECK: .byte 12 42 ; CHECK: .byte 13 43 ; CHECK: .byte 14 44 ; CHECK: .byte 15 45 ; CHECK: .LCPI0_2: 46 ; CHECK: .byte 16 47 ; CHECK: .byte 17 48 ; CHECK: .byte 18 49 ; CHECK: .byte 19 50 ; CHECK: .byte 20 51 ; CHECK: .byte 21 52 ; CHECK: .byte 22 53 ; CHECK: .byte 23 54 ; CHECK: .byte 24 55 ; CHECK: .byte 25 56 ; CHECK: .byte 26 57 ; CHECK: .byte 27 58 ; CHECK: .byte 28 59 ; CHECK: .byte 29 60 ; CHECK: .byte 30 61 ; CHECK: .byte 31 62 ; CHECK: foo: 63 ; CHECK: addis [[REG1:[0-9]+]], 2, .LCPI0_2@toc@ha 64 ; CHECK: addi [[REG2:[0-9]+]], [[REG1]], .LCPI0_2@toc@l 65 ; CHECK: lvx [[REG3:[0-9]+]], 0, [[REG2]] 66 ; CHECK: vperm {{[0-9]+}}, [[REG3]], {{[0-9]+}}, {{[0-9]+}} 67