xref: /llvm-project/llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/fallback.ll (revision a7bbcc4690215bebb5aa5eee75c712e5a23fd09e)
1; RUN: llc -mtriple=riscv64 -mattr='+v' -O0 -global-isel -global-isel-abort=2 -pass-remarks-missed='gisel*' -verify-machineinstrs %s -o %t.out 2> %t.err
2; RUN: FileCheck %s --check-prefix=FALLBACK-WITH-REPORT-OUT < %t.out
3; RUN: FileCheck %s --check-prefix=FALLBACK-WITH-REPORT-ERR < %t.err
4
5
6declare <vscale x 1 x i8> @llvm.riscv.vadd.nxv1i8.nxv1i8(
7  <vscale x 1 x i8>,
8  <vscale x 1 x i8>,
9  <vscale x 1 x i8>,
10  i64)
11
12; FALLBACK_WITH_REPORT_ERR:  <unknown>:0:0: unable to translate instruction: call:
13; FALLBACK-WITH-REPORT-OUT-LABEL: scalable_arg
14define <vscale x 1 x i8> @scalable_arg(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, i64 %2) nounwind {
15entry:
16  %a = call <vscale x 1 x i8> @llvm.riscv.vadd.nxv1i8.nxv1i8(
17    <vscale x 1 x i8> undef,
18    <vscale x 1 x i8> %0,
19    <vscale x 1 x i8> %1,
20    i64 %2)
21
22  ret <vscale x 1 x i8> %a
23}
24
25; FALLBACK-WITH-REPORT-ERR: remark: <unknown>:0:0: unable to translate instruction: call:
26; FALLBACK-WITH-REPORT-OUT-LABEL: scalable_inst
27define <vscale x 1 x i8> @scalable_inst(i64 %0) nounwind {
28entry:
29  %a = call <vscale x 1 x i8> @llvm.riscv.vadd.nxv1i8.nxv1i8(
30    <vscale x 1 x i8> undef,
31    <vscale x 1 x i8> undef,
32    <vscale x 1 x i8> undef,
33    i64 %0)
34
35  ret <vscale x 1 x i8> %a
36}
37
38; FALLBACK-WITH-REPORT-ERR: remark: <unknown>:0:0: unable to translate instruction: alloca:
39; FALLBACK-WITH-REPORT-OUT-LABEL: scalable_alloca
40define void @scalable_alloca() #1 {
41  %local0 = alloca <vscale x 16 x i8>
42  load volatile <vscale x 16 x i8>, ptr %local0
43  ret void
44}
45