; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2 ; RUN: llc < %s -O3 -mtriple=riscv64 -mattr=+v | FileCheck %s ; The case below demonstrates cross block CSE of vector instructions with ; undefined passthru operands. define void @foo( %x, %y, ptr %p1, ptr %p2, i1 zeroext %cond) { ; CHECK-LABEL: foo: ; CHECK: # %bb.0: ; CHECK-NEXT: vsetvli a3, zero, e32, m1, ta, ma ; CHECK-NEXT: vadd.vv v8, v8, v9 ; CHECK-NEXT: vs1r.v v8, (a0) ; CHECK-NEXT: bnez a2, .LBB0_2 ; CHECK-NEXT: # %bb.1: # %falsebb ; CHECK-NEXT: vs1r.v v8, (a1) ; CHECK-NEXT: .LBB0_2: # %mergebb ; CHECK-NEXT: ret %a = add %x, %y store %a, ptr %p1 br i1 %cond, label %mergebb, label %falsebb falsebb: %b = add %x, %y store %b, ptr %p2 br label %mergebb mergebb: ret void }