blob: d895e4049e15dcee2249b3909516fb42ae798c07 [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc --mtriple=xtensa < %s | FileCheck %s --check-prefix=XTENSA
; RUN: llc --mtriple=xtensa -mattr=+debug < %s | FileCheck %s --check-prefix=XTENSA-DEBUG
; RUN: llc --mtriple=xtensa -mattr=+debug,+density < %s | FileCheck %s --check-prefix=XTENSA-DEBUG-DENSITY
; RUN: llc --mtriple=xtensa -mattr=+density < %s | FileCheck %s --check-prefix=XTENSA-DENSITY
define void @t() noinline optnone {
; XTENSA-LABEL: t:
; XTENSA: .cfi_startproc
; XTENSA-NEXT: # %bb.0: # %entry
; XTENSA-NEXT: addi a8, a1, -16
; XTENSA-NEXT: or a1, a8, a8
; XTENSA-NEXT: .cfi_def_cfa_offset 16
; XTENSA-NEXT: movi a8, 0
; XTENSA-NEXT: memw
; XTENSA-NEXT: s32i a8, a1, 0
; XTENSA-NEXT: ill
; XTENSA-NEXT: addi a8, a1, 16
; XTENSA-NEXT: or a1, a8, a8
; XTENSA-NEXT: ret
;
; XTENSA-DEBUG-LABEL: t:
; XTENSA-DEBUG: .cfi_startproc
; XTENSA-DEBUG-NEXT: # %bb.0: # %entry
; XTENSA-DEBUG-NEXT: addi a8, a1, -16
; XTENSA-DEBUG-NEXT: or a1, a8, a8
; XTENSA-DEBUG-NEXT: .cfi_def_cfa_offset 16
; XTENSA-DEBUG-NEXT: movi a8, 0
; XTENSA-DEBUG-NEXT: memw
; XTENSA-DEBUG-NEXT: s32i a8, a1, 0
; XTENSA-DEBUG-NEXT: ill
; XTENSA-DEBUG-NEXT: addi a8, a1, 16
; XTENSA-DEBUG-NEXT: or a1, a8, a8
; XTENSA-DEBUG-NEXT: ret
;
; XTENSA-DEBUG-DENSITY-LABEL: t:
; XTENSA-DEBUG-DENSITY: .cfi_startproc
; XTENSA-DEBUG-DENSITY-NEXT: # %bb.0: # %entry
; XTENSA-DEBUG-DENSITY-NEXT: addi a8, a1, -16
; XTENSA-DEBUG-DENSITY-NEXT: or a1, a8, a8
; XTENSA-DEBUG-DENSITY-NEXT: .cfi_def_cfa_offset 16
; XTENSA-DEBUG-DENSITY-NEXT: movi a8, 0
; XTENSA-DEBUG-DENSITY-NEXT: memw
; XTENSA-DEBUG-DENSITY-NEXT: s32i a8, a1, 0
; XTENSA-DEBUG-DENSITY-NEXT: ill.n
; XTENSA-DEBUG-DENSITY-NEXT: addi a8, a1, 16
; XTENSA-DEBUG-DENSITY-NEXT: or a1, a8, a8
; XTENSA-DEBUG-DENSITY-NEXT: ret
;
; XTENSA-DENSITY-LABEL: t:
; XTENSA-DENSITY: .cfi_startproc
; XTENSA-DENSITY-NEXT: # %bb.0: # %entry
; XTENSA-DENSITY-NEXT: addi a8, a1, -16
; XTENSA-DENSITY-NEXT: or a1, a8, a8
; XTENSA-DENSITY-NEXT: .cfi_def_cfa_offset 16
; XTENSA-DENSITY-NEXT: movi a8, 0
; XTENSA-DENSITY-NEXT: memw
; XTENSA-DENSITY-NEXT: s32i a8, a1, 0
; XTENSA-DENSITY-NEXT: ill.n
; XTENSA-DENSITY-NEXT: addi a8, a1, 16
; XTENSA-DENSITY-NEXT: or a1, a8, a8
; XTENSA-DENSITY-NEXT: ret
entry:
%tmp = alloca i32, align 4
store volatile i32 0, ptr %tmp, align 4
call void @llvm.trap()
ret void
}
define void @t2() {
; XTENSA-LABEL: t2:
; XTENSA: .cfi_startproc
; XTENSA-NEXT: # %bb.0: # %entry
; XTENSA-NEXT: addi a8, a1, -16
; XTENSA-NEXT: or a1, a8, a8
; XTENSA-NEXT: .cfi_def_cfa_offset 16
; XTENSA-NEXT: movi a8, 0
; XTENSA-NEXT: memw
; XTENSA-NEXT: s32i a8, a1, 0
; XTENSA-NEXT: ill
; XTENSA-NEXT: addi a8, a1, 16
; XTENSA-NEXT: or a1, a8, a8
; XTENSA-NEXT: ret
;
; XTENSA-DEBUG-LABEL: t2:
; XTENSA-DEBUG: .cfi_startproc
; XTENSA-DEBUG-NEXT: # %bb.0: # %entry
; XTENSA-DEBUG-NEXT: addi a8, a1, -16
; XTENSA-DEBUG-NEXT: or a1, a8, a8
; XTENSA-DEBUG-NEXT: .cfi_def_cfa_offset 16
; XTENSA-DEBUG-NEXT: movi a8, 0
; XTENSA-DEBUG-NEXT: memw
; XTENSA-DEBUG-NEXT: s32i a8, a1, 0
; XTENSA-DEBUG-NEXT: break 1, 15
; XTENSA-DEBUG-NEXT: addi a8, a1, 16
; XTENSA-DEBUG-NEXT: or a1, a8, a8
; XTENSA-DEBUG-NEXT: ret
;
; XTENSA-DEBUG-DENSITY-LABEL: t2:
; XTENSA-DEBUG-DENSITY: .cfi_startproc
; XTENSA-DEBUG-DENSITY-NEXT: # %bb.0: # %entry
; XTENSA-DEBUG-DENSITY-NEXT: addi a8, a1, -16
; XTENSA-DEBUG-DENSITY-NEXT: or a1, a8, a8
; XTENSA-DEBUG-DENSITY-NEXT: .cfi_def_cfa_offset 16
; XTENSA-DEBUG-DENSITY-NEXT: movi a8, 0
; XTENSA-DEBUG-DENSITY-NEXT: memw
; XTENSA-DEBUG-DENSITY-NEXT: s32i a8, a1, 0
; XTENSA-DEBUG-DENSITY-NEXT: break.n 1
; XTENSA-DEBUG-DENSITY-NEXT: addi a8, a1, 16
; XTENSA-DEBUG-DENSITY-NEXT: or a1, a8, a8
; XTENSA-DEBUG-DENSITY-NEXT: ret
;
; XTENSA-DENSITY-LABEL: t2:
; XTENSA-DENSITY: .cfi_startproc
; XTENSA-DENSITY-NEXT: # %bb.0: # %entry
; XTENSA-DENSITY-NEXT: addi a8, a1, -16
; XTENSA-DENSITY-NEXT: or a1, a8, a8
; XTENSA-DENSITY-NEXT: .cfi_def_cfa_offset 16
; XTENSA-DENSITY-NEXT: movi a8, 0
; XTENSA-DENSITY-NEXT: memw
; XTENSA-DENSITY-NEXT: s32i a8, a1, 0
; XTENSA-DENSITY-NEXT: ill.n
; XTENSA-DENSITY-NEXT: addi a8, a1, 16
; XTENSA-DENSITY-NEXT: or a1, a8, a8
; XTENSA-DENSITY-NEXT: ret
entry:
%tmp = alloca i32, align 4
store volatile i32 0, ptr %tmp, align 4
call void @llvm.debugtrap()
ret void
}
declare void @llvm.trap() nounwind
declare void @llvm.debugtrap() nounwind