[llvm] [AMDGPU] Add dereferenceable retAttr to a call to llvm.amdgcn.implicitarg.ptr (PR #182206)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 3 01:08:23 PST 2026


================
@@ -0,0 +1,67 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
+; RUN: opt -S -passes='instcombine' -mtriple=amdgcn-amd-amdhsa < %s | FileCheck %s --check-prefix=DEREF
+
+; InstCombine added retattr dereferenceable(bytes) to a "call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()".
+
+define ptr addrspace(4) @foo() {
+; DEREF-LABEL: define ptr addrspace(4) @foo() {
+; DEREF-NEXT:  [[ENTRY:.*:]]
+; DEREF-NEXT:    [[TMP:%.*]] = tail call dereferenceable(256) ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()
+; DEREF-NEXT:    [[TMP0:%.*]] = getelementptr inbounds nuw i8, ptr addrspace(4) [[TMP]], i64 12
+; DEREF-NEXT:    ret ptr addrspace(4) [[TMP0]]
+;
+entry:
+  %tmp = tail call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()
+  %0 = getelementptr inbounds nuw i8, ptr addrspace(4) %tmp, i64 12
----------------
arsenm wrote:

Don't need the getelementptrs 

https://github.com/llvm/llvm-project/pull/182206


More information about the llvm-commits mailing list