File: inline-asm-mem-constraint.ll

package info (click to toggle)
llvm-toolchain-21 1%3A21.1.6-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 2,245,044 kB
  • sloc: cpp: 7,619,726; ansic: 1,434,018; asm: 1,058,748; python: 252,740; f90: 94,671; objc: 70,685; lisp: 42,813; pascal: 18,401; sh: 8,601; ml: 5,111; perl: 4,720; makefile: 3,666; awk: 3,523; javascript: 2,409; xml: 892; fortran: 770
file content (46 lines) | stat: -rw-r--r-- 1,386 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
; 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
}