1 // RUN
: tco
--target
=aarch64
-unknown
-linux
-gnu
%s | FileCheck
%s
--check
-prefix
=AARCH64
3 // AARCH64
-LABEL
: define
{ fp128
, fp128
} @
gen16()
4 func
.func @
gen16() -> complex<f128
> {
5 // AARCH64
: %[[VAL1
:.*]] = alloca
{ fp128
, fp128
}, i64
1, align
16
6 %1 = fir
.undefined complex<f128
>
7 %2 = arith
.constant
1.0 : f128
8 %3 = arith
.constant
-4.0 : f128
9 %c0
= arith
.constant
0 : i32
10 // AARCH64
: store
{ fp128
, fp128
} { fp128
0xL0000000000000000C001000000000000
, fp128
0xL00000000000000003FFF000000000000
}, ptr
%[[VAL1
]], align
16
11 %4 = fir
.insert_value
%1, %3, [0 : index
] : (complex<f128
>, f128
) -> complex<f128
>
12 %c1
= arith
.constant
1 : i32
13 %5 = fir
.insert_value
%4, %2, [1 : index
] : (complex<f128
>, f128
) -> complex<f128
>
14 // AARCH64
: %[[VAL2
:.*]] = load
{ fp128
, fp128
}, ptr
%[[VAL1
]], align
16
15 // AARCH64
: ret
{ fp128
, fp128
} %[[VAL2
]]
16 return %5 : complex<f128
>
19 // AARCH64
: declare void @
sink16([2 x fp128
])
20 func
.func private @
sink16(complex<f128
>) -> ()
22 // AARCH64
-LABEL
: define void @
call16()
24 // AARCH64
: = call { fp128
, fp128
} @
gen16()
25 %1 = fir
.call @
gen16() : () -> complex<f128
>
26 // AARCH64
: call void @
sink16([2 x fp128
] %
27 fir
.call @
sink16(%1) : (complex<f128
>) -> ()