diff options
Diffstat (limited to 'test/CodeGen')
-rw-r--r-- | test/CodeGen/arm-execute-only.c | 78 | ||||
-rw-r--r-- | test/CodeGen/arm-v8.1a-neon-intrinsics.c | 2 | ||||
-rw-r--r-- | test/CodeGen/avx512f-builtins.c | 27 | ||||
-rw-r--r-- | test/CodeGen/builtins-wasm.c | 12 | ||||
-rw-r--r-- | test/CodeGen/lto-newpm-pipeline.c | 53 | ||||
-rw-r--r-- | test/CodeGen/mangle-ms.c | 9 | ||||
-rw-r--r-- | test/CodeGen/mangle.c | 4 | ||||
-rw-r--r-- | test/CodeGen/named_reg_global.c | 2 | ||||
-rw-r--r-- | test/CodeGen/neon-immediate-ubsan.c | 2 | ||||
-rw-r--r-- | test/CodeGen/pgo-sample-thinlto-summary.c | 26 | ||||
-rw-r--r-- | test/CodeGen/xray-attributes-supported.cpp | 2 |
11 files changed, 191 insertions, 26 deletions
diff --git a/test/CodeGen/arm-execute-only.c b/test/CodeGen/arm-execute-only.c new file mode 100644 index 000000000000..6d88ff611d68 --- /dev/null +++ b/test/CodeGen/arm-execute-only.c @@ -0,0 +1,78 @@ +// RUN: %clang -target armv6t2-eabi -### %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv6t2-eabi -### -mexecute-only %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY + +// RUN: %clang -target armv6t2-eabi -### -mexecute-only -mno-execute-only %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv7m-eabi -### %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv7m-eabi -### -mexecute-only %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY + +// RUN: %clang -target armv7m-eabi -### -mexecute-only -mno-execute-only %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv8m.base-eabi -### %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv8m.base-eabi -### -mexecute-only %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY + +// RUN: %clang -target armv8m.base-eabi -### -mexecute-only -mno-execute-only %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv8m.main-eabi -### %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv8m.main-eabi -### -mexecute-only %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY + +// RUN: %clang -target armv8m.main-eabi -### -mexecute-only -mno-execute-only %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + + +// -mpure-code flag for GCC compatibility +// RUN: %clang -target armv6t2-eabi -### %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv6t2-eabi -### -mpure-code %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY + +// RUN: %clang -target armv6t2-eabi -### -mpure-code -mno-pure-code %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv7m-eabi -### %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv7m-eabi -### -mpure-code %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY + +// RUN: %clang -target armv7m-eabi -### -mpure-code -mno-pure-code %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv8m.base-eabi -### %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv8m.base-eabi -### -mpure-code %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY + +// RUN: %clang -target armv8m.base-eabi -### -mpure-code -mno-pure-code %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv8m.main-eabi -### %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// RUN: %clang -target armv8m.main-eabi -### -mpure-code %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY + +// RUN: %clang -target armv8m.main-eabi -### -mpure-code -mno-pure-code %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY + +// CHECK-NO-EXECUTE-ONLY-NOT: "+execute-only" +// CHECK-EXECUTE-ONLY: "+execute-only" + +void a() {} diff --git a/test/CodeGen/arm-v8.1a-neon-intrinsics.c b/test/CodeGen/arm-v8.1a-neon-intrinsics.c index 788883100456..6f5867b6c11f 100644 --- a/test/CodeGen/arm-v8.1a-neon-intrinsics.c +++ b/test/CodeGen/arm-v8.1a-neon-intrinsics.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple armv8.1a-linux-gnu -target-feature +neon \ +// RUN: %clang_cc1 -triple armv8.1a-linux-gnu -target-abi apcs-gnu -target-feature +neon \ // RUN: -S -emit-llvm -o - %s \ // RUN: | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-ARM diff --git a/test/CodeGen/avx512f-builtins.c b/test/CodeGen/avx512f-builtins.c index c66d83611ed1..c3356461a348 100644 --- a/test/CodeGen/avx512f-builtins.c +++ b/test/CodeGen/avx512f-builtins.c @@ -1,4 +1,7 @@ // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512f -emit-llvm -o - -Wall -Werror | FileCheck %s + +// FIXME: It's wrong to check LLVM IR transformations from clang. This run should be removed and tests added to the appropriate LLVM pass. + // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512f -O2 -emit-llvm -o - -Wall -Werror | FileCheck %s -check-prefix=O2 #include <immintrin.h> @@ -8240,10 +8243,10 @@ __m128 test_mm_mask_move_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { // O2-LABEL: @test_mm_mask_move_ss // O2: %[[M:.*]] = and i8 %__U, 1 - // O2: %[[M2:.*]] = icmp ne i8 %[[M]], 0 - // O2: %[[ELM1:.*]] = extractelement <4 x float> %__B, i32 0 - // O2: %[[ELM2:.*]] = extractelement <4 x float> %__W, i32 0 - // O2: %[[SEL:.*]] = select i1 %[[M2]], float %[[ELM1]], float %[[ELM2]] + // O2: %[[M2:.*]] = icmp + // O2: %[[ELM1:.*]] = extractelement <4 x float> + // O2: %[[ELM2:.*]] = extractelement <4 x float> + // O2: %[[SEL:.*]] = select i1 %[[M2]] // O2: %[[RES:.*]] = insertelement <4 x float> %__A, float %[[SEL]], i32 0 // O2: ret <4 x float> %[[RES]] return _mm_mask_move_ss ( __W, __U, __A, __B); @@ -8253,9 +8256,9 @@ __m128 test_mm_maskz_move_ss (__mmask8 __U, __m128 __A, __m128 __B) { // O2-LABEL: @test_mm_maskz_move_ss // O2: %[[M:.*]] = and i8 %__U, 1 - // O2: %[[M2:.*]] = icmp ne i8 %[[M]], 0 + // O2: %[[M2:.*]] = icmp // O2: %[[ELM1:.*]] = extractelement <4 x float> %__B, i32 0 - // O2: %[[SEL:.*]] = select i1 %[[M2]], float %[[ELM1]], float 0.0 + // O2: %[[SEL:.*]] = select i1 %[[M2]] // O2: %[[RES:.*]] = insertelement <4 x float> %__A, float %[[SEL]], i32 0 // O2: ret <4 x float> %[[RES]] return _mm_maskz_move_ss (__U, __A, __B); @@ -8265,10 +8268,10 @@ __m128d test_mm_mask_move_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __ { // O2-LABEL: @test_mm_mask_move_sd // O2: %[[M:.*]] = and i8 %__U, 1 - // O2: %[[M2:.*]] = icmp ne i8 %[[M]], 0 - // O2: %[[ELM1:.*]] = extractelement <2 x double> %__B, i32 0 - // O2: %[[ELM2:.*]] = extractelement <2 x double> %__W, i32 0 - // O2: %[[SEL:.*]] = select i1 %[[M2]], double %[[ELM1]], double %[[ELM2]] + // O2: %[[M2:.*]] = icmp + // O2: %[[ELM1:.*]] = extractelement <2 x double> + // O2: %[[ELM2:.*]] = extractelement <2 x double> + // O2: %[[SEL:.*]] = select i1 %[[M2]] // O2: %[[RES:.*]] = insertelement <2 x double> %__A, double %[[SEL]], i32 0 // O2: ret <2 x double> %[[RES]] return _mm_mask_move_sd ( __W, __U, __A, __B); @@ -8278,9 +8281,9 @@ __m128d test_mm_maskz_move_sd (__mmask8 __U, __m128d __A, __m128d __B) { // O2-LABEL: @test_mm_maskz_move_sd // O2: %[[M:.*]] = and i8 %__U, 1 - // O2: %[[M2:.*]] = icmp ne i8 %[[M]], 0 + // O2: %[[M2:.*]] = icmp // O2: %[[ELM1:.*]] = extractelement <2 x double> %__B, i32 0 - // O2: %[[SEL:.*]] = select i1 %[[M2]], double %[[ELM1]], double 0.0 + // O2: %[[SEL:.*]] = select i1 %[[M2]] // O2: %[[RES:.*]] = insertelement <2 x double> %__A, double %[[SEL]], i32 0 // O2: ret <2 x double> %[[RES]] return _mm_maskz_move_sd (__U, __A, __B); diff --git a/test/CodeGen/builtins-wasm.c b/test/CodeGen/builtins-wasm.c index 0c0b87945d42..e0f72d2e5034 100644 --- a/test/CodeGen/builtins-wasm.c +++ b/test/CodeGen/builtins-wasm.c @@ -14,3 +14,15 @@ __SIZE_TYPE__ f2(__SIZE_TYPE__ delta) { // WEBASSEMBLY32: call i32 @llvm.wasm.grow.memory.i32(i32 %{{.*}}) // WEBASSEMBLY64: call i64 @llvm.wasm.grow.memory.i64(i64 %{{.*}}) } + +void f3(unsigned int tag, void *obj) { + return __builtin_wasm_throw(tag, obj); +// WEBASSEMBLY32: call void @llvm.wasm.throw(i32 %{{.*}}, i8* %{{.*}}) +// WEBASSEMBLY64: call void @llvm.wasm.throw(i32 %{{.*}}, i8* %{{.*}}) +} + +void f4() { + return __builtin_wasm_rethrow(); +// WEBASSEMBLY32: call void @llvm.wasm.rethrow() +// WEBASSEMBLY64: call void @llvm.wasm.rethrow() +} diff --git a/test/CodeGen/lto-newpm-pipeline.c b/test/CodeGen/lto-newpm-pipeline.c new file mode 100644 index 000000000000..10112da6d508 --- /dev/null +++ b/test/CodeGen/lto-newpm-pipeline.c @@ -0,0 +1,53 @@ +// REQUIRES: x86-registered-target + +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=full -O0 %s 2>&1 | FileCheck %s \ +// RUN: -check-prefix=CHECK-FULL-O0 +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=thin -O0 %s 2>&1 | FileCheck %s \ +// RUN: -check-prefix=CHECK-THIN-O0 +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=full -O1 %s 2>&1 | FileCheck %s \ +// RUN: -check-prefix=CHECK-FULL-OPTIMIZED +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=thin -O1 %s 2>&1 | FileCheck %s \ +// RUN: -check-prefix=CHECK-THIN-OPTIMIZED +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=full -O2 %s 2>&1 | FileCheck %s \ +// RUN: -check-prefix=CHECK-FULL-OPTIMIZED +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=thin -O2 %s 2>&1 | FileCheck %s \ +// RUN: -check-prefix=CHECK-THIN-OPTIMIZED +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=full -O3 %s 2>&1 | FileCheck %s \ +// RUN: -check-prefix=CHECK-FULL-OPTIMIZED +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=thin -O3 %s 2>&1 | FileCheck %s \ +// RUN: -check-prefix=CHECK-THIN-OPTIMIZED +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=full -Os %s 2>&1 | FileCheck %s \ +// RUN: -check-prefix=CHECK-FULL-OPTIMIZED +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=thin -Os %s 2>&1 | FileCheck %s \ +// RUN: -check-prefix=CHECK-THIN-OPTIMIZED +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=full -Oz %s 2>&1 | FileCheck %s \ +// RUN: -check-prefix=CHECK-FULL-OPTIMIZED +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=thin -Oz %s 2>&1 | FileCheck %s \ +// RUN: -check-prefix=CHECK-THIN-OPTIMIZED + +// CHECK-FULL-O0: Starting llvm::Module pass manager run. +// CHECK-FULL-O0: Running pass: AlwaysInlinerPass +// CHECK-FULL-O0-NEXT: Running pass: BitcodeWriterPass +// CHECK-FULL-O0: Finished llvm::Module pass manager run. + +// CHECK-THIN-O0: Starting llvm::Module pass manager run. +// CHECK-THIN-O0: Running pass: AlwaysInlinerPass +// CHECK-THIN-O0-NEXT: Running pass: NameAnonGlobalPass +// CHECK-THIN-O0-NEXT: Running pass: ThinLTOBitcodeWriterPass +// CHECK-THIN-O0: Finished llvm::Module pass manager run. + +// TODO: The LTO pre-link pipeline currently invokes +// buildPerModuleDefaultPipeline(), which contains LoopVectorizePass. +// This may change as the pipeline gets implemented. +// CHECK-FULL-OPTIMIZED: Starting llvm::Function pass manager run. +// CHECK-FULL-OPTIMIZED: Running pass: LoopVectorizePass +// CHECK-FULL-OPTIMIZED: Running pass: BitcodeWriterPass + +// The ThinLTO pre-link pipeline shouldn't contain passes like +// LoopVectorizePass. +// CHECK-THIN-OPTIMIZED: Starting llvm::Function pass manager run. +// CHECK-THIN-OPTIMIZED-NOT: Running pass: LoopVectorizePass +// CHECK-THIN-OPTIMIZED: Running pass: NameAnonGlobalPass +// CHECK-THIN-OPTIMIZED: Running pass: ThinLTOBitcodeWriterPass + +void Foo() {} diff --git a/test/CodeGen/mangle-ms.c b/test/CodeGen/mangle-ms.c index 0ad43d5e06c2..042c72e6d794 100644 --- a/test/CodeGen/mangle-ms.c +++ b/test/CodeGen/mangle-ms.c @@ -2,3 +2,12 @@ // CHECK: define void @"\01?f@@$$J0YAXP6AX@Z@Z" __attribute__((overloadable)) void f(void (*x)()) {} + +// CHECK: define void @f +void f(void (*x)(int)) {} + +// CHECK: define void @g +void g(void (*x)(int)) {} + +// CHECK: define void @"\01?g@@$$J0YAXP6AX@Z@Z" +__attribute__((overloadable)) void g(void (*x)()) {} diff --git a/test/CodeGen/mangle.c b/test/CodeGen/mangle.c index 46ef512f6950..f94139bc5e3c 100644 --- a/test/CodeGen/mangle.c +++ b/test/CodeGen/mangle.c @@ -9,6 +9,10 @@ void __attribute__((__overloadable__)) f0(int a) {} // CHECK: @_Z2f0l void __attribute__((__overloadable__)) f0(long b) {} +// Unless it's unmarked. +// CHECK: @f0 +void f0(float b) {} + // CHECK: @bar // These should get merged. diff --git a/test/CodeGen/named_reg_global.c b/test/CodeGen/named_reg_global.c index 1da625746891..232b74de1cab 100644 --- a/test/CodeGen/named_reg_global.c +++ b/test/CodeGen/named_reg_global.c @@ -1,6 +1,6 @@ // RUN: %clang_cc1 -triple x86_64-linux-gnu -S -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-X86-64 // RUN: %clang_cc1 -triple arm64-linux-gnu -S -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-ARM -// RUN: %clang_cc1 -triple armv7-linux-gnu -S -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-ARM +// RUN: %clang_cc1 -triple armv7-linux-gnu -target-abi apcs-gnu -S -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-ARM // CHECK-NOT: @sp = common global diff --git a/test/CodeGen/neon-immediate-ubsan.c b/test/CodeGen/neon-immediate-ubsan.c index c3e1ce23301d..aacf76a6338b 100644 --- a/test/CodeGen/neon-immediate-ubsan.c +++ b/test/CodeGen/neon-immediate-ubsan.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple armv7s-linux-gnu -emit-llvm -o - %s \ +// RUN: %clang_cc1 -triple armv7s-linux-gnu -target-abi apcs-gnu -emit-llvm -o - %s \ // RUN: -target-feature +neon -target-cpu cortex-a8 \ // RUN: -fsanitize=signed-integer-overflow \ // RUN: | FileCheck %s --check-prefix=CHECK --check-prefix=ARMV7 diff --git a/test/CodeGen/pgo-sample-thinlto-summary.c b/test/CodeGen/pgo-sample-thinlto-summary.c index 7782aeb76616..51c8faa6be6d 100644 --- a/test/CodeGen/pgo-sample-thinlto-summary.c +++ b/test/CodeGen/pgo-sample-thinlto-summary.c @@ -1,5 +1,9 @@ -// RUN: %clang_cc1 -O2 -fprofile-sample-use=%S/Inputs/pgo-sample-thinlto-summary.prof %s -emit-llvm -o - 2>&1 | FileCheck %s -check-prefix=O2 +// RUN: %clang_cc1 -O2 -fprofile-sample-use=%S/Inputs/pgo-sample-thinlto-summary.prof %s -emit-llvm -o - 2>&1 | FileCheck %s -check-prefix=SAMPLEPGO // RUN: %clang_cc1 -O2 -fprofile-sample-use=%S/Inputs/pgo-sample-thinlto-summary.prof %s -emit-llvm -flto=thin -o - 2>&1 | FileCheck %s -check-prefix=THINLTO +// RUN: %clang_cc1 -O2 -fexperimental-new-pass-manager -fprofile-sample-use=%S/Inputs/pgo-sample-thinlto-summary.prof %s -emit-llvm -o - 2>&1 | FileCheck %s -check-prefix=SAMPLEPGO +// FIXME: Run the following command once LTOPreLinkDefaultPipeline is +// customized. +// %clang_cc1 -O2 -fexperimental-new-pass-manager -fprofile-sample-use=%S/Inputs/pgo-sample-thinlto-summary.prof %s -emit-llvm -flto=thin -o - 2>&1 | FileCheck %s -check-prefix=THINLTO // Checks if hot call is inlined by normal compile, but not inlined by // thinlto compile. @@ -11,9 +15,9 @@ void foo(int n) { g += baz(i); } -// O2-LABEL: define void @bar +// SAMPLEPGO-LABEL: define void @bar // THINLTO-LABEL: define void @bar -// O2-NOT: call{{.*}}foo +// SAMPLEPGO-NOT: call{{.*}}foo // THINLTO: call{{.*}}foo void bar(int n) { for (int i = 0; i < n; i++) @@ -21,10 +25,10 @@ void bar(int n) { } // Checks if loop unroll is invoked by normal compile, but not thinlto compile. -// O2-LABEL: define void @unroll +// SAMPLEPGO-LABEL: define void @unroll // THINLTO-LABEL: define void @unroll -// O2: call{{.*}}baz -// O2: call{{.*}}baz +// SAMPLEPGO: call{{.*}}baz +// SAMPLEPGO: call{{.*}}baz // THINLTO: call{{.*}}baz // THINLTO-NOT: call{{.*}}baz void unroll() { @@ -32,11 +36,13 @@ void unroll() { baz(i); } -// Check that icp is not invoked (both -O2 and ThinLTO). -// O2-LABEL: define void @icp +// Checks that icp is not invoked for ThinLTO, but invoked for normal samplepgo. +// SAMPLEPGO-LABEL: define void @icp // THINLTO-LABEL: define void @icp -// O2-NOT: if.true.direct_targ -// ThinLTO-NOT: if.true.direct_targ +// SAMPLEPGO: if.true.direct_targ +// FIXME: the following condition needs to be reversed once +// LTOPreLinkDefaultPipeline is customized. +// THINLTO-NOT: if.true.direct_targ void icp(void (*p)()) { p(); } diff --git a/test/CodeGen/xray-attributes-supported.cpp b/test/CodeGen/xray-attributes-supported.cpp index 860efb276f69..21a5dde53a05 100644 --- a/test/CodeGen/xray-attributes-supported.cpp +++ b/test/CodeGen/xray-attributes-supported.cpp @@ -1,5 +1,5 @@ // RUN: %clang_cc1 %s -fxray-instrument -std=c++11 -x c++ -emit-llvm -o - -triple x86_64-unknown-linux-gnu | FileCheck %s -// RUN: %clang_cc1 %s -fxray-instrument -std=c++11 -x c++ -emit-llvm -o - -triple arm-unknown-linux-gnu | FileCheck %s +// RUN: %clang_cc1 %s -fxray-instrument -std=c++11 -x c++ -emit-llvm -o - -triple arm-unknown-linux-gnu -target-abi apcs-gnu | FileCheck %s // RUN: %clang_cc1 %s -fxray-instrument -std=c++11 -x c++ -emit-llvm -o - -triple mips-unknown-linux-gnu | FileCheck %s // RUN: %clang_cc1 %s -fxray-instrument -std=c++11 -x c++ -emit-llvm -o - -triple mipsel-unknown-linux-gnu | FileCheck %s // RUN: %clang_cc1 %s -fxray-instrument -std=c++11 -x c++ -emit-llvm -o - -triple mips64-unknown-linux-gnu | FileCheck %s |