brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · 95d7273 Raw
88 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 -run-pass=amdgpu-regbank-combiner %s -o - | FileCheck %s3 4# Check (sext (trunc (sext_inreg x))) can be folded, as it's a pattern that can arise when5# CGP widening of uniform i16 ops is disabled.6# Two separate combines make it happen (sext_trunc and sext_inreg_of_sext_inreg).7 8---9name: trunc_s16_inreg_810tracksRegLiveness: true11body:             |12  bb.0:13    liveins: $vgpr014    ; CHECK-LABEL: name: trunc_s16_inreg_815    ; CHECK: liveins: $vgpr016    ; CHECK-NEXT: {{  $}}17    ; CHECK-NEXT: %copy:_(s32) = COPY $vgpr018    ; CHECK-NEXT: %inreg:_(s32) = G_SEXT_INREG %copy, 819    ; CHECK-NEXT: $vgpr0 = COPY %inreg(s32)20    %copy:_(s32) = COPY $vgpr021    %inreg:_(s32) = G_SEXT_INREG %copy, 822    %trunc:_(s16) = G_TRUNC %inreg23    %sext:_(s32) = G_SEXT %trunc24    $vgpr0 = COPY %sext25...26 27---28name: trunc_s16_inreg_1629tracksRegLiveness: true30body:             |31  bb.0:32    liveins: $vgpr033    ; CHECK-LABEL: name: trunc_s16_inreg_1634    ; CHECK: liveins: $vgpr035    ; CHECK-NEXT: {{  $}}36    ; CHECK-NEXT: %copy:_(s32) = COPY $vgpr037    ; CHECK-NEXT: %inreg:_(s32) = G_SEXT_INREG %copy, 1638    ; CHECK-NEXT: $vgpr0 = COPY %inreg(s32)39    %copy:_(s32) = COPY $vgpr040    %inreg:_(s32) = G_SEXT_INREG %copy, 1641    %trunc:_(s16) = G_TRUNC %inreg42    %sext:_(s32) = G_SEXT %trunc43    $vgpr0 = COPY %sext44...45 46---47name: trunc_s8_inreg_1648tracksRegLiveness: true49body:             |50  bb.0:51    liveins: $vgpr052    ; CHECK-LABEL: name: trunc_s8_inreg_1653    ; CHECK: liveins: $vgpr054    ; CHECK-NEXT: {{  $}}55    ; CHECK-NEXT: %copy:_(s32) = COPY $vgpr056    ; CHECK-NEXT: %sext:_(s32) = G_SEXT_INREG %copy, 857    ; CHECK-NEXT: $vgpr0 = COPY %sext(s32)58    %copy:_(s32) = COPY $vgpr059    %inreg:_(s32) = G_SEXT_INREG %copy, 1660    %trunc:_(s8) = G_TRUNC %inreg61    %sext:_(s32) = G_SEXT %trunc62    $vgpr0 = COPY %sext63...64 65# TODO?: We could handle this by inserting a trunc, but I'm not sure how useful that'd be.66---67name: mismatching_types68tracksRegLiveness: true69body:             |70  bb.0:71    liveins: $vgpr072    ; CHECK-LABEL: name: mismatching_types73    ; CHECK: liveins: $vgpr074    ; CHECK-NEXT: {{  $}}75    ; CHECK-NEXT: %copy:_(s32) = COPY $vgpr076    ; CHECK-NEXT: %inreg:_(s32) = G_SEXT_INREG %copy, 877    ; CHECK-NEXT: %trunc:_(s8) = G_TRUNC %inreg(s32)78    ; CHECK-NEXT: %sext:_(s16) = G_SEXT %trunc(s8)79    ; CHECK-NEXT: %anyext:_(s32) = G_ANYEXT %sext(s16)80    ; CHECK-NEXT: $vgpr0 = COPY %anyext(s32)81    %copy:_(s32) = COPY $vgpr082    %inreg:_(s32) = G_SEXT_INREG %copy, 883    %trunc:_(s8) = G_TRUNC %inreg84    %sext:_(s16) = G_SEXT %trunc85    %anyext:_(s32) = G_ANYEXT %sext86    $vgpr0 = COPY %anyext87...88