| ; This test ensures the @llvm.debugtrap() call is not removed when generating |
| ; the 'pop' instruction to restore the callee saved registers on ARM. |
| |
| ; RUN: llc < %s -mtriple=armv4 -O0 -filetype=asm | FileCheck --check-prefixes=CHECK,V4 %s |
| ; RUN: llc < %s -mtriple=armv5 -O0 -filetype=asm | FileCheck --check-prefixes=CHECK,V5 %s |
| ; RUN: llc < %s -mtriple=thumbv4 -O0 -filetype=asm | FileCheck --check-prefixes=CHECK,V4 %s |
| ; RUN: llc < %s -mtriple=thumbv5 -O0 -filetype=asm | FileCheck --check-prefixes=CHECK,V5 %s |
| |
| declare void @llvm.debugtrap() nounwind |
| declare void @foo() nounwind |
| |
| define void @test() nounwind { |
| entry: |
| ; CHECK: bl foo |
| ; V4-NEXT: udf #254 |
| ; V5-NEXT: bkpt #0 |
| ; CHECK-NEXT: pop |
| call void @foo() |
| call void @llvm.debugtrap() |
| ret void |
| } |