1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -verify-machineinstrs -o /dev/null < %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs -o /dev/null < %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; The register coalescer introduces a verifier error which later 5*9880d681SAndroid Build Coastguard Worker; results in a crash during scheduling. 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.amdgcn.workitem.id.x() #0 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Workerdefine void @reg_coalescer_breaks_dead(<2 x i32> addrspace(1)* nocapture readonly %arg, i32 %arg1, i32 %arg2, i32 %arg3) #1 { 10*9880d681SAndroid Build Coastguard Workerbb: 11*9880d681SAndroid Build Coastguard Worker %id.x = call i32 @llvm.amdgcn.workitem.id.x() 12*9880d681SAndroid Build Coastguard Worker %cmp0 = icmp eq i32 %id.x, 0 13*9880d681SAndroid Build Coastguard Worker br i1 %cmp0, label %bb3, label %bb4 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerbb3: ; preds = %bb 16*9880d681SAndroid Build Coastguard Worker %tmp = ashr exact i32 undef, 8 17*9880d681SAndroid Build Coastguard Worker br label %bb6 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerbb4: ; preds = %bb6, %bb 20*9880d681SAndroid Build Coastguard Worker %tmp5 = phi <2 x i32> [ zeroinitializer, %bb ], [ %tmp13, %bb6 ] 21*9880d681SAndroid Build Coastguard Worker br i1 undef, label %bb15, label %bb16 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workerbb6: ; preds = %bb6, %bb3 24*9880d681SAndroid Build Coastguard Worker %tmp7 = phi <2 x i32> [ zeroinitializer, %bb3 ], [ %tmp13, %bb6 ] 25*9880d681SAndroid Build Coastguard Worker %tmp8 = add nsw i32 0, %arg1 26*9880d681SAndroid Build Coastguard Worker %tmp9 = add nsw i32 %tmp8, 0 27*9880d681SAndroid Build Coastguard Worker %tmp10 = sext i32 %tmp9 to i64 28*9880d681SAndroid Build Coastguard Worker %tmp11 = getelementptr inbounds <2 x i32>, <2 x i32> addrspace(1)* %arg, i64 %tmp10 29*9880d681SAndroid Build Coastguard Worker %tmp12 = load <2 x i32>, <2 x i32> addrspace(1)* %tmp11, align 8 30*9880d681SAndroid Build Coastguard Worker %tmp13 = add <2 x i32> %tmp12, %tmp7 31*9880d681SAndroid Build Coastguard Worker %tmp14 = icmp slt i32 undef, %arg2 32*9880d681SAndroid Build Coastguard Worker br i1 %tmp14, label %bb6, label %bb4 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerbb15: ; preds = %bb4 35*9880d681SAndroid Build Coastguard Worker store <2 x i32> %tmp5, <2 x i32> addrspace(3)* undef, align 8 36*9880d681SAndroid Build Coastguard Worker br label %bb16 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workerbb16: ; preds = %bb15, %bb4 39*9880d681SAndroid Build Coastguard Worker unreachable 40*9880d681SAndroid Build Coastguard Worker} 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind readnone } 43*9880d681SAndroid Build Coastguard Workerattributes #1 = { nounwind } 44