brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 9c9632c Raw
39 lines · plain
1; Test general vector permute of a v16i8.2;3; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | \4; RUN:   FileCheck -check-prefix=CHECK-CODE %s5; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | \6; RUN:   FileCheck -check-prefix=CHECK-VECTOR %s7 8define <16 x i8> @f1(<16 x i8> %val1, <16 x i8> %val2) {9; CHECK-CODE-LABEL: f1:10; CHECK-CODE: larl [[REG:%r[0-5]]],11; CHECK-CODE: vl [[MASK:%v[0-9]+]], 0([[REG]])12; CHECK-CODE: vperm %v24, %v24, %v26, [[MASK]]13; CHECK-CODE: br %r1414;15; CHECK-VECTOR: .byte 116; CHECK-VECTOR-NEXT: .byte 1917; CHECK-VECTOR-NEXT: .byte 618; CHECK-VECTOR-NEXT: .byte 519; CHECK-VECTOR-NEXT: .byte 2020; CHECK-VECTOR-NEXT: .byte 2221; CHECK-VECTOR-NEXT: .byte 122; CHECK-VECTOR-NEXT: .byte 123; CHECK-VECTOR-NEXT: .byte 2524; CHECK-VECTOR-NEXT: .byte 2925; CHECK-VECTOR-NEXT: .byte 1126; Any byte would be OK here27; CHECK-VECTOR-NEXT: .space 128; CHECK-VECTOR-NEXT: .byte 3129; CHECK-VECTOR-NEXT: .byte 430; CHECK-VECTOR-NEXT: .byte 1531; CHECK-VECTOR-NEXT: .byte 1932  %ret = shufflevector <16 x i8> %val1, <16 x i8> %val2,33                       <16 x i32> <i32 1, i32 19, i32 6, i32 5,34                                   i32 20, i32 22, i32 1, i32 1,35                                   i32 25, i32 29, i32 11, i32 undef,36                                   i32 31, i32 4, i32 15, i32 19>37  ret <16 x i8> %ret38}39