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