72 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes=jump-threading -S < %s | FileCheck %s3 4; The indirectbr needs a block address. The add can't produce that.5; This shouldn't crash.6define void @cast_with_binop() {7; CHECK-LABEL: @cast_with_binop(8; CHECK-NEXT: bb:9; CHECK-NEXT: [[OP:%.*]] = add i64 ptrtoint (ptr inttoptr (i32 1 to ptr) to i64), undef10; CHECK-NEXT: [[CAST:%.*]] = inttoptr i64 [[OP]] to ptr11; CHECK-NEXT: indirectbr ptr [[CAST]], [label [[BB3:%.*]], label %bb2]12; CHECK: bb2:13; CHECK-NEXT: unreachable14; CHECK: bb3:15; CHECK-NEXT: ret void16;17bb:18 %op = add i64 ptrtoint (ptr inttoptr (i32 1 to ptr) to i64), undef19 %cast = inttoptr i64 %op to ptr20 indirectbr ptr %cast, [label %bb3, label %bb2]21bb2:22 unreachable23bb3:24 ret void25}26 27; The indirectbr needs a block address. The add can't produce that.28; This shouldn't crash.29define void @cast_with_i1(i1 %x, i1 %y) {30; CHECK-LABEL: @cast_with_i1(31; CHECK-NEXT: bb:32; CHECK-NEXT: [[OP:%.*]] = add i1 [[X:%.*]], [[Y:%.*]]33; CHECK-NEXT: [[CAST:%.*]] = inttoptr i1 [[OP]] to ptr34; CHECK-NEXT: indirectbr ptr [[CAST]], [label [[BB3:%.*]], label %bb2]35; CHECK: bb2:36; CHECK-NEXT: unreachable37; CHECK: bb3:38; CHECK-NEXT: ret void39;40bb:41 %op = add i1 %x, %y42 %cast = inttoptr i1 %op to ptr43 indirectbr ptr %cast, [label %bb3, label %bb2]44bb2:45 unreachable46bb3:47 ret void48}49 50; The indirectbr needs a block address. The cmp can't produce that.51; This shouldn't crash.52define void @cast_with_cmp(i1 %x, i1 %y) {53; CHECK-LABEL: @cast_with_cmp(54; CHECK-NEXT: bb:55; CHECK-NEXT: [[OP:%.*]] = icmp slt i1 [[X:%.*]], [[Y:%.*]]56; CHECK-NEXT: [[CAST:%.*]] = inttoptr i1 [[OP]] to ptr57; CHECK-NEXT: indirectbr ptr [[CAST]], [label [[BB3:%.*]], label %bb2]58; CHECK: bb2:59; CHECK-NEXT: unreachable60; CHECK: bb3:61; CHECK-NEXT: ret void62;63bb:64 %op = icmp slt i1 %x, %y65 %cast = inttoptr i1 %op to ptr66 indirectbr ptr %cast, [label %bb3, label %bb2]67bb2:68 unreachable69bb3:70 ret void71}72