Compiler projects using llvm
; RUN: opt -mtriple=amdgcn-amd-amdhsa -separate-const-offset-from-gep %s

@gv = external local_unnamed_addr addrspace(3) global [16 x i8], align 16

; The add referencing itself is illegal, except it's in an unreachable block.
define weak amdgpu_kernel void @foo() {
entry:
  ret void

for.body28.i:                                     ; preds = %for.body28.i
  %arrayidx3389.i = getelementptr inbounds [16 x i8], [16 x i8] addrspace(3)* @gv, i32 0, i32 %inc38.7.i.1
  %inc38.7.i.1 = add nuw nsw i32 %inc38.7.i.1, 16
  br label %for.body28.i
}