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 Paulssonstatic 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 Paulssonvoid 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