xref: /llvm-project/clang/test/CodeGen/SystemZ/vec-abi-gnuattr-23.c (revision 481bb44baab5ce7a005b7d7eee6cafbde672695c)
1 // RUN: %clang_cc1 -triple s390x-ibm-linux -emit-llvm -fzvector -o - %s 2>&1 \
2 // RUN:   | FileCheck  %s
3 //
4 // Test the emission of the "s390x-visible-vector-ABI" module flag.
5 
6 // Using external vector variable (twice to test that the module flag is only
7 // added once, which would be an error).
8 
9 typedef __attribute__((vector_size(16))) int v4i32;
10 
11 extern v4i32 Var;
12 
foo()13 static void foo() {
14   v4i32 Loc = {1, 1, 1, 1};
15   Var = Var + Loc;
16 }
17 
bar()18 static void bar() {
19   v4i32 Loc = {1, 2, 3, 4};
20   Var = Var + Loc;
21 }
22 
fun1()23 void fun1() { foo(); }
fun2()24 void fun2() { bar(); }
25 
26 //CHECK: !llvm.module.flags = !{!0, !1}
27 //CHECK: !0 = !{i32 2, !"s390x-visible-vector-ABI", i32 1}
28