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