Richard Diamond | 4bf015c | 2020-03-02 12:08:57 -0600 | [diff] [blame] | 1 | ; Test that we don't crash. |
| 2 | ; RUN: opt < %s -alignment-from-assumptions -S |
| 3 | ; RUN: opt < %s -passes=alignment-from-assumptions -S |
| 4 | |
| 5 | target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-ni:7" |
| 6 | |
| 7 | %"core::str::CharIndices.29.66.90.114.138.149.165.173.181.197.205.213.229.387.398" = type { [0 x i64], i64, [0 x i64], { i8*, i8* }, [0 x i64] } |
| 8 | %"unwind::libunwind::_Unwind_Exception.9.51.75.99.123.147.163.171.179.195.203.211.227.385.396" = type { [0 x i64], i64, [0 x i64], void (i32, %"unwind::libunwind::_Unwind_Exception.9.51.75.99.123.147.163.171.179.195.203.211.227.385.396"*)*, [0 x i64], [6 x i64], [0 x i64] } |
| 9 | %"unwind::libunwind::_Unwind_Context.10.52.76.100.124.148.164.172.180.196.204.212.228.386.397" = type { [0 x i8] } |
| 10 | |
| 11 | define void @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h7b1d039c7ff5e1feE"() { |
| 12 | start: |
| 13 | %_15.i.i = alloca %"core::str::CharIndices.29.66.90.114.138.149.165.173.181.197.205.213.229.387.398", align 8, addrspace(5) |
| 14 | br label %bb12.i.i |
| 15 | |
| 16 | bb12.i.i: ; preds = %start |
| 17 | %0 = addrspacecast %"core::str::CharIndices.29.66.90.114.138.149.165.173.181.197.205.213.229.387.398" addrspace(5)* %_15.i.i to %"core::str::CharIndices.29.66.90.114.138.149.165.173.181.197.205.213.229.387.398"* |
| 18 | %ptrint53.i.i = ptrtoint %"core::str::CharIndices.29.66.90.114.138.149.165.173.181.197.205.213.229.387.398"* %0 to i64 |
| 19 | %maskedptr54.i.i = and i64 %ptrint53.i.i, 7 |
| 20 | %maskcond55.i.i = icmp eq i64 %maskedptr54.i.i, 0 |
| 21 | call void @llvm.assume(i1 %maskcond55.i.i) |
| 22 | br i1 undef, label %bb20.i.i, label %bb3.i.i.i.i.i.preheader.i.i |
| 23 | |
| 24 | bb3.i.i.i.i.i.preheader.i.i: ; preds = %bb12.i.i |
| 25 | %1 = getelementptr inbounds %"core::str::CharIndices.29.66.90.114.138.149.165.173.181.197.205.213.229.387.398", %"core::str::CharIndices.29.66.90.114.138.149.165.173.181.197.205.213.229.387.398"* %0, i64 0, i32 0, i64 0 |
| 26 | store i64 0, i64* %1, align 8 |
| 27 | unreachable |
| 28 | |
| 29 | bb20.i.i: ; preds = %bb12.i.i |
| 30 | ret void |
| 31 | } |
| 32 | |
| 33 | declare void @llvm.assume(i1) |