brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · 24baa2f Raw
85 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple aarch64 -run-pass=aarch64-postlegalizer-combiner --aarch64postlegalizercombiner-only-enable-rule="mutate_anyext_to_zext" -verify-machineinstrs %s -o - | FileCheck %s3# REQUIRES: asserts4 5...6---7name:            scalar_icmp8legalized:       true9tracksRegLiveness: true10body:             |11  bb.0:12    liveins: $x013    ; Scalars have 0 or 1, so we want a ZExt.14 15    ; CHECK-LABEL: name: scalar_icmp16    ; CHECK: liveins: $x017    ; CHECK-NEXT: {{  $}}18    ; CHECK-NEXT: %copy:_(s64) = COPY $x019    ; CHECK-NEXT: %cst_1:_(s64) = G_CONSTANT i64 120    ; CHECK-NEXT: %icmp:_(s32) = G_ICMP intpred(eq), %copy(s64), %cst_121    ; CHECK-NEXT: %ext:_(s64) = G_ZEXT %icmp(s32)22    ; CHECK-NEXT: $x0 = COPY %ext(s64)23    ; CHECK-NEXT: RET_ReallyLR implicit $x024    %copy:_(s64) = COPY $x025    %cst_1:_(s64) = G_CONSTANT i64 126    %icmp:_(s32) = G_ICMP intpred(eq), %copy(s64), %cst_127    %ext:_(s64) = G_ANYEXT %icmp(s32)28    $x0 = COPY %ext(s64)29    RET_ReallyLR implicit $x030 31 32...33---34name:            vector_icmp35legalized:       true36tracksRegLiveness: true37body:             |38  bb.0:39    liveins: $x0, $d040    ; Vectors have 0 or negative 1, so we don't produce a zext.41 42    ; CHECK-LABEL: name: vector_icmp43    ; CHECK: liveins: $x0, $d044    ; CHECK-NEXT: {{  $}}45    ; CHECK-NEXT: %copy:_(<2 x s32>) = COPY $d046    ; CHECK-NEXT: %cst_1:_(s32) = G_CONSTANT i32 147    ; CHECK-NEXT: %vec_cst_1:_(<2 x s32>) = G_BUILD_VECTOR %cst_1(s32), %cst_1(s32)48    ; CHECK-NEXT: %icmp:_(<2 x s32>) = G_ICMP intpred(eq), %copy(<2 x s32>), %vec_cst_149    ; CHECK-NEXT: %ext:_(<2 x s64>) = G_ANYEXT %icmp(<2 x s32>)50    ; CHECK-NEXT: $q0 = COPY %ext(<2 x s64>)51    ; CHECK-NEXT: RET_ReallyLR implicit $q052    %copy:_(<2 x s32>) = COPY $d053    %cst_1:_(s32) = G_CONSTANT i32 154    %vec_cst_1:_(<2 x s32>) = G_BUILD_VECTOR %cst_1, %cst_155    %icmp:_(<2 x s32>) = G_ICMP intpred(eq), %copy(<2 x s32>), %vec_cst_156    %ext:_(<2 x s64>) = G_ANYEXT %icmp(<2 x s32>)57    $q0 = COPY %ext(<2 x s64>)58    RET_ReallyLR implicit $q059 60...61---62name:            scalar_fcmp63legalized:       true64tracksRegLiveness: true65body:             |66  bb.0:67    liveins: $x0, $d068    ; Scalars have 0 or 1, so we want a ZExt.69 70    ; CHECK-LABEL: name: scalar_fcmp71    ; CHECK: liveins: $x0, $d072    ; CHECK-NEXT: {{  $}}73    ; CHECK-NEXT: %copy:_(s64) = COPY $d074    ; CHECK-NEXT: %cst_1:_(s64) = G_FCONSTANT double 1.000000e+0075    ; CHECK-NEXT: %fcmp:_(s32) = G_FCMP intpred(eq), %copy(s64), %cst_176    ; CHECK-NEXT: %ext:_(s64) = G_ZEXT %fcmp(s32)77    ; CHECK-NEXT: $x0 = COPY %ext(s64)78    ; CHECK-NEXT: RET_ReallyLR implicit $x079    %copy:_(s64) = COPY $d080    %cst_1:_(s64) = G_FCONSTANT double 1.081    %fcmp:_(s32) = G_FCMP intpred(eq), %copy(s64), %cst_182    %ext:_(s64) = G_ANYEXT %fcmp(s32)83    $x0 = COPY %ext(s64)84    RET_ReallyLR implicit $x085