Add support for complex compound assignments where the LHS is a scalar.
Fixes <rdar://problem/11224126> and PR12790.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183821 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGen/complex.c b/test/CodeGen/complex.c
index 1212660..e99a715 100644
--- a/test/CodeGen/complex.c
+++ b/test/CodeGen/complex.c
@@ -32,8 +32,7 @@
double Gr = __real g1;
cf += D;
- // FIXME: Currently unsupported!
- //D += cf;
+ D += cf;
cf /= g1;
g1 = g1 + D;
g1 = D + g1;
@@ -51,8 +50,7 @@
i = __real ci1;
cs += i;
- // FIXME: Currently unsupported!
- //D += cf;
+ D += cf;
cs /= ci1;
ci1 = ci1 + i;
ci1 = i + ci1;
diff --git a/test/CodeGen/volatile-1.c b/test/CodeGen/volatile-1.c
index 6551159..42e5765 100644
--- a/test/CodeGen/volatile-1.c
+++ b/test/CodeGen/volatile-1.c
@@ -313,3 +313,15 @@
(void) x;
return x;
}
+
+// CHECK: define i32 @test2()
+int test2() {
+ // CHECK: load volatile i32*
+ // CHECK-NEXT: load volatile i32*
+ // CHECK-NEXT: load volatile i32*
+ // CHECK-NEXT: add i32
+ // CHECK-NEXT: add i32
+ // CHECK-NEXT: store volatile i32
+ // CHECK-NEXT: ret i32
+ return i += ci;
+}