Files
llvm-tms34010/llvm/test/Bitcode/target-memory-attribute.ll
CarolineConcatto 2866d2333c [AArch64][Bitcode] Use target memory for SME state (#205829)
Model AArch64 ZA and ZT0 intrinsic state using target_mem instead of
inaccessiblemem.

Bump the bitcode memory-attribute encoding and upgrade old AArch64
bitcode so prior inaccessiblemem effects are preserved on the new target
memory locations. Non-AArch64 bitcode keeps the old interpretation.
2026-07-06 09:24:22 +01:00

36 lines
1.4 KiB
LLVM

; RUN: llvm-dis < %S/Inputs/aarch64-memory-attribute-upgrade.bc | FileCheck %s --check-prefix=AARCH64
; RUN: llvm-dis < %S/Inputs/x86-memory-attribute-upgrade.bc | FileCheck %s --check-prefix=NON-AARCH64
; The .bc inputs were generated by an older LLVM memory-attribute encoding,
; before AArch64 target memory was split out from inaccessible memory.
; The code was compiled using x86 and aarch64 hosts.
define void @test_inaccessible_read() #0 {
; AARCH64: ; Function Attrs: memory(inaccessiblemem: read, target_mem: read)
; AARCH64-NEXT: define void @test_inaccessible_read()
; NON-AARCH64: ; Function Attrs: memory(inaccessiblemem: read)
; NON-AARCH64-NEXT: define void @test_inaccessible_read()
ret void
}
define void @test_inaccessible_readwrite() #1 {
; AARCH64: ; Function Attrs: memory(inaccessiblemem: readwrite, target_mem: readwrite)
; AARCH64-NEXT: define void @test_inaccessible_readwrite()
; NON-AARCH64: ; Function Attrs: memory(inaccessiblemem: readwrite)
; NON-AARCH64-NEXT: define void @test_inaccessible_readwrite()
ret void
}
define void @test_inaccessible_none() #2 {
; AARCH64: ; Function Attrs: memory(none)
; AARCH64-NEXT: define void @test_inaccessible_none()
; NON-AARCH64: ; Function Attrs: memory(none)
; NON-AARCH64-NEXT: define void @test_inaccessible_none()
ret void
}
attributes #0 = { memory(inaccessiblemem: read) }
attributes #1 = { memory(inaccessiblemem: readwrite) }
attributes #2 = { memory(inaccessiblemem: none) }