| ; 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) } |