2
2
// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not atomRank
3
3
4
4
// RUN: %clang_cc1 -gkey-instructions -x c %s -debug-info-kind=line-tables-only -emit-llvm -o - \
5
- // RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not atomRank
5
+ // RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not atomRank --check-prefixes=CHECK,CHECK-C
6
6
7
7
_Complex float ci ;
8
8
float f ;
@@ -51,6 +51,26 @@ void test() {
51
51
// CHECK: %add = fadd float %0, %1, !dbg [[G7R2:!.*]]
52
52
// CHECK: store float %add, ptr getelementptr inbounds nuw ({ float, float }, ptr @ci, i32 0, i32 1){{.*}}, !dbg [[G7R1:!.*]]
53
53
__imag ci = __imag ci + __imag ci ;
54
+
55
+ #ifndef __cplusplus
56
+ // CHECK-C: %2 = load float, ptr @f, align 4
57
+ // CHECK-C: %add.r24 = fadd float %2, %ci.real22, !dbg [[G9R2:!.*]]
58
+ // CHECK-C: store float %add.r24, ptr @f, align 4, !dbg [[G9R1:!.*]]
59
+ f += ci ;
60
+
61
+ // CHECK-C: %3 = load float, ptr @f, align 4
62
+ // CHECK-C: %sub.r27 = fsub float %3, %ci.real25, !dbg [[G11R2:!.*]]
63
+ // CHECK-C: store float %sub.r27, ptr @f, align 4, !dbg [[G11R1:!.*]]
64
+ f -= ci ;
65
+
66
+ // CHECK-C: %coerce32.real = load float, ptr %coerce32.realp, align 4, !dbg [[G13R2:!.*]]
67
+ // CHECK-C: store float %coerce32.real, ptr @f, align 4, !dbg [[G13R1:!.*]]
68
+ f /= ci ;
69
+
70
+ // CHECK-C: %mul.rl = fmul float %5, %ci.real33, !dbg [[G15R2:!.*]]
71
+ // CHECK-C: store float %mul.rl, ptr @f, align 4, !dbg [[G15R1:!.*]]
72
+ f *= ci ;
73
+ #endif
54
74
}
55
75
56
76
// CHECK: [[G1R2]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 2)
@@ -67,3 +87,12 @@ void test() {
67
87
// CHECK: [[G6R1]] = !DILocation({{.*}}, atomGroup: 6, atomRank: 1)
68
88
// CHECK: [[G7R2]] = !DILocation({{.*}}, atomGroup: 7, atomRank: 2)
69
89
// CHECK: [[G7R1]] = !DILocation({{.*}}, atomGroup: 7, atomRank: 1)
90
+ // FIXME: These inc by 2 atom groups each time?
91
+ // CHECK-C: [[G9R2]] = !DILocation({{.*}}, atomGroup: 9, atomRank: 2)
92
+ // CHECK-C: [[G9R1]] = !DILocation({{.*}}, atomGroup: 9, atomRank: 1)
93
+ // CHECK-C: [[G11R2]] = !DILocation({{.*}}, atomGroup: 11, atomRank: 2)
94
+ // CHECK-C: [[G11R1]] = !DILocation({{.*}}, atomGroup: 11, atomRank: 1)
95
+ // CHECK-C: [[G13R2]] = !DILocation({{.*}}, atomGroup: 13, atomRank: 2)
96
+ // CHECK-C: [[G13R1]] = !DILocation({{.*}}, atomGroup: 13, atomRank: 1)
97
+ // CHECK-C: [[G15R2]] = !DILocation({{.*}}, atomGroup: 15, atomRank: 2)
98
+ // CHECK-C: [[G15R1]] = !DILocation({{.*}}, atomGroup: 15, atomRank: 1)
0 commit comments