; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc --mtriple=xtensa < %s | FileCheck %s --check-prefix=XTENSA
define i32 @m_offset_0(ptr %p) nounwind {
; XTENSA-LABEL: m_offset_0:
; XTENSA: #APP
; XTENSA-NEXT: l32i a2, a2, 0
; XTENSA-NEXT: #NO_APP
; XTENSA-NEXT: ret
%1 = call i32 asm "l32i $0, $1", "=r,*m"(ptr elementtype(i32) %p)
ret i32 %1
}
define i32 @m_offset_1020(ptr %p) nounwind {
; XTENSA-LABEL: m_offset_1020:
; XTENSA: #APP
; XTENSA-NEXT: l32i a2, a2, 1020
; XTENSA-NEXT: #NO_APP
; XTENSA-NEXT: ret
%1 = getelementptr inbounds i8, ptr %p, i32 1020
%2 = call i32 asm "l32i $0, $1", "=r,*m"(ptr elementtype(i32) %1)
ret i32 %2
}
define i8 @m_i8_offset_7(ptr %p) nounwind {
; XTENSA-LABEL: m_i8_offset_7:
; XTENSA: addi a8, a2, 7
; XTENSA-NEXT: #APP
; XTENSA-NEXT: l8ui a2, a8, 0
; XTENSA-NEXT: #NO_APP
; XTENSA-NEXT: ret
%1 = getelementptr inbounds i8, ptr %p, i32 7
%2 = call i8 asm "l8ui $0, $1", "=r,*m"(ptr elementtype(i8) %1)
ret i8 %2
}
define i16 @m_i16_offset_10(ptr %p) nounwind {
; XTENSA-LABEL: m_i16_offset_10:
; XTENSA: #APP
; XTENSA-NEXT: l16si a2, a2, 20
; XTENSA-NEXT: #NO_APP
; XTENSA-NEXT: ret
%1 = getelementptr inbounds i16, ptr %p, i32 10
%2 = call i16 asm "l16si $0, $1", "=r,*m"(ptr elementtype(i16) %1)
ret i16 %2
}