15fdab3c8Swangpc; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 25fdab3c8Swangpc; RUN: llc < %s -O3 -mtriple=riscv64 -riscv-enable-copy-propagation=false | FileCheck %s --check-prefix=NOPROP 35fdab3c8Swangpc; RUN: llc < %s -O3 -mtriple=riscv64 -riscv-enable-copy-propagation=true | FileCheck %s --check-prefix=PROP 45fdab3c8Swangpc 5*ff9af4c4SNikita Popovdefine void @copyprop_after_mbp(i32 %v, ptr %a, ptr %b, ptr %c, ptr %d) { 65fdab3c8Swangpc; NOPROP-LABEL: copyprop_after_mbp: 75fdab3c8Swangpc; NOPROP: # %bb.0: 85fdab3c8Swangpc; NOPROP-NEXT: sext.w a0, a0 95fdab3c8Swangpc; NOPROP-NEXT: li a5, 10 105fdab3c8Swangpc; NOPROP-NEXT: bne a0, a5, .LBB0_2 115fdab3c8Swangpc; NOPROP-NEXT: # %bb.1: # %bb.0 125fdab3c8Swangpc; NOPROP-NEXT: li a0, 15 135fdab3c8Swangpc; NOPROP-NEXT: sw a0, 0(a2) 145fdab3c8Swangpc; NOPROP-NEXT: li a0, 1 155fdab3c8Swangpc; NOPROP-NEXT: sw a0, 0(a1) 165fdab3c8Swangpc; NOPROP-NEXT: li a0, 12 175fdab3c8Swangpc; NOPROP-NEXT: sw a0, 0(a4) 185fdab3c8Swangpc; NOPROP-NEXT: ret 195fdab3c8Swangpc; NOPROP-NEXT: .LBB0_2: # %bb.1 205fdab3c8Swangpc; NOPROP-NEXT: li a0, 0 215fdab3c8Swangpc; NOPROP-NEXT: li a2, 25 225fdab3c8Swangpc; NOPROP-NEXT: sw a2, 0(a3) 235fdab3c8Swangpc; NOPROP-NEXT: sw a0, 0(a1) 245fdab3c8Swangpc; NOPROP-NEXT: li a0, 12 255fdab3c8Swangpc; NOPROP-NEXT: sw a0, 0(a4) 265fdab3c8Swangpc; NOPROP-NEXT: ret 275fdab3c8Swangpc; 285fdab3c8Swangpc; PROP-LABEL: copyprop_after_mbp: 295fdab3c8Swangpc; PROP: # %bb.0: 305fdab3c8Swangpc; PROP-NEXT: sext.w a0, a0 315fdab3c8Swangpc; PROP-NEXT: li a5, 10 325fdab3c8Swangpc; PROP-NEXT: bne a0, a5, .LBB0_2 335fdab3c8Swangpc; PROP-NEXT: # %bb.1: # %bb.0 345fdab3c8Swangpc; PROP-NEXT: li a0, 15 355fdab3c8Swangpc; PROP-NEXT: sw a0, 0(a2) 365fdab3c8Swangpc; PROP-NEXT: li a0, 1 375fdab3c8Swangpc; PROP-NEXT: sw a0, 0(a1) 385fdab3c8Swangpc; PROP-NEXT: li a0, 12 395fdab3c8Swangpc; PROP-NEXT: sw a0, 0(a4) 405fdab3c8Swangpc; PROP-NEXT: ret 415fdab3c8Swangpc; PROP-NEXT: .LBB0_2: # %bb.1 425fdab3c8Swangpc; PROP-NEXT: li a2, 25 435fdab3c8Swangpc; PROP-NEXT: sw a2, 0(a3) 445fdab3c8Swangpc; PROP-NEXT: sw zero, 0(a1) 455fdab3c8Swangpc; PROP-NEXT: li a0, 12 465fdab3c8Swangpc; PROP-NEXT: sw a0, 0(a4) 475fdab3c8Swangpc; PROP-NEXT: ret 485fdab3c8Swangpc %1 = icmp eq i32 %v, 10 495fdab3c8Swangpc br i1 %1, label %bb.0, label %bb.1 505fdab3c8Swangpc 515fdab3c8Swangpcbb.0: 52*ff9af4c4SNikita Popov store i32 15, ptr %b, align 4 535fdab3c8Swangpc br label %bb.2 545fdab3c8Swangpc 555fdab3c8Swangpcbb.1: 56*ff9af4c4SNikita Popov store i32 25, ptr %c, align 4 575fdab3c8Swangpc br label %bb.2 585fdab3c8Swangpc 595fdab3c8Swangpcbb.2: 605fdab3c8Swangpc %2 = phi i32 [ 1, %bb.0 ], [ 0, %bb.1 ] 61*ff9af4c4SNikita Popov store i32 %2, ptr %a, align 4 62*ff9af4c4SNikita Popov store i32 12, ptr %d, align 4 635fdab3c8Swangpc ret void 645fdab3c8Swangpc} 65