Skip to content

Commit c77f1c0

Browse files
committed
Compile test complex.c as C++ code
1 parent 3e54155 commit c77f1c0

File tree

1 file changed

+24
-14
lines changed

1 file changed

+24
-14
lines changed

clang/test/CIR/CodeGen/complex.c

+24-14
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,34 @@
11
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fclangir-enable -emit-cir %s -o %t.cir
22
// RUN: FileCheck --input-file=%t.cir %s
3+
// RUN: %clang_cc1 -x c++ -triple x86_64-unknown-linux-gnu -fclangir-enable -emit-cir %s -o %t.cir
4+
// RUN: FileCheck --input-file=%t.cir %s
5+
6+
#ifdef __cplusplus
7+
#define BOOL bool
8+
#define VOID
9+
#else
10+
#define BOOL _Bool
11+
#define VOID void
12+
#endif
313

4-
double _Complex float_complex_basic(void) {
14+
double _Complex float_complex_basic(VOID) {
515
double _Complex x = 2.0 + 3.0i;
616
return x;
717
}
818

9-
// CHECK: cir.func @float_complex_basic() -> !cir.complex<!cir.double>
19+
// CHECK: cir.func @{{.*}}float_complex_basic{{.*}}() -> !cir.complex<!cir.double>
1020
// CHECK: %[[#REAL_FP:]] = cir.const(#cir.fp<2.000000e+00> : !cir.double) : !cir.double
1121
// CHECK-NEXT: %[[#IMAG:]] = cir.const(#cir.complex<#cir.fp<0.000000e+00> : !cir.double, #cir.fp<3.000000e+00> : !cir.double> : !cir.complex<!cir.double>) : !cir.complex<!cir.double>
1222
// CHECK-NEXT: %[[#REAL:]] = cir.cast(float_to_complex, %[[#REAL_FP]] : !cir.double), !cir.complex<!cir.double>
1323
// CHECK-NEXT: %{{.+}} = cir.binop(add, %[[#REAL]], %[[#IMAG]]) : !cir.complex<!cir.double>
1424
// CHECK: }
1525

16-
int _Complex int_complex_basic(void) {
26+
int _Complex int_complex_basic(VOID) {
1727
int _Complex x = 2 + 3i;
1828
return x;
1929
}
2030

21-
// CHECK: cir.func @int_complex_basic() -> !cir.complex<!s32i>
31+
// CHECK: cir.func @{{.*}}int_complex_basic{{.*}}() -> !cir.complex<!s32i>
2232
// CHECK: %[[#REAL_INT:]] = cir.const(#cir.int<2> : !s32i) : !s32i
2333
// CHECK-NEXT: %[[#REAL:]] = cir.cast(int_to_complex, %[[#REAL_INT]] : !s32i), !cir.complex<!s32i>
2434
// CHECK-NEXT: %[[#IMAG:]] = cir.const(#cir.complex<#cir.int<0> : !s32i, #cir.int<3> : !s32i> : !cir.complex<!s32i>) : !cir.complex<!s32i>
@@ -29,39 +39,39 @@ int _Complex integral_to_complex(int x) {
2939
return x;
3040
}
3141

32-
// CHECK: cir.func @integral_to_complex(%{{.+}}: !s32i loc({{.+}})) -> !cir.complex<!s32i>
42+
// CHECK: cir.func @{{.*}}integral_to_complex{{.*}}(%{{.+}}: !s32i loc({{.+}})) -> !cir.complex<!s32i>
3343
// CHECK: %{{.+}} = cir.cast(int_to_complex, %{{.+}} : !s32i), !cir.complex<!s32i>
3444
// CHECK: }
3545

3646
float _Complex float_to_complex(float x) {
3747
return x;
3848
}
3949

40-
// CHECK: cir.func @float_to_complex(%{{.+}}: !cir.float loc({{.+}})) -> !cir.complex<!cir.float>
50+
// CHECK: cir.func @{{.*}}float_to_complex{{.*}}(%{{.+}}: !cir.float loc({{.+}})) -> !cir.complex<!cir.float>
4151
// CHECK: %{{.+}} = cir.cast(float_to_complex, %{{.+}} : !cir.float), !cir.complex<!cir.float>
4252
// CHECK: }
4353

4454
double _Complex complex_cast(float _Complex x) {
4555
return x;
4656
}
4757

48-
// CHECK: cir.func @complex_cast(%{{.+}}: !cir.complex<!cir.float> loc({{.+}})) -> !cir.complex<!cir.double>
58+
// CHECK: cir.func @{{.*}}complex_cast{{.*}}(%{{.+}}: !cir.complex<!cir.float> loc({{.+}})) -> !cir.complex<!cir.double>
4959
// CHECK: %{{.+}} = cir.cast(complex, %{{.+}} : !cir.complex<!cir.float>), !cir.complex<!cir.double>
5060
// CHECK: }
5161

5262
float complex_to_element(float _Complex x) {
5363
return (float)x;
5464
}
5565

56-
// CHECK: cir.func @complex_to_element(%{{.+}}: !cir.complex<!cir.float> loc({{.+}})) -> !cir.float
66+
// CHECK: cir.func @{{.*}}complex_to_element{{.*}}(%{{.+}}: !cir.complex<!cir.float> loc({{.+}})) -> !cir.float
5767
// CHECK: %{{.+}} = cir.complex.real(%{{.+}} : !cir.complex<!cir.float>) : !cir.float
5868
// CHECK: }
5969

60-
_Bool complex_to_bool(float _Complex x) {
70+
BOOL complex_to_bool(float _Complex x) {
6171
return x;
6272
}
6373

64-
// CHECK: cir.func @complex_to_bool(%{{.+}}: !cir.complex<!cir.float> loc({{.+}})) -> !cir.bool
74+
// CHECK: cir.func @{{.*}}complex_to_bool{{.*}}(%{{.+}}: !cir.complex<!cir.float> loc({{.+}})) -> !cir.bool
6575
// CHECK: %[[#ZERO:]] = cir.const(#cir.complex<#cir.fp<0.000000e+00> : !cir.float, #cir.fp<0.000000e+00> : !cir.float> : !cir.complex<!cir.float>) : !cir.complex<!cir.float>
6676
// CHECK-NEXT: %{{.+}} = cir.cmp(eq, %{{.+}}, %[[#ZERO]]) : !cir.complex<!cir.float>, !cir.bool
6777
// CHECK: }
@@ -70,27 +80,27 @@ float _Complex unary_op(float _Complex x) {
7080
return -x;
7181
}
7282

73-
// CHECK: cir.func @unary_op(%{{.+}}: !cir.complex<!cir.float> loc({{.+}})) -> !cir.complex<!cir.float>
83+
// CHECK: cir.func @{{.*}}unary_op{{.*}}(%{{.+}}: !cir.complex<!cir.float> loc({{.+}})) -> !cir.complex<!cir.float>
7484
// CHECK: %{{.+}} = cir.unary(minus, %{{.+}}) : !cir.complex<!cir.float>, !cir.complex<!cir.float>
7585
// CHECK: }
7686

7787
float _Complex bin_op(float _Complex x, float _Complex y) {
7888
return x + y;
7989
}
8090

81-
// CHECK: cir.func @bin_op(%{{.+}}: !cir.complex<!cir.float> loc({{.+}}), %{{.+}}: !cir.complex<!cir.float> loc({{.+}})) -> !cir.complex<!cir.float>
91+
// CHECK: cir.func @{{.*}}bin_op{{.*}}(%{{.+}}: !cir.complex<!cir.float> loc({{.+}}), %{{.+}}: !cir.complex<!cir.float> loc({{.+}})) -> !cir.complex<!cir.float>
8292
// CHECK: %{{.+}} = cir.binop(add, %{{.+}}, %{{.+}}) : !cir.complex<!cir.float>
8393
// CHECK: }
8494

8595
float _Complex bin_op_with_real(float x, float _Complex y) {
8696
return x + y;
8797
}
8898

89-
// CHECK: cir.func @bin_op_with_real(%{{.+}}: !cir.float loc({{.+}}), %{{.+}}: !cir.complex<!cir.float> loc({{.+}})) -> !cir.complex<!cir.float>
99+
// CHECK: cir.func @{{.*}}bin_op_with_real{{.*}}(%{{.+}}: !cir.float loc({{.+}}), %{{.+}}: !cir.complex<!cir.float> loc({{.+}})) -> !cir.complex<!cir.float>
90100
// CHECK: %[[#OP:]] = cir.cast(float_to_complex, %{{.+}} : !cir.float), !cir.complex<!cir.float>
91101
// CHECK-NEXT: %{{.+}} = cir.binop(add, %[[#OP]], %{{.+}}) : !cir.complex<!cir.float>
92102
// CHECK: }
93103

94104
double _Complex global;
95105

96-
// CHECK: cir.global external @global = #cir.complex<#cir.fp<0.000000e+00> : !cir.double, #cir.fp<0.000000e+00> : !cir.double> : !cir.complex<!cir.double>
106+
// CHECK: cir.global external @{{.*}}global{{.*}} = #cir.complex<#cir.fp<0.000000e+00> : !cir.double, #cir.fp<0.000000e+00> : !cir.double> : !cir.complex<!cir.double>

0 commit comments

Comments
 (0)