1*67e74705SXin Li// REQUIRES: x86-registered-target 2*67e74705SXin Li// REQUIRES: arm-registered-target 3*67e74705SXin Li// REQUIRES: aarch64-registered-target 4*67e74705SXin Li 5*67e74705SXin Li// RUN: rm -rf %t 6*67e74705SXin Li 7*67e74705SXin Li// Sanity check one of the compilations. 8*67e74705SXin Li// RUN: %clang_cc1 -triple aarch64-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s -verify -DSANITY_CHECK 9*67e74705SXin Li// expected-no-diagnostics 10*67e74705SXin Li 11*67e74705SXin Li// Check all the targets: 12*67e74705SXin Li// RUN: not %clang_cc1 -triple armv7-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s 2> %t.aarch32 13*67e74705SXin Li// RUN: FileCheck %s -check-prefix=AARCH32 < %t.aarch32 14*67e74705SXin Li// RUN: not %clang_cc1 -triple aarch64-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s 2> %t.aarch64 15*67e74705SXin Li// RUN: FileCheck %s -check-prefix=AARCH64 < %t.aarch64 16*67e74705SXin Li// RUN: not %clang_cc1 -triple i386-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s 2> %t.x86_32 17*67e74705SXin Li// RUN: FileCheck %s -check-prefix=X86_32 < %t.x86_32 18*67e74705SXin Li// RUN: not %clang_cc1 -triple x86_64-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s 2> %t.x86_64 19*67e74705SXin Li// RUN: FileCheck %s -check-prefix=X86_64 < %t.x86_64 20*67e74705SXin Li 21*67e74705SXin Li#ifndef SANITY_CHECK 22*67e74705SXin Li@import TargetFeatures; 23*67e74705SXin Li// AARCH32-NOT: module 'TargetFeatures' requires 24*67e74705SXin Li// AARCH64-NOT: module 'TargetFeatures' requires 25*67e74705SXin Li// X86_32-NOT: module 'TargetFeatures' requires 26*67e74705SXin Li// X86_64-NOT: module 'TargetFeatures' requires 27*67e74705SXin Li@import TargetFeatures.arm; 28*67e74705SXin Li// AARCH32-NOT: module 'TargetFeatures.arm' requires 29*67e74705SXin Li// AARCH64-NOT: module 'TargetFeatures.arm' requires 30*67e74705SXin Li// X86_32: module 'TargetFeatures.arm' requires feature 'arm' 31*67e74705SXin Li// X86_64: module 'TargetFeatures.arm' requires feature 'arm' 32*67e74705SXin Li@import TargetFeatures.arm.aarch32; 33*67e74705SXin Li// AARCH32-NOT: module 'TargetFeatures.arm.aarch32' requires 34*67e74705SXin Li// AARCH64: module 'TargetFeatures.arm.aarch32' requires feature 'aarch32' 35*67e74705SXin Li// X86_32: module 'TargetFeatures.arm.aarch32' requires feature 36*67e74705SXin Li// X86_64: module 'TargetFeatures.arm.aarch32' requires feature 37*67e74705SXin Li#endif 38*67e74705SXin Li 39*67e74705SXin Li@import TargetFeatures.arm.aarch64; 40*67e74705SXin Li// AARCH32: module 'TargetFeatures.arm.aarch64' requires feature 'aarch64' 41*67e74705SXin Li// AARCH64-NOT: module 'TargetFeatures.arm.aarch64' requires 42*67e74705SXin Li// X86_32: module 'TargetFeatures.arm.aarch64' requires feature 43*67e74705SXin Li// X86_64: module 'TargetFeatures.arm.aarch64' requires feature 44*67e74705SXin Li 45*67e74705SXin Li#ifndef SANITY_CHECK 46*67e74705SXin Li@import TargetFeatures.x86; 47*67e74705SXin Li// AARCH32: module 'TargetFeatures.x86' requires feature 'x86' 48*67e74705SXin Li// AARCH64: module 'TargetFeatures.x86' requires feature 'x86' 49*67e74705SXin Li// X86_32-NOT: module 'TargetFeatures.x86' requires 50*67e74705SXin Li// X86_64-NOT: module 'TargetFeatures.x86' requires 51*67e74705SXin Li@import TargetFeatures.x86.x86_32; 52*67e74705SXin Li// AARCH32: module 'TargetFeatures.x86.x86_32' requires feature 53*67e74705SXin Li// AARCH64: module 'TargetFeatures.x86.x86_32' requires feature 54*67e74705SXin Li// X86_32-NOT: module 'TargetFeatures.x86.x86_32' requires 55*67e74705SXin Li// X86_64: module 'TargetFeatures.x86.x86_32' requires feature 'x86_32' 56*67e74705SXin Li@import TargetFeatures.x86.x86_64; 57*67e74705SXin Li// AARCH32: module 'TargetFeatures.x86.x86_64' requires feature 58*67e74705SXin Li// AARCH64: module 'TargetFeatures.x86.x86_64' requires feature 59*67e74705SXin Li// X86_32: module 'TargetFeatures.x86.x86_64' requires feature 'x86_64' 60*67e74705SXin Li// X86_64-NOT: module 'TargetFeatures.x86.x86_64' requires 61*67e74705SXin Li#endif 62