diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp index 9e4d4d398a21d..9e1e02e04ca7a 100644 --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -585,6 +585,11 @@ static void InitializeStandardPredefinedMacros(const TargetInfo &TI, Builder.defineMacro("__HIP_MEMORY_SCOPE_WORKGROUP", "3"); Builder.defineMacro("__HIP_MEMORY_SCOPE_AGENT", "4"); Builder.defineMacro("__HIP_MEMORY_SCOPE_SYSTEM", "5"); + if (LangOpts.HIPStdPar) { + Builder.defineMacro("__HIPSTDPAR__"); + if (LangOpts.HIPStdParInterposeAlloc) + Builder.defineMacro("__HIPSTDPAR_INTERPOSE_ALLOC__"); + } if (LangOpts.CUDAIsDevice) { Builder.defineMacro("__HIP_DEVICE_COMPILE__"); if (!TI.hasHIPImageSupport()) { diff --git a/clang/test/Preprocessor/predefined-macros.c b/clang/test/Preprocessor/predefined-macros.c index d77b699674af4..c4a9672f0814a 100644 --- a/clang/test/Preprocessor/predefined-macros.c +++ b/clang/test/Preprocessor/predefined-macros.c @@ -290,3 +290,20 @@ // RUN: -fcuda-is-device -fgpu-default-stream=per-thread \ // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-PTH // CHECK-PTH: #define HIP_API_PER_THREAD_DEFAULT_STREAM 1 + +// RUN: %clang_cc1 %s -E -dM -o - -x hip --hipstdpar -triple x86_64-unknown-linux-gnu \ +// RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-HIPSTDPAR +// CHECK-HIPSTDPAR: #define __HIPSTDPAR__ 1 +// CHECK-HIPSTDPAR-NOT: #define __HIPSTDPAR_INTERPOSE_ALLOC__ 1 + +// RUN: %clang_cc1 %s -E -dM -o - -x hip --hipstdpar --hipstdpar-interpose-alloc \ +// RUN: -triple x86_64-unknown-linux-gnu | FileCheck -match-full-lines %s \ +// RUN: --check-prefix=CHECK-HIPSTDPAR-INTERPOSE +// CHECK-HIPSTDPAR-INTERPOSE: #define __HIPSTDPAR_INTERPOSE_ALLOC__ 1 +// CHECK-HIPSTDPAR-INTERPOSE: #define __HIPSTDPAR__ 1 + +// RUN: %clang_cc1 %s -E -dM -o - -x hip --hipstdpar --hipstdpar-interpose-alloc \ +// RUN: -triple amdgcn-amd-amdhsa -fcuda-is-device | FileCheck -match-full-lines \ +// RUN: %s --check-prefix=CHECK-HIPSTDPAR-INTERPOSE-DEV-NEG +// CHECK-HIPSTDPAR-INTERPOSE-DEV-NEG: #define __HIPSTDPAR__ 1 +// CHECK-HIPSTDPAR-INTERPOSE-DEV-NEG-NOT: #define __HIPSTDPAR_INTERPOSE_ALLOC__ 1 \ No newline at end of file