From 3d2d9e5684ae95fb949571ffc12b8a0c264241b4 Mon Sep 17 00:00:00 2001 From: YazZz1k Date: Tue, 30 Jan 2024 17:58:05 +0300 Subject: [PATCH] add required test --- clang/test/CIR/CodeGen/array-init.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/clang/test/CIR/CodeGen/array-init.c b/clang/test/CIR/CodeGen/array-init.c index 82ccc68a88a9..84f1a3a9d9ef 100644 --- a/clang/test/CIR/CodeGen/array-init.c +++ b/clang/test/CIR/CodeGen/array-init.c @@ -8,3 +8,22 @@ void foo() { // CHECK-NEXT: %1 = cir.const(#cir.const_array<[9.000000e+00, 8.000000e+00, 7.000000e+00]> : !cir.array) : !cir.array // CHECK-NEXT: cir.store %1, %0 : !cir.array, cir.ptr > +void bar(int a, int b, int c) { + int arr[] = {a,b,c}; +} + +// CHECK: cir.func @bar +// CHECK: [[ARR:%.*]] = cir.alloca !cir.array, cir.ptr >, ["arr", init] {alignment = 4 : i64} +// CHECK-NEXT: cir.store %arg0, [[A:%.*]] : !s32i, cir.ptr +// CHECK-NEXT: cir.store %arg1, [[B:%.*]] : !s32i, cir.ptr +// CHECK-NEXT: cir.store %arg2, [[C:%.*]] : !s32i, cir.ptr +// CHECK-NEXT: [[FI_EL:%.*]] = cir.cast(array_to_ptrdecay, [[ARR]] : !cir.ptr>), !cir.ptr +// CHECK-NEXT: [[LOAD_A:%.*]] = cir.load [[A]] : cir.ptr , !s32i +// CHECK-NEXT: cir.store [[LOAD_A]], [[FI_EL]] : !s32i, cir.ptr +// CHECK-NEXT: [[ONE:%.*]] = cir.const(#cir.int<1> : !s64i) : !s64i +// CHECK-NEXT: [[SE_EL:%.*]] = cir.ptr_stride(%4 : !cir.ptr, [[ONE]] : !s64i), !cir.ptr +// CHECK-NEXT: [[LOAD_B:%.*]] = cir.load [[B]] : cir.ptr , !s32i +// CHECK-NEXT: cir.store [[LOAD_B]], [[SE_EL]] : !s32i, cir.ptr +// CHECK-NEXT: [[TH_EL:%.*]] = cir.ptr_stride(%7 : !cir.ptr, [[ONE]] : !s64i), !cir.ptr +// CHECK-NEXT: [[LOAD_C:%.*]] = cir.load [[C]] : cir.ptr , !s32i +// CHECK-NEXT: cir.store [[LOAD_C]], [[TH_EL]] : !s32i, cir.ptr