brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.9 KiB · 6a944c6 Raw
112 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple aarch64-apple-ios  -run-pass=aarch64-prelegalizer-combiner %s -o - -verify-machineinstrs | FileCheck %s3 4# This test checks the optimization to remove the G_TRUNC if we can determine it's redundant.5---6name: icmp_trunc_sextload7tracksRegLiveness: true8body:             |9  bb.1:10    liveins: $x011 12    ; CHECK-LABEL: name: icmp_trunc_sextload13    ; CHECK: liveins: $x014    ; CHECK-NEXT: {{  $}}15    ; CHECK-NEXT: %v:_(p0) = COPY $x016    ; CHECK-NEXT: %load:_(s64) = G_SEXTLOAD %v(p0) :: (load (s32))17    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 018    ; CHECK-NEXT: %cmp:_(s1) = G_ICMP intpred(ne), %load(s64), [[C]]19    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT %cmp(s1)20    ; CHECK-NEXT: $w0 = COPY [[ANYEXT]](s32)21    ; CHECK-NEXT: RET_ReallyLR implicit $w022    %v:_(p0) = COPY $x023    %load:_(s64) = G_SEXTLOAD %v:_(p0) :: (load (s32))24    %trunc:_(s32) = G_TRUNC %load(s64)25    %zero:_(s32) = G_CONSTANT i32 026    %cmp:_(s1) = G_ICMP intpred(ne), %trunc(s32), %zero27    %5:_(s32) = G_ANYEXT %cmp28    $w0 = COPY %5(s32)29    RET_ReallyLR implicit $w030...31---32name: icmp_trunc_sextload_eq33tracksRegLiveness: true34body:             |35  bb.1:36    liveins: $x037 38    ; CHECK-LABEL: name: icmp_trunc_sextload_eq39    ; CHECK: liveins: $x040    ; CHECK-NEXT: {{  $}}41    ; CHECK-NEXT: %v:_(p0) = COPY $x042    ; CHECK-NEXT: %load:_(s64) = G_SEXTLOAD %v(p0) :: (load (s32))43    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 044    ; CHECK-NEXT: %cmp:_(s1) = G_ICMP intpred(eq), %load(s64), [[C]]45    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT %cmp(s1)46    ; CHECK-NEXT: $w0 = COPY [[ANYEXT]](s32)47    ; CHECK-NEXT: RET_ReallyLR implicit $w048    %v:_(p0) = COPY $x049    %load:_(s64) = G_SEXTLOAD %v:_(p0) :: (load (s32))50    %trunc:_(s32) = G_TRUNC %load(s64)51    %zero:_(s32) = G_CONSTANT i32 052    %cmp:_(s1) = G_ICMP intpred(eq), %trunc(s32), %zero53    %5:_(s32) = G_ANYEXT %cmp54    $w0 = COPY %5(s32)55    RET_ReallyLR implicit $w056...57---58name: icmp_trunc_sextload_wrongpred59tracksRegLiveness: true60body:             |61  bb.1:62    liveins: $x063 64    ; CHECK-LABEL: name: icmp_trunc_sextload_wrongpred65    ; CHECK: liveins: $x066    ; CHECK-NEXT: {{  $}}67    ; CHECK-NEXT: %v:_(p0) = COPY $x068    ; CHECK-NEXT: %load:_(s64) = G_SEXTLOAD %v(p0) :: (load (s32))69    ; CHECK-NEXT: %trunc:_(s32) = G_TRUNC %load(s64)70    ; CHECK-NEXT: %zero:_(s32) = G_CONSTANT i32 071    ; CHECK-NEXT: %cmp:_(s1) = G_ICMP intpred(slt), %trunc(s32), %zero72    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT %cmp(s1)73    ; CHECK-NEXT: $w0 = COPY [[ANYEXT]](s32)74    ; CHECK-NEXT: RET_ReallyLR implicit $w075    %v:_(p0) = COPY $x076    %load:_(s64) = G_SEXTLOAD %v:_(p0) :: (load (s32))77    %trunc:_(s32) = G_TRUNC %load(s64)78    %zero:_(s32) = G_CONSTANT i32 079    %cmp:_(s1) = G_ICMP intpred(slt), %trunc(s32), %zero80    %5:_(s32) = G_ANYEXT %cmp81    $w0 = COPY %5(s32)82    RET_ReallyLR implicit $w083...84---85name: icmp_trunc_sextload_extend_mismatch86tracksRegLiveness: true87body:             |88  bb.1:89    liveins: $x090 91    ; CHECK-LABEL: name: icmp_trunc_sextload_extend_mismatch92    ; CHECK: liveins: $x093    ; CHECK-NEXT: {{  $}}94    ; CHECK-NEXT: %v:_(p0) = COPY $x095    ; CHECK-NEXT: %load:_(s64) = G_SEXTLOAD %v(p0) :: (load (s32))96    ; CHECK-NEXT: %trunc:_(s16) = G_TRUNC %load(s64)97    ; CHECK-NEXT: %zero:_(s16) = G_CONSTANT i16 098    ; CHECK-NEXT: %cmp:_(s1) = G_ICMP intpred(ne), %trunc(s16), %zero99    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT %cmp(s1)100    ; CHECK-NEXT: $w0 = COPY [[ANYEXT]](s32)101    ; CHECK-NEXT: RET_ReallyLR implicit $w0102    %v:_(p0) = COPY $x0103    %load:_(s64) = G_SEXTLOAD %v:_(p0) :: (load (s32))104    %trunc:_(s16) = G_TRUNC %load(s64)105    %zero:_(s16) = G_CONSTANT i16 0106    %cmp:_(s1) = G_ICMP intpred(ne), %trunc(s16), %zero107    %5:_(s32) = G_ANYEXT %cmp108    $w0 = COPY %5(s32)109    RET_ReallyLR implicit $w0110...111 112