brintos

brintos / llvm-project-archived public Read only

0
0
Text · 785 B · 9afdabd Raw
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