brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 4a5cddb Raw
48 lines · plain
1; RUN: llc -O0 -mtriple=x86_64-linux -asm-verbose=false -verify-machineinstrs < %s | FileCheck %s2; RUN: llc -O0 -mtriple=x86_64-windows-itanium -asm-verbose=false -verify-machineinstrs < %s | FileCheck %s3 4; Fast-isel mustn't add a block to the MBB successor/predecessor list twice.5; The machine verifier will catch and complain about this case.6; CHECK-LABEL: baz7; CHECK: retq8define void @baz(i1 %arg) {9entry:10  br i1 %arg, label %exit, label %exit11 12exit:13  ret void14}15 16; rdar://833710817 18; Fast-isel shouldn't try to look through the compare because it's in a19; different basic block, so its operands aren't necessarily exported20; for cross-block usage.21 22; CHECK: movb    %al, [[OFS:[0-9]*]](%rsp)23; CHECK: callq   {{_?}}bar24; CHECK: movb    [[OFS]](%rsp), %al25 26declare void @bar()27 28define void @foo(i32 %a, i32 %b) nounwind personality ptr @__gxx_personality_v0 {29entry:30  %q = add i32 %a, 731  %r = add i32 %b, 932  %t = icmp ult i32 %q, %r33  invoke void @bar() to label %next unwind label %unw34next:35  br i1 %t, label %true, label %return36true:37  call void @bar()38  br label %return39return:40  ret void41unw:42  %exn = landingpad {ptr, i32}43            cleanup44  unreachable45}46 47declare i32 @__gxx_personality_v0(...)48