# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4 # REQUIRES: asserts # RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -verify-machineinstrs \ # RUN: -run-pass ppc-mi-peepholes %s -o - | FileCheck %s --check-prefix=ALL # RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -verify-machineinstrs \ # RUN: -run-pass ppc-mi-peepholes %s -o - -debug-counter=ppc-xtoi-peephole=0-7 \ # RUN: | FileCheck %s --check-prefix=ALL # RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -verify-machineinstrs \ # RUN: -run-pass ppc-mi-peepholes %s -o - -debug-counter=ppc-xtoi-peephole=3-4 \ # RUN: | FileCheck %s --check-prefix=ONE-FIRSTSTORE # RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -verify-machineinstrs \ # RUN: -run-pass ppc-mi-peepholes %s -o - -debug-counter=ppc-xtoi-peephole=5-6 \ # RUN: | FileCheck %s --check-prefix=ONE-SECONDSTORE # RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -verify-machineinstrs \ # RUN: -run-pass ppc-mi-peepholes %s -o - -debug-counter=ppc-xtoi-peephole=3-6 \ # RUN: | FileCheck %s --check-prefix=TWO --- name: foldDForm tracksRegLiveness: true body: | bb.0.entry: liveins: $x3 ; ALL-LABEL: name: foldDForm ; ALL: liveins: $x3 ; ALL-NEXT: {{ $}} ; ALL-NEXT: [[COPY:%[0-9]+]]:g8rc_and_g8rc_nox0 = COPY killed $x3 ; ALL-NEXT: dead [[ADDI8_:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADDI8 [[COPY]], 144 ; ALL-NEXT: [[LI8_:%[0-9]+]]:g8rc = LI8 0 ; ALL-NEXT: STD [[LI8_]], 160, [[COPY]] ; ALL-NEXT: dead [[ADDI8_1:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADDI8 [[COPY]], 160 ; ALL-NEXT: STD [[LI8_]], 176, [[COPY]] ; ALL-NEXT: dead [[ADDI8_2:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADDI8 [[COPY]], 176 ; ALL-NEXT: STD killed [[LI8_]], 192, killed [[COPY]] ; ALL-NEXT: BLR8 implicit $lr8, implicit $rm ; ; ONE-FIRSTSTORE-LABEL: name: foldDForm ; ONE-FIRSTSTORE: liveins: $x3 ; ONE-FIRSTSTORE-NEXT: {{ $}} ; ONE-FIRSTSTORE-NEXT: [[COPY:%[0-9]+]]:g8rc_and_g8rc_nox0 = COPY killed $x3 ; ONE-FIRSTSTORE-NEXT: dead [[ADDI8_:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADDI8 [[COPY]], 144 ; ONE-FIRSTSTORE-NEXT: [[LI8_:%[0-9]+]]:g8rc = LI8 0 ; ONE-FIRSTSTORE-NEXT: STD [[LI8_]], 160, [[COPY]] ; ONE-FIRSTSTORE-NEXT: [[ADDI8_1:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADDI8 [[COPY]], 160 ; ONE-FIRSTSTORE-NEXT: STD [[LI8_]], 16, killed [[ADDI8_1]] ; ONE-FIRSTSTORE-NEXT: [[ADDI8_2:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADDI8 killed [[COPY]], 176 ; ONE-FIRSTSTORE-NEXT: STD killed [[LI8_]], 16, killed [[ADDI8_2]] ; ONE-FIRSTSTORE-NEXT: BLR8 implicit $lr8, implicit $rm ; ; ONE-SECONDSTORE-LABEL: name: foldDForm ; ONE-SECONDSTORE: liveins: $x3 ; ONE-SECONDSTORE-NEXT: {{ $}} ; ONE-SECONDSTORE-NEXT: [[COPY:%[0-9]+]]:g8rc_and_g8rc_nox0 = COPY killed $x3 ; ONE-SECONDSTORE-NEXT: [[ADDI8_:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADDI8 [[COPY]], 144 ; ONE-SECONDSTORE-NEXT: [[LI8_:%[0-9]+]]:g8rc = LI8 0 ; ONE-SECONDSTORE-NEXT: STD [[LI8_]], 16, killed [[ADDI8_]] ; ONE-SECONDSTORE-NEXT: dead [[ADDI8_1:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADDI8 [[COPY]], 160 ; ONE-SECONDSTORE-NEXT: STD [[LI8_]], 176, [[COPY]] ; ONE-SECONDSTORE-NEXT: [[ADDI8_2:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADDI8 killed [[COPY]], 176 ; ONE-SECONDSTORE-NEXT: STD killed [[LI8_]], 16, killed [[ADDI8_2]] ; ONE-SECONDSTORE-NEXT: BLR8 implicit $lr8, implicit $rm ; ; TWO-LABEL: name: foldDForm ; TWO: liveins: $x3 ; TWO-NEXT: {{ $}} ; TWO-NEXT: [[COPY:%[0-9]+]]:g8rc_and_g8rc_nox0 = COPY killed $x3 ; TWO-NEXT: dead [[ADDI8_:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADDI8 [[COPY]], 144 ; TWO-NEXT: [[LI8_:%[0-9]+]]:g8rc = LI8 0 ; TWO-NEXT: STD [[LI8_]], 160, [[COPY]] ; TWO-NEXT: dead [[ADDI8_1:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADDI8 [[COPY]], 160 ; TWO-NEXT: STD [[LI8_]], 176, [[COPY]] ; TWO-NEXT: [[ADDI8_2:%[0-9]+]]:g8rc_and_g8rc_nox0 = ADDI8 killed [[COPY]], 176 ; TWO-NEXT: STD killed [[LI8_]], 16, killed [[ADDI8_2]] ; TWO-NEXT: BLR8 implicit $lr8, implicit $rm %0:g8rc_and_g8rc_nox0 = COPY $x3 %1:g8rc_and_g8rc_nox0 = ADDI8 %0:g8rc_and_g8rc_nox0, 144 %2:g8rc = LI8 0 STD %2:g8rc, 16, %1:g8rc_and_g8rc_nox0 %3:g8rc_and_g8rc_nox0 = ADDI8 %0:g8rc_and_g8rc_nox0, 160 STD %2:g8rc, 16, %3:g8rc_and_g8rc_nox0 %4:g8rc_and_g8rc_nox0 = ADDI8 %0:g8rc_and_g8rc_nox0, 176 STD killed %2:g8rc, 16, %4:g8rc_and_g8rc_nox0 BLR8 implicit $lr8, implicit $rm ...