; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -S -mtriple=amdgcn-unknown-amdhsa -passes=amdgpu-promote-alloca < %s | FileCheck %s ; Checks that certain CFGs are handled correctly. define amdgpu_kernel void @chain(i32 %init, i32 %i.1, i32 %i.2) { ; CHECK-LABEL: @chain( ; CHECK-NEXT: entry: ; CHECK-NEXT: [[A:%.*]] = freeze <4 x i8> poison ; CHECK-NEXT: [[TMP0:%.*]] = bitcast i32 [[INIT:%.*]] to <4 x i8> ; CHECK-NEXT: br label [[BB1:%.*]] ; CHECK: bb1: ; CHECK-NEXT: [[TMP1:%.*]] = extractelement <4 x i8> [[TMP0]], i32 [[I_1:%.*]] ; CHECK-NEXT: br label [[BB2:%.*]] ; CHECK: bb2: ; CHECK-NEXT: [[TMP2:%.*]] = extractelement <4 x i8> [[TMP0]], i32 [[I_2:%.*]] ; CHECK-NEXT: ret void ; entry: %a = alloca [4 x i8], align 4, addrspace(5) store i32 %init, ptr addrspace(5) %a br label %bb1 bb1: %p.1 = getelementptr i8, ptr addrspace(5) %a, i32 %i.1 %x.1 = load i8, ptr addrspace(5) %p.1 br label %bb2 bb2: %p.2 = getelementptr i8, ptr addrspace(5) %a, i32 %i.2 %x.2 = load i8, ptr addrspace(5) %p.2 ret void }