forked from OSchip/llvm-project
62 lines
2.1 KiB
YAML
62 lines
2.1 KiB
YAML
# RUN: llc -mtriple=aarch64--linux-gnu -mattr=+sve -run-pass=localstackalloc -o - %s | FileCheck %s
|
|
|
|
--- |
|
|
; ModuleID = '<stdin>'
|
|
source_filename = "<stdin>"
|
|
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
|
|
target triple = "aarch64-unknown-linux-gnu"
|
|
|
|
define <vscale x 32 x i8> @insert_32i8_idx(<vscale x 32 x i8> %a, i8 %elt, i64 %idx) #0 {
|
|
%ins = insertelement <vscale x 32 x i8> %a, i8 %elt, i64 %idx
|
|
ret <vscale x 32 x i8> %ins
|
|
}
|
|
|
|
attributes #0 = { "target-features"="+sve" }
|
|
|
|
...
|
|
---
|
|
name: insert_32i8_idx
|
|
alignment: 4
|
|
tracksRegLiveness: true
|
|
registers:
|
|
- { id: 0, class: zpr, preferred-register: '' }
|
|
- { id: 1, class: zpr, preferred-register: '' }
|
|
- { id: 2, class: gpr32, preferred-register: '' }
|
|
- { id: 3, class: gpr64, preferred-register: '' }
|
|
- { id: 5, class: ppr_3b, preferred-register: '' }
|
|
- { id: 6, class: gpr64sp, preferred-register: '' }
|
|
- { id: 7, class: zpr, preferred-register: '' }
|
|
- { id: 8, class: zpr, preferred-register: '' }
|
|
liveins:
|
|
- { reg: '$z0', virtual-reg: '%0' }
|
|
- { reg: '$z1', virtual-reg: '%1' }
|
|
- { reg: '$w0', virtual-reg: '%2' }
|
|
frameInfo:
|
|
maxAlignment: 1
|
|
maxCallFrameSize: 0
|
|
# CHECK-LABEL: name: insert_32i8_idx
|
|
# CHECK: localFrameSize: 0
|
|
stack:
|
|
- { id: 0, name: '', type: default, offset: 0, size: 32, alignment: 16,
|
|
stack-id: sve-vec, callee-saved-register: '', callee-saved-restored: true,
|
|
debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
|
|
machineFunctionInfo: {}
|
|
body: |
|
|
bb.0 (%ir-block.0):
|
|
liveins: $z0, $z1, $w0
|
|
|
|
%2:gpr32 = COPY $w0
|
|
%1:zpr = COPY $z1
|
|
%0:zpr = COPY $z0
|
|
%5:ppr_3b = PTRUE_B 31
|
|
%6:gpr64sp = ADDXri %stack.0, 0, 0
|
|
ST1B_IMM %1, %5, %6, 1 :: (store unknown-size, align 16)
|
|
ST1B_IMM %0, %5, %stack.0, 0 :: (store unknown-size into %stack.0, align 16)
|
|
%7:zpr = LD1B_IMM %5, %6, 1 :: (load unknown-size from %stack.0 + 16, align 16)
|
|
%8:zpr = LD1B_IMM %5, %stack.0, 0 :: (load unknown-size from %stack.0, align 16)
|
|
$z0 = COPY %8
|
|
$z1 = COPY %7
|
|
RET_ReallyLR implicit $z0, implicit $z1
|
|
|
|
...
|