brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 1d24f8a Raw
86 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple aarch64 -run-pass=aarch64-postlegalizer-lowering -verify-machineinstrs %s -o - | FileCheck %s3#4# Test producing a G_REV from an appropriate G_SHUFFLE_VECTOR.5 6...7---8name:            rev64_mask_1_09alignment:       410legalized:       true11tracksRegLiveness: true12body:             |13  bb.1.entry:14    liveins: $d0, $d115    ; CHECK-LABEL: name: rev64_mask_1_016    ; CHECK: liveins: $d0, $d117    ; CHECK-NEXT: {{  $}}18    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d019    ; CHECK-NEXT: [[REV64_:%[0-9]+]]:_(<2 x s32>) = G_REV64 [[COPY]]20    ; CHECK-NEXT: $d0 = COPY [[REV64_]](<2 x s32>)21    ; CHECK-NEXT: RET_ReallyLR implicit $d022    %0:_(<2 x s32>) = COPY $d023    %1:_(<2 x s32>) = COPY $d124    %2:_(<2 x s32>) = G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(1, 0)25    $d0 = COPY %2(<2 x s32>)26    RET_ReallyLR implicit $d027 28...29---30name:            rev64_mask_1_undef31alignment:       432legalized:       true33tracksRegLiveness: true34body:             |35  bb.1.entry:36    liveins: $d0, $d137    ; CHECK-LABEL: name: rev64_mask_1_undef38    ; CHECK: liveins: $d0, $d139    ; CHECK-NEXT: {{  $}}40    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d041    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 142    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<2 x s32>) = G_IMPLICIT_DEF43    ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s32>) = G_CONCAT_VECTORS [[COPY]](<2 x s32>), [[DEF]](<2 x s32>)44    ; CHECK-NEXT: [[DUPLANE32_:%[0-9]+]]:_(<2 x s32>) = G_DUPLANE32 [[CONCAT_VECTORS]], [[C]](s64)45    ; CHECK-NEXT: $d0 = COPY [[DUPLANE32_]](<2 x s32>)46    ; CHECK-NEXT: RET_ReallyLR implicit $d047    %0:_(<2 x s32>) = COPY $d048    %1:_(<2 x s32>) = COPY $d149    %2:_(<2 x s32>) = G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(1, undef)50    $d0 = COPY %2(<2 x s32>)51    RET_ReallyLR implicit $d052 53...54---55name:           no_rev64_mask_156alignment:       457legalized:       true58tracksRegLiveness: true59body:             |60  bb.1.entry:61    liveins: $d0, $d162 63    ; Verify that we don't produce a G_REV64 when64    ; M[i] != (i - i % BlockElts) + (BlockElts - 1 - i % BlockElts)65    ; In this example, BlockElts = 266    ; At i = 167    ; M[i] = 368    ; i % BlockElts = i % 2 = 169    ; So70    ; 3 != (1 - 1) + (2 - 1 - 1)71    ; 3 != 072    ; And so we should not produce a G_REV64.73    ; CHECK-LABEL: name: no_rev64_mask_174    ; CHECK: liveins: $d0, $d175    ; CHECK-NEXT: {{  $}}76    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d077    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d178    ; CHECK-NEXT: [[ZIP2_:%[0-9]+]]:_(<2 x s32>) = G_ZIP2 [[COPY]], [[COPY1]]79    ; CHECK-NEXT: $d0 = COPY [[ZIP2_]](<2 x s32>)80    ; CHECK-NEXT: RET_ReallyLR implicit $d081    %0:_(<2 x s32>) = COPY $d082    %1:_(<2 x s32>) = COPY $d183    %2:_(<2 x s32>) = G_SHUFFLE_VECTOR %0(<2 x s32>), %1, shufflemask(1, 3)84    $d0 = COPY %2(<2 x s32>)85    RET_ReallyLR implicit $d086