| ; RUN: opt -mtriple=amdgcn-amd-amdhsa -passes=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], ptr 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 | |
| } |