[RISCV][VLOPT] Add vector narrowing integer right shift instructions to isSupportedIn...
[llvm-project.git] / flang / test / Fir / target-complex16.f90
blob243302ddf6c673eda815f8a68319b018265a6845
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()
23 func.func @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>) -> ()
28 return