[X86] combineTargetShuffle - commute VPERMV3 shuffles so any load is on the RHS
[llvm-project.git] / llvm / test / CodeGen / SystemZ / call-zos-i128.ll
blob98c3d84bc8bf9047cab78642f4383d2fc3cf498e
1 ; Test the passing of scalar i128 values on z/OS.
3 ; RUN: llc < %s -mtriple=s390x-ibm-zos -mcpu=z13 | FileCheck %s
5 ; CHECK-LABEL: call_i128:
6 ; CHECK-DAG: larl    1,L#CPI0_0
7 ; CHECK-DAG: vl      0,0(1),3
8 ; CHECK-DAG: vst     0,2256(4),3
9 ; CHECK-DAG: larl    1,L#CPI0_1
10 ; CHECK-DAG: vl      0,0(1),3
11 ; CHECK-DAG: vst     0,2272(4),3
12 ; CHECK-DAG: la      1,2288(4)
13 ; CHECK-DAG: la      2,2272(4)
14 ; CHECK-DAG: la      3,2256(4)
16 define i128 @call_i128() {
17 entry:
18   %retval = call i128 (i128, i128) @pass_i128(i128 64, i128 65)
19   ret i128 %retval
22 ; CHECK-LABEL: pass_i128:
23 ; CHECK: vl      0,0(3),3
24 ; CHECK: vl      1,0(2),3
25 ; CHECK: vaq     0,1,0
26 ; CHECK: vst     0,0(1),3
27 define i128 @pass_i128(i128 %arg0, i128 %arg1) {
28 entry:
29   %N = add i128 %arg0, %arg1
30   ret i128 %N