Compiler projects using llvm
; llvm-reduce shouldn't remove arguments of debug intrinsics, because the resulting module will be ill-formed.
;
; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=arguments --test FileCheck --test-arg --check-prefixes=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s --output %t
; RUN: FileCheck --check-prefix=CHECK-FINAL %s < %t

; CHECK-INTERESTINGNESS: declare void @llvm.dbg.addr
; CHECK-FINAL: declare void @llvm.dbg.addr(metadata, metadata, metadata)
declare void @llvm.dbg.addr(metadata, metadata, metadata)
; CHECK-INTERESTINGNESS: declare void @llvm.dbg.declare
; CHECK-FINAL: declare void @llvm.dbg.declare(metadata, metadata, metadata)
declare void @llvm.dbg.declare(metadata, metadata, metadata)
; CHECK-INTERESTINGNESS: declare void @llvm.dbg.value
; CHECK-FINAL: declare void @llvm.dbg.value(metadata, metadata, metadata)
declare void @llvm.dbg.value(metadata, metadata, metadata)