diff options
| author | Fangrui Song <i@maskray.me> | 2020-12-31 00:27:11 -0800 |
|---|---|---|
| committer | Fangrui Song <i@maskray.me> | 2020-12-31 00:27:11 -0800 |
| commit | fd739804e0591468762eb87488a497a3f7d4afb0 (patch) | |
| tree | a3e0747ed63a57f668c0332782ccdfbe03cf2bef /clang/test/CodeGenOpenCL/partial_initializer.cl | |
| parent | f2cc2669a0d91994c93f2e9708e137484081a7c1 (diff) | |
[test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences
For a default visibility external linkage definition, dso_local is set for ELF
-fno-pic/-fpie and COFF and Mach-O. Since default clang -cc1 for ELF is similar
to -fpic ("PIC Level" is not set), this nuance causes unneeded binary format differences.
To make emitted IR similar, ELF -cc1 -fpic will default to -fno-semantic-interposition,
which sets dso_local for default visibility external linkage definitions.
To make this flip smooth and enable future (dso_local as definition default),
this patch replaces (function) `define ` with `define{{.*}} `,
(variable/constant/alias) `= ` with `={{.*}} `, or inserts appropriate `{{.*}} `.
Diffstat (limited to 'clang/test/CodeGenOpenCL/partial_initializer.cl')
| -rw-r--r-- | clang/test/CodeGenOpenCL/partial_initializer.cl | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/test/CodeGenOpenCL/partial_initializer.cl b/clang/test/CodeGenOpenCL/partial_initializer.cl index 2bdab2a0147b..4d88cc852392 100644 --- a/clang/test/CodeGenOpenCL/partial_initializer.cl +++ b/clang/test/CodeGenOpenCL/partial_initializer.cl @@ -5,7 +5,7 @@ typedef __attribute__(( ext_vector_type(4) )) int int4; // CHECK: %struct.StrucTy = type { i32, i32, i32 } -// CHECK: @GA = addrspace(1) global [6 x [6 x float]] {{[[][[]}}6 x float] [float 1.000000e+00, float 2.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00], +// CHECK: @GA ={{.*}} addrspace(1) global [6 x [6 x float]] {{[[][[]}}6 x float] [float 1.000000e+00, float 2.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00], // CHECK: [6 x float] zeroinitializer, [6 x float] zeroinitializer, [6 x float] zeroinitializer, [6 x float] zeroinitializer, [6 x float] zeroinitializer], align 4 float GA[6][6] = {1.0f, 2.0f}; @@ -15,18 +15,18 @@ typedef struct { int z; } StrucTy; -// CHECK: @GS = addrspace(1) global %struct.StrucTy { i32 1, i32 2, i32 0 }, align 4 +// CHECK: @GS ={{.*}} addrspace(1) global %struct.StrucTy { i32 1, i32 2, i32 0 }, align 4 StrucTy GS = {1, 2}; -// CHECK: @GV1 = addrspace(1) global <4 x i32> <i32 1, i32 2, i32 3, i32 4>, align 16 +// CHECK: @GV1 ={{.*}} addrspace(1) global <4 x i32> <i32 1, i32 2, i32 3, i32 4>, align 16 int4 GV1 = (int4)((int2)(1,2),3,4); -// CHECK: @GV2 = addrspace(1) global <4 x i32> <i32 1, i32 1, i32 1, i32 1>, align 16 +// CHECK: @GV2 ={{.*}} addrspace(1) global <4 x i32> <i32 1, i32 1, i32 1, i32 1>, align 16 int4 GV2 = (int4)(1); // CHECK: @__const.f.S = private unnamed_addr addrspace(2) constant %struct.StrucTy { i32 1, i32 2, i32 0 }, align 4 -// CHECK-LABEL: define spir_func void @f() +// CHECK-LABEL: define{{.*}} spir_func void @f() void f(void) { // CHECK: %[[A:.*]] = alloca [6 x [6 x float]], align 4 // CHECK: %[[S:.*]] = alloca %struct.StrucTy, align 4 |
