GlobalISel: Pass through AA metadata for target memory intrinsics
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Sat, 5 Nov 2022 19:33:43 +0000 (12:33 -0700)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Mon, 7 Nov 2022 06:14:12 +0000 (22:14 -0800)
The corresponding change for the DAG was done in fa4aac7335ac7ecabbb634d134bd4897783bf62b

llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
llvm/test/CodeGen/AMDGPU/target-mem-intrinsic-metadata.ll

index 69fb5bc..7faae09 100644 (file)
@@ -2481,7 +2481,8 @@ bool IRTranslator::translateCall(const User &U, MachineIRBuilder &MIRBuilder) {
                     ? getLLTForMVT(Info.memVT.getSimpleVT())
                     : LLT::scalar(Info.memVT.getStoreSizeInBits());
     MIB.addMemOperand(MF->getMachineMemOperand(MachinePointerInfo(Info.ptrVal),
-                                               Info.flags, MemTy, Alignment));
+                                               Info.flags, MemTy, Alignment,
+                                               CI.getAAMetadata()));
   }
 
   return true;
index a68be9c..9c6c8be 100644 (file)
@@ -1,4 +1,5 @@
 ; RUN: llc -global-isel=0 -march=amdgcn -mcpu=bonaire -stop-before=machine-scheduler < %s | FileCheck -enable-var-scope -check-prefixes=MIR %s
+; RUN: llc -global-isel=1 -march=amdgcn -mcpu=bonaire -stop-before=machine-scheduler < %s | FileCheck -enable-var-scope -check-prefixes=MIR %s
 
 ; Make sure !noalias metadata is passed through from target intrinsics