xref: /aosp_15_r20/external/llvm/test/CodeGen/SystemZ/vec-abi-align.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; Verify that we use the vector ABI datalayout if and only if
2*9880d681SAndroid Build Coastguard Worker; the vector facility is present.
3*9880d681SAndroid Build Coastguard Worker;
4*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu | \
5*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-NOVECTOR %s
6*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=generic | \
7*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-NOVECTOR %s
8*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | \
9*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-NOVECTOR %s
10*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | \
11*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-NOVECTOR %s
12*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=zEC12 | \
13*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-NOVECTOR %s
14*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | \
15*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-VECTOR %s
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mattr=vector | \
18*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-VECTOR %s
19*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mattr=+vector | \
20*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-VECTOR %s
21*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mattr=-vector,vector | \
22*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-VECTOR %s
23*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mattr=-vector,+vector | \
24*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-VECTOR %s
25*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mattr=-vector | \
26*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-NOVECTOR %s
27*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mattr=vector,-vector | \
28*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-NOVECTOR %s
29*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mattr=+vector,-vector | \
30*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-NOVECTOR %s
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 -mattr=-vector | \
33*9880d681SAndroid Build Coastguard Worker; RUN:   FileCheck -check-prefix=CHECK-NOVECTOR %s
34*9880d681SAndroid Build Coastguard Worker
35*9880d681SAndroid Build Coastguard Worker%struct.S = type { i8, <2 x i64> }
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Workerdefine void @test(%struct.S* %s) nounwind {
38*9880d681SAndroid Build Coastguard Worker; CHECK-VECTOR-LABEL: @test
39*9880d681SAndroid Build Coastguard Worker; CHECK-VECTOR: vl %v0, 8(%r2)
40*9880d681SAndroid Build Coastguard Worker; CHECK-NOVECTOR-LABEL: @test
41*9880d681SAndroid Build Coastguard Worker; CHECK-NOVECTOR-DAG: agsi 16(%r2), 1
42*9880d681SAndroid Build Coastguard Worker; CHECK-NOVECTOR-DAG: agsi 24(%r2), 1
43*9880d681SAndroid Build Coastguard Worker  %ptr = getelementptr %struct.S, %struct.S* %s, i64 0, i32 1
44*9880d681SAndroid Build Coastguard Worker  %vec = load <2 x i64>, <2 x i64>* %ptr
45*9880d681SAndroid Build Coastguard Worker  %add = add <2 x i64> %vec, <i64 1, i64 1>
46*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %add, <2 x i64>* %ptr
47*9880d681SAndroid Build Coastguard Worker  ret void
48*9880d681SAndroid Build Coastguard Worker}
49*9880d681SAndroid Build Coastguard Worker
50