35 lines · plain
1; RUN: llc -mtriple=x86_64-linux-gnu %s -o - -verify-machineinstrs | FileCheck %s2 3define i32 @tail_merge_unreachable(i32 %i, i1 %arg) {4entry:5 br i1 %arg, label %sw, label %end6sw:7 switch i32 %i, label %end [8 i32 99, label %sw.bb9 i32 98, label %sw.bb10 i32 101, label %sw.bb11 i32 97, label %sw.bb212 i32 96, label %sw.bb213 i32 100, label %sw.bb214 ]15sw.bb:16 unreachable17sw.bb2:18 unreachable19end:20 %p = phi i32 [ 1, %sw ], [ 0, %entry ]21 ret i32 %p22 23; CHECK-LABEL: tail_merge_unreachable:24; Range Check25; CHECK: addl $-9626; CHECK: cmpl $527; CHECK: jbe [[JUMP_TABLE_BLOCK:[.][A-Za-z0-9_]+]]28; CHECK: retq29; CHECK: [[JUMP_TABLE_BLOCK]]:30; CHECK: btl31; CHECK: jae [[UNREACHABLE_BLOCK:[.][A-Za-z0-9_]+]]32; CHECK: [[UNREACHABLE_BLOCK]]:33; CHECK: .Lfunc_end034}35