================
@@ -909,3 +909,46 @@ void foo33(__builtin_va_list a) {
// OGCG: %[[B_IMAG_PTR:.*]] = getelementptr inbounds nuw { float, float },
ptr %[[B_ADDR]], i32 0, i32 1
// OGCG: store float %[[RESULT_REAL]], ptr %[[B_REAL_PTR]], align 4
// OGCG: store float %[[RESULT_IMAG]], ptr %[[B_IMAG_PTR]], align 4
+
+void foo34(float _Complex a) {}
+
+// CIR: %[[A_ADDR:.*]] = cir.alloca !cir.complex<!cir.float>,
!cir.ptr<!cir.complex<!cir.float>>, ["a", init]
+// CIR: cir.store %{{.*}}, %[[A_ADDR]] : !cir.complex<!cir.float>,
!cir.ptr<!cir.complex<!cir.float>>
+
+// LLVM: %[[A_ADDR:.*]] = alloca { float, float }, i64 1, align 4
+// LLVM: store { float, float } %{{.*}}, ptr %[[A_ADDR]], align 4
----------------
bcardosolopes wrote:
Actually, I think it's useful to lower "wrong" and check it because it will be
in obvious contrast with the OGCG counterpart. Once callconv implementation
starts this test will fail for complex, so it's easier to come and change for
the correct one to match OG.
https://github.com/llvm/llvm-project/pull/156236
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits