]> granicus.if.org Git - llvm/commit
[AArch64][GlobalISel] Select @llvm.aarch64.stlxr for 32-bit pointers
authorJessica Paquette <jpaquette@apple.com>
Fri, 26 Jul 2019 23:28:53 +0000 (23:28 +0000)
committerJessica Paquette <jpaquette@apple.com>
Fri, 26 Jul 2019 23:28:53 +0000 (23:28 +0000)
commit62e013b1bdeded27315e9a8f96b93bf1cf4e12ae
tree9ed75348384bdcca1af0b4b5d611bb484bcb9060
parent1883d950b1ce5c146d57f61a71da46b060bd15fe
[AArch64][GlobalISel] Select @llvm.aarch64.stlxr for 32-bit pointers

Add partial instruction selection for intrinsics like this:

```
declare i32 @llvm.aarch64.stlxr(i64, i32*)
```

(This only handles the case where a G_ZEXT is feeding the intrinsic.)

Also make sure that the added store instruction actually has the memory op from
the original G_STORE.

Update select-stlxr-intrin.mir and arm64-ldxr-stxr.ll.

Differential Revision: https://reviews.llvm.org/D65355

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@367163 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64InstructionSelector.cpp
test/CodeGen/AArch64/GlobalISel/select-stlxr-intrin.mir
test/CodeGen/AArch64/arm64-ldxr-stxr.ll