[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)
commitaa8b9993c23f9915f1ba694502333f67a627e8d0
tree7a620a39ac88ac1fd39f18b1e1511313349ce7f7
parentf5a338369be46be25ed761617c00b7d9db45111e
[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

llvm-svn: 367163
llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
llvm/test/CodeGen/AArch64/GlobalISel/select-stlxr-intrin.mir
llvm/test/CodeGen/AArch64/arm64-ldxr-stxr.ll