brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · c9e2988 Raw
36 lines · plain
1; Test general vector permute of a v4i32.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 <4 x i32> @f1(<4 x i32> %val1, <4 x i32> %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, %v26, %v24, [[MASK]]13; CHECK-CODE: br %r1414;15; CHECK-VECTOR: .byte 416; CHECK-VECTOR-NEXT: .byte 517; CHECK-VECTOR-NEXT: .byte 618; CHECK-VECTOR-NEXT: .byte 719; CHECK-VECTOR-NEXT: .byte 2020; CHECK-VECTOR-NEXT: .byte 2121; CHECK-VECTOR-NEXT: .byte 2222; CHECK-VECTOR-NEXT: .byte 2323; Any 4 bytes would be OK here24; CHECK-VECTOR-NEXT: .space 125; CHECK-VECTOR-NEXT: .space 126; CHECK-VECTOR-NEXT: .space 127; CHECK-VECTOR-NEXT: .space 128; CHECK-VECTOR-NEXT: .byte 1229; CHECK-VECTOR-NEXT: .byte 1330; CHECK-VECTOR-NEXT: .byte 1431; CHECK-VECTOR-NEXT: .byte 1532  %ret = shufflevector <4 x i32> %val1, <4 x i32> %val2,33                       <4 x i32> <i32 5, i32 1, i32 undef, i32 7>34  ret <4 x i32> %ret35}36