|  | # 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 | 
|  | ... |