29 lines · plain
1; RUN: llc -mtriple=hexagon -O2 -disable-cgp < %s2; REQUIRES: asserts3;4; Tail duplication can ignore subregister information on PHI nodes, and as5; a result, generate COPY instructions between registers of different classes.6; This could lead to HexagonInstrInfo::copyPhysReg aborting on an unhandled7; src/dst combination.8;9define i32 @foo(i32 %x, i64 %y) nounwind {10entry:11 %a = icmp slt i32 %x, 012 %lo = trunc i64 %y to i3213 br i1 %a, label %next, label %tail14tail:15 br label %join16next:17 %c = icmp eq i32 %x, 018 br i1 %c, label %b1, label %tail19b1:20 %t1 = lshr i64 %y, 3221 %hi = trunc i64 %t1 to i3222 br label %join23join:24 %val = phi i32 [ %hi, %b1 ], [ %lo, %tail ]25 ret i32 %val26}27 28 29