
Implement Xtensa FP Option instructions and lowering of the base FP operations with tests. Implement UR registers parsing. Fix loading from constant pool callee, basic block, globaladdress and jumptable addresses. Also fixed potential memory leakage when several similar XtensaConstantPoolValue objects are created Fix lowering i32 immediate.
33 lines
1.2 KiB
LLVM
33 lines
1.2 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
|
|
; RUN: llc -mtriple=xtensa -O0 -verify-machineinstrs < %s \
|
|
; RUN: | FileCheck %s -check-prefix=XTENSA
|
|
|
|
define i8 @loadi8_128(i8 %a) {
|
|
; XTENSA-LABEL: loadi8_128:
|
|
; XTENSA: .cfi_startproc
|
|
; XTENSA-NEXT: # %bb.0:
|
|
; XTENSA-NEXT: addi a8, a1, -128
|
|
; XTENSA-NEXT: or a1, a8, a8
|
|
; XTENSA-NEXT: .cfi_def_cfa_offset 128
|
|
; XTENSA-NEXT: s32i a0, a1, 124 # 4-byte Folded Spill
|
|
; XTENSA-NEXT: .cfi_offset a0, -4
|
|
; XTENSA-NEXT: l32r a8, .LCPI0_0
|
|
; XTENSA-NEXT: addi a2, a1, 0
|
|
; XTENSA-NEXT: movi a3, 0
|
|
; XTENSA-NEXT: movi a4, 64
|
|
; XTENSA-NEXT: callx0 a8
|
|
; XTENSA-NEXT: l8ui a2, a1, 0
|
|
; XTENSA-NEXT: l32i a0, a1, 124 # 4-byte Folded Reload
|
|
; XTENSA-NEXT: movi a8, 128
|
|
; XTENSA-NEXT: add a8, a1, a8
|
|
; XTENSA-NEXT: or a1, a8, a8
|
|
; XTENSA-NEXT: ret
|
|
%aligned = alloca i8, align 128
|
|
call void @llvm.memset.p0.i64(ptr noundef nonnull align 64 dereferenceable(64) %aligned, i8 0, i64 64, i1 false)
|
|
%1 = load i8, ptr %aligned, align 128
|
|
ret i8 %1
|
|
}
|
|
|
|
; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
|
|
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg)
|