|  | # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py | 
|  | # RUN: llc -mcpu=pwr9 -mtriple=powerpc64le-unknown-unknown -run-pass ppc-pre-emit-peephole %s -o - | FileCheck %s | 
|  |  | 
|  | --- | 
|  | name:            t1 | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  | liveins: $x1 | 
|  |  | 
|  | ; CHECK-LABEL: name: t1 | 
|  | ; CHECK: liveins: $x1 | 
|  | ; CHECK: renamable $x3 = LI8 0 | 
|  | ; CHECK: STD renamable $x3, 16, $x1 | 
|  | ; CHECK: STD killed renamable $x3, 8, $x1 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | renamable $x3 = LI8 0 | 
|  | STD killed renamable $x3, 16, $x1 | 
|  | renamable $x3 = LI8 0 | 
|  | STD killed renamable $x3, 8, $x1 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            t2 | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  | liveins: $x1 | 
|  |  | 
|  | ; CHECK-LABEL: name: t2 | 
|  | ; CHECK: liveins: $x1 | 
|  | ; CHECK: renamable $x3 = LI8 0 | 
|  | ; CHECK: STD renamable $x3, 32, $x1 | 
|  | ; CHECK: STD renamable $x3, 24, $x1 | 
|  | ; CHECK: STD renamable $x3, 16, $x1 | 
|  | ; CHECK: STD killed renamable $x3, 8, $x1 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | renamable $x3 = LI8 0 | 
|  | STD killed renamable $x3, 32, $x1 | 
|  | renamable $x3 = LI8 0 | 
|  | STD killed renamable $x3, 24, $x1 | 
|  | renamable $x3 = LI8 0 | 
|  | STD killed renamable $x3, 16, $x1 | 
|  | renamable $x3 = LI8 0 | 
|  | STD killed renamable $x3, 8, $x1 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            t3 | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  | liveins: $x1 | 
|  |  | 
|  | ; CHECK-LABEL: name: t3 | 
|  | ; CHECK: liveins: $x1 | 
|  | ; CHECK: renamable $x3 = LI8 0 | 
|  | ; CHECK: STD renamable $x3, 32, $x1 | 
|  | ; CHECK: STD renamable $x3, 24, $x1 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | renamable $x3 = LI8 0 | 
|  | STD killed renamable $x3, 32, $x1 | 
|  | renamable $x3 = LI8 0 | 
|  | STD renamable $x3, 24, $x1 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            t4 | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  | liveins: $x1 | 
|  |  | 
|  | ; CHECK-LABEL: name: t4 | 
|  | ; CHECK: liveins: $x1 | 
|  | ; CHECK: renamable $x3 = LI8 0 | 
|  | ; CHECK: STD renamable $x3, 16, $x1 | 
|  | ; CHECK: renamable $x4 = ADDI8 renamable $x3, 8 | 
|  | ; CHECK: STD killed renamable $x3, 8, $x1 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | renamable $x3 = LI8 0 | 
|  | STD killed renamable $x3, 16, $x1 | 
|  | renamable $x3 = LI8 0 | 
|  | renamable $x4 = ADDI8 killed renamable $x3, 8 | 
|  | renamable $x3 = LI8 0 | 
|  | STD killed renamable $x3, 8, $x1 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            t5 | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  | liveins: $x1 | 
|  |  | 
|  | ; CHECK-LABEL: name: t5 | 
|  | ; CHECK: liveins: $x1 | 
|  | ; CHECK: renamable $r3 = LI 0 | 
|  | ; CHECK: STW renamable $r3, 16, $x1 | 
|  | ; CHECK: STW killed renamable $r3, 12, $x1 | 
|  | ; CHECK: renamable $r3 = LI 1 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | renamable $r3 = LI 0 | 
|  | STW killed renamable $r3, 16, $x1 | 
|  | renamable $r3 = LI 0 | 
|  | STW killed renamable $r3, 12, $x1 | 
|  | renamable $r3 = LI 1 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            t6 | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  | liveins: $x1 | 
|  |  | 
|  | ; CHECK-LABEL: name: t6 | 
|  | ; CHECK: liveins: $x1 | 
|  | ; CHECK: renamable $x3 = LI8 0 | 
|  | ; CHECK: renamable $x4 = LI8 1 | 
|  | ; CHECK: STD renamable $x3, 32, $x1 | 
|  | ; CHECK: STD renamable $x4, 24, $x1 | 
|  | ; CHECK: STD killed renamable $x3, 16, $x1 | 
|  | ; CHECK: STD killed renamable $x4, 8, $x1 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | renamable $x3 = LI8 0 | 
|  | renamable $x4 = LI8 1 | 
|  | STD killed renamable $x3, 32, $x1 | 
|  | STD killed renamable $x4, 24, $x1 | 
|  | renamable $x3 = LI8 0 | 
|  | renamable $x4 = LI8 1 | 
|  | STD killed renamable $x3, 16, $x1 | 
|  | STD killed renamable $x4, 8, $x1 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            t7 | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  | liveins: $x1, $x4 | 
|  |  | 
|  | ; CHECK-LABEL: name: t7 | 
|  | ; CHECK: liveins: $x1, $x4 | 
|  | ; CHECK: renamable $x3 = LI8 0 | 
|  | ; CHECK: STD killed renamable $x3, 32, $x1 | 
|  | ; CHECK: renamable $x3 = ADDI8 $x4, 6 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | renamable $x3 = LI8 0 | 
|  | STD killed renamable $x3, 32, $x1 | 
|  | renamable $x3 = ADDI8 $x4, 6 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            t8 | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  | liveins: $x1 | 
|  |  | 
|  | ; CHECK-LABEL: name: t8 | 
|  | ; CHECK: liveins: $x1 | 
|  | ; CHECK: renamable $x3 = LI8 0 | 
|  | ; CHECK: STD renamable $x3, 32, $x1 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | renamable $x3 = LI8 0 | 
|  | STD killed renamable $x3, 32, $x1 | 
|  | renamable $x3 = LI8 0 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            t9 | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | ; CHECK-LABEL: name: t9 | 
|  | ; CHECK: bb.0.entry: | 
|  | ; CHECK:   successors: %bb.2(0x40000000), %bb.1(0x40000000) | 
|  | ; CHECK:   liveins: $x3 | 
|  | ; CHECK:   renamable $r4 = LI 0, implicit-def $x4 | 
|  | ; CHECK:   renamable $x24 = RLDICL renamable $x4, 0, 32 | 
|  | ; CHECK:   renamable $cr0 = CMPLDI renamable $x3, 0 | 
|  | ; CHECK:   BCC 68, killed renamable $cr0, %bb.1 | 
|  | ; CHECK:   B %bb.2 | 
|  | ; CHECK: bb.1: | 
|  | ; CHECK:   liveins: $r4, $x1 | 
|  | ; CHECK:   STW killed renamable $r4, 16, $x1 | 
|  | ; CHECK:   BLR8 implicit $lr8, implicit $rm | 
|  | ; CHECK: bb.2: | 
|  | ; CHECK:   liveins: $r4, $x1 | 
|  | ; CHECK:   STW killed renamable $r4, 32, $x1 | 
|  | ; CHECK:   BLR8 implicit $lr8, implicit $rm | 
|  | bb.0.entry: | 
|  | liveins: $x3 | 
|  | successors: %bb.8, %bb.7 | 
|  |  | 
|  | renamable $r4 = LI 0, implicit-def $x4 | 
|  | renamable $x24 = RLDICL killed renamable $x4, 0 , 32 | 
|  | renamable $cr0 = CMPLDI renamable $x3, 0 | 
|  | renamable $r4 = LI 0 | 
|  | BCC 68, killed renamable $cr0, %bb.7 | 
|  | B %bb.8 | 
|  |  | 
|  | bb.7: | 
|  | liveins: $r4, $x1 | 
|  | STW killed renamable $r4, 16, $x1 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | bb.8: | 
|  | liveins: $r4, $x1 | 
|  | STW killed renamable $r4, 32, $x1 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            t10 | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  | liveins: $x1 | 
|  |  | 
|  | ; CHECK-LABEL: name: t10 | 
|  | ; CHECK: liveins: $x1 | 
|  | ; CHECK: renamable $x3 = LI8 24 | 
|  | ; CHECK: STD killed renamable $x3, 16, $x1 | 
|  | ; CHECK: renamable $r3 = LI 0 | 
|  | ; CHECK: STW killed renamable $r3, 26, $x1 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | renamable $x3 = LI8 24 | 
|  | STD killed renamable $x3, 16, $x1 | 
|  | renamable $r3 = LI 0 | 
|  | STW killed renamable $r3, 26, $x1 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            LIS8 | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  | liveins: $x1 | 
|  |  | 
|  | ; CHECK-LABEL: name: LIS8 | 
|  | ; CHECK: liveins: $x1 | 
|  | ; CHECK: renamable $x3 = LIS8 0 | 
|  | ; CHECK: STD renamable $x3, 16, $x1 | 
|  | ; CHECK: STD killed renamable $x3, 8, $x1 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | renamable $x3 = LIS8 0 | 
|  | STD killed renamable $x3, 16, $x1 | 
|  | renamable $x3 = LIS8 0 | 
|  | STD killed renamable $x3, 8, $x1 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            LIS | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  | liveins: $x1 | 
|  |  | 
|  | ; CHECK-LABEL: name: LIS | 
|  | ; CHECK: liveins: $x1 | 
|  | ; CHECK: renamable $r3 = LIS 0 | 
|  | ; CHECK: STW renamable $r3, 16, $x1 | 
|  | ; CHECK: STW killed renamable $r3, 12, $x1 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | renamable $r3 = LIS 0 | 
|  | STW killed renamable $r3, 16, $x1 | 
|  | renamable $r3 = LIS 0 | 
|  | STW killed renamable $r3, 12, $x1 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            modify_and_kill_the_reg_in_the_same_inst | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  |  | 
|  | ; CHECK-LABEL: name: modify_and_kill_the_reg_in_the_same_inst | 
|  | ; CHECK: renamable $x6 = LI8 1 | 
|  | ; CHECK: renamable $x6 = RLDICR killed renamable $x6, 44, 19 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | renamable $x6 = LI8 1 | 
|  | renamable $x6 = RLDICR killed renamable $x6, 44, 19 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            dead_load_immediate_followed_by_a_redundancy | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  | liveins: $x1 | 
|  |  | 
|  | ; CHECK-LABEL: name: dead_load_immediate_followed_by_a_redundancy | 
|  | ; CHECK: liveins: $x1 | 
|  | ; CHECK: renamable $r3 = LI 128 | 
|  | ; CHECK: renamable $x4 = ADDI8 $x1, -128 | 
|  | ; CHECK: renamable $x5 = ADDI8 $x1, -128 | 
|  | ; CHECK: STW killed renamable $r3, 16, $x4 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | dead renamable $r3 = LI 128 | 
|  | renamable $x4 = ADDI8 $x1, -128 | 
|  | dead renamable $r3 = LI 128 | 
|  | renamable $x5 = ADDI8 $x1, -128 | 
|  | renamable $r3 = LI 128 | 
|  | STW killed renamable $r3, 16, $x4 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            overwrite_reg_before_killed | 
|  | alignment:       16 | 
|  | tracksRegLiveness: true | 
|  | machineFunctionInfo: {} | 
|  | body:             | | 
|  | bb.0.entry: | 
|  | liveins: $x1 | 
|  |  | 
|  | ; CHECK-LABEL: name: overwrite_reg_before_killed | 
|  | ; CHECK: liveins: $x1 | 
|  | ; CHECK: renamable $x3 = LI8 0 | 
|  | ; CHECK: STD renamable $x3, 16, $x1 | 
|  | ; CHECK: STD killed renamable $x3, 8, $x1 | 
|  | ; CHECK: BLR8 implicit $lr8, implicit $rm | 
|  | renamable $x3 = LI8 0 | 
|  | STD renamable $x3, 16, $x1 | 
|  | renamable $x3 = LI8 0 | 
|  | STD killed renamable $x3, 8, $x1 | 
|  | BLR8 implicit $lr8, implicit $rm | 
|  |  | 
|  | ... |