1# RUN: llc -mtriple powerpc64le-unknown-linux-gnu -mcpu=pwr8 -x mir < %s \ 2# RUN: -verify-machineinstrs -start-before=ppc-mi-peepholes | FileCheck %s 3 4--- 5name: remove_frsp 6alignment: 16 7tracksRegLiveness: true 8body: | 9 bb.0.entry: 10 liveins: $x3, $x4 11 12 %1:g8rc = COPY $x4 13 %0:g8rc_and_g8rc_nox0 = COPY $x3 14 %2:g8rc = RLDICR %1, 2, 61 15 %3:f8rc, %4:g8rc_and_g8rc_nox0 = LFSUX %0, killed %2 16 %5:f4rc = FRSP killed %3, implicit $rm 17 %22:vslrc = SUBREG_TO_REG 1, %5, %subreg.sub_64 18 %7:g8rc = LI8 8 19 %8:vssrc = XFLOADf32 %4, killed %7 20 %23:vslrc = SUBREG_TO_REG 1, %8, %subreg.sub_64 21 %10:vsrc = XXPERMDI %23, %22, 0 22 %11:vrrc = XVCVDPSP killed %10, implicit $rm 23 $v2 = COPY %11 24 BLR8 implicit $lr8, implicit $rm, implicit $v2 25... 26# CHECK-LABEL: remove_frsp 27# CHECK: sldi 4, 4, 2 28# CHECK-NEXT: lfsux 0, 3, 4 29# CHECK-NOT: frsp 30# CHECK-NEXT: lfs 1, 8(3) 31# CHECK-NEXT: xxmrghd 0, 1, 0 32# CHECK-NEXT: xvcvdpsp 34, 0 33# CHECK-NEXT: blr 34 35--- 36name: remove_xsrsp 37tracksRegLiveness: true 38body: | 39 bb.0.entry: 40 liveins: $x3, $x4 41 42 %1:g8rc = COPY $x4 43 %0:g8rc_and_g8rc_nox0 = COPY $x3 44 %2:g8rc = RLDICR %1, 2, 61 45 %3:f8rc, %4:g8rc_and_g8rc_nox0 = LFSUX %0, killed %2 46 %5:vssrc = XSRSP killed %3 47 %22:vslrc = SUBREG_TO_REG 1, %5, %subreg.sub_64 48 %7:g8rc = LI8 8 49 %8:vssrc = XFLOADf32 %4, killed %7 50 %23:vslrc = SUBREG_TO_REG 1, %8, %subreg.sub_64 51 %10:vsrc = XXPERMDI %23, %22, 0 52 %11:vrrc = XVCVDPSP killed %10, implicit $rm 53 $v2 = COPY %11 54 BLR8 implicit $lr8, implicit $rm, implicit $v2 55... 56# CHECK-LABEL: remove_xsrsp 57# CHECK: sldi 4, 4, 2 58# CHECK-NEXT: lfsux 0, 3, 4 59# CHECK-NOT: xsrsp 60# CHECK-NEXT: lfs 1, 8(3) 61# CHECK-NEXT: xxmrghd 0, 1, 0 62# CHECK-NEXT: xvcvdpsp 34, 0 63# CHECK-NEXT: blr 64