# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py # RUN: llc %s -mtriple=riscv64 -run-pass=riscv-cleanup-vsetvli -o - | FileCheck %s # Make sure we don't combine these two VSETVLIs in the cleanup pass. The first # keeps the previous value of VL, the second time sets it to VLMAX. We can't # remove the first since we can't tell if this is a change VL. --- | ; ModuleID = '../llvm/test/CodeGen/RISCV/rvv/add-vsetvli-vlmax.ll' source_filename = "../llvm/test/CodeGen/RISCV/rvv/add-vsetvli-vlmax.ll" target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" target triple = "riscv64" define void @cleanup_vsetvli() #0 { ret void } attributes #0 = { "target-features"="+experimental-v" } ... --- name: cleanup_vsetvli alignment: 4 tracksRegLiveness: true registers: - { id: 0, class: gpr } frameInfo: maxAlignment: 1 machineFunctionInfo: {} body: | bb.0 (%ir-block.0): ; CHECK-LABEL: name: cleanup_vsetvli ; CHECK: dead $x0 = PseudoVSETVLI $x0, 12, implicit-def $vl, implicit-def $vtype ; CHECK: dead %0:gpr = PseudoVSETVLI $x0, 12, implicit-def $vl, implicit-def $vtype ; CHECK: PseudoRET dead $x0 = PseudoVSETVLI $x0, 12, implicit-def $vl, implicit-def $vtype dead %0:gpr = PseudoVSETVLI $x0, 12, implicit-def $vl, implicit-def $vtype PseudoRET ...