diff --git a/llvm/test/MC/X86/inline-asm-obj.ll b/llvm/test/MC/X86/inline-asm-obj.ll new file mode 100644 index 0000000000000..2ee998dbc45df --- /dev/null +++ b/llvm/test/MC/X86/inline-asm-obj.ll @@ -0,0 +1,13 @@ +; RUN: llc %s -o - | llvm-mc -triple=x86_64-pc-linux -o %t1 -filetype=obj +; RUN: llc %s -o %t2 -filetype=obj +; RUN: cmp %t1 %t2 + +; Test that we can handle inline assembly referring to a temporary label. +; We crashed when using direct object emission in the past. + +target triple = "x86_64-unknown-linux-gnu" + +define void @fj() { + call void asm "bsr $0,%eax", "o"(i32 1) + ret void +}