xref: /llvm-project/clang/test/CodeGen/SystemZ/vec-abi-gnuattr-04.c (revision 481bb44baab5ce7a005b7d7eee6cafbde672695c)
1*481bb44bSJonas Paulsson // RUN: %clang_cc1 -triple s390x-ibm-linux -emit-llvm -fzvector -o - %s 2>&1 \
2*481bb44bSJonas Paulsson // RUN:   | FileCheck  %s
3*481bb44bSJonas Paulsson //
4*481bb44bSJonas Paulsson // Test the emission of the "s390x-visible-vector-ABI" module flag.
5*481bb44bSJonas Paulsson 
6*481bb44bSJonas Paulsson // Call via global function pointer in internal function, with vector argument.
7*481bb44bSJonas Paulsson 
8*481bb44bSJonas Paulsson typedef __attribute__((vector_size(16))) int v4i32;
9*481bb44bSJonas Paulsson 
10*481bb44bSJonas Paulsson void (*bar)(v4i32 Arg);
11*481bb44bSJonas Paulsson 
foo()12*481bb44bSJonas Paulsson static void foo() {
13*481bb44bSJonas Paulsson   v4i32 Var = {0, 0, 0, 0};
14*481bb44bSJonas Paulsson   (*bar)(Var);
15*481bb44bSJonas Paulsson }
16*481bb44bSJonas Paulsson 
fun()17*481bb44bSJonas Paulsson void fun() { foo(); }
18*481bb44bSJonas Paulsson 
19*481bb44bSJonas Paulsson //CHECK: !llvm.module.flags = !{!0, !1}
20*481bb44bSJonas Paulsson //CHECK: !0 = !{i32 2, !"s390x-visible-vector-ABI", i32 1}
21