86 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -run-pass early-machinelicm -mtriple=powerpc64le-unknown-linux-gnu \3# RUN: -verify-machineinstrs %s -o - | FileCheck %s4# RUN: llc -passes early-machinelicm -mtriple=powerpc64le-unknown-linux-gnu \5# RUN: %s -o - | FileCheck %s6name: deadFlagAfterCSE7# This case tests that after the dead %3 is CSE-ed with hoisted %5 in MachineLICM8# pass, the dead flag will be cleared for %3 if %5 has users.9tracksRegLiveness: true10body: |11 ; CHECK-LABEL: name: deadFlagAfterCSE12 ; CHECK: bb.0:13 ; CHECK: successors: %bb.1(0x80000000)14 ; CHECK: liveins: $x3, $x415 ; CHECK: [[COPY:%[0-9]+]]:g8rc = COPY $x316 ; CHECK: [[COPY1:%[0-9]+]]:g8rc = COPY $x417 ; CHECK: [[ADD8_:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADD8 [[COPY]], [[COPY1]]18 ; CHECK: [[ADDI8_:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADDI8 [[ADD8_]], 10019 ; CHECK: B %bb.120 ; CHECK: bb.1:21 ; CHECK: successors: %bb.1(0x80000000)22 ; CHECK: [[PHI:%[0-9]+]]:g8rc_and_g8rc_nox0 = PHI [[ADD8_]], %bb.0, %5, %bb.123 ; CHECK: STDX [[PHI]], [[ADDI8_]], [[ADD8_]]24 ; CHECK: [[ADDI8_1:%[0-9]+]]:g8rc = nuw ADDI8 [[PHI]], 125 ; CHECK: B %bb.126 ; CHECK: bb.2:27 ; CHECK: BLR8 implicit $lr8, implicit $rm28 bb.0:29 liveins: $x3, $x430 %0:g8rc = COPY $x331 %1:g8rc = COPY $x432 %2:g8rc_and_g8rc_nox0 = ADD8 %0, %133 dead %3:g8rc_and_g8rc_nox0 = ADDI8 %2, 10034 B %bb.135 36 bb.1:37 %4:g8rc_and_g8rc_nox0 = PHI %2, %bb.0, %6, %bb.138 %5:g8rc_and_g8rc_nox0 = ADDI8 %2, 10039 STDX %4, %5, %240 %6:g8rc = nuw ADDI8 %4, 141 B %bb.142 43 bb.2:44 BLR8 implicit $lr8, implicit $rm45...46---47name: deadFlagAfterCSE248# This case tests that after the dead %3 is CSE-ed with hoisted dead %5 in49# MachineLICM pass, the dead flag will be kept.50tracksRegLiveness: true51body: |52 ; CHECK-LABEL: name: deadFlagAfterCSE253 ; CHECK: bb.0:54 ; CHECK: successors: %bb.1(0x80000000)55 ; CHECK: liveins: $x3, $x456 ; CHECK: [[COPY:%[0-9]+]]:g8rc = COPY $x357 ; CHECK: [[COPY1:%[0-9]+]]:g8rc = COPY $x458 ; CHECK: [[ADD8_:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADD8 [[COPY]], [[COPY1]]59 ; CHECK: dead %3:g8rc_and_g8rc_nox0 = ADDI8 [[ADD8_]], 10060 ; CHECK: B %bb.161 ; CHECK: bb.1:62 ; CHECK: successors: %bb.1(0x80000000)63 ; CHECK: [[PHI:%[0-9]+]]:g8rc_and_g8rc_nox0 = PHI [[ADD8_]], %bb.0, %5, %bb.164 ; CHECK: [[ADDI8_:%[0-9]+]]:g8rc = nuw ADDI8 [[PHI]], 165 ; CHECK: B %bb.166 ; CHECK: bb.2:67 ; CHECK: BLR8 implicit $lr8, implicit $rm68 bb.0:69 liveins: $x3, $x470 %0:g8rc = COPY $x371 %1:g8rc = COPY $x472 %2:g8rc_and_g8rc_nox0 = ADD8 %0, %173 dead %3:g8rc_and_g8rc_nox0 = ADDI8 %2, 10074 B %bb.175 76 bb.1:77 %4:g8rc_and_g8rc_nox0 = PHI %2, %bb.0, %6, %bb.178 dead %5:g8rc_and_g8rc_nox0 = ADDI8 %2, 10079 %6:g8rc = nuw ADDI8 %4, 180 B %bb.181 82 bb.2:83 BLR8 implicit $lr8, implicit $rm84...85 86