10bc5436aSSamuel; Test that llvm-reduce can remove uninteresting function arguments from function definitions as well as their calls.
20bc5436aSSamuel;
3*1437a834SRushi Bhamani; RUN: llvm-reduce --abort-on-invalid-reduction --test FileCheck --test-arg --check-prefix=CHECK-ALL --test-arg %s --test-arg --input-file %s -o %t
40bc5436aSSamuel; RUN: FileCheck --check-prefix=CHECK-ALL %s < %t
50bc5436aSSamuel
60bc5436aSSamuel; CHECK-ALL: @uninteresting1 = global
70bc5436aSSamuel; CHECK-ALL: @uninteresting2 = global
80bc5436aSSamuel; CHECK-ALL: @uninteresting3 = global
90bc5436aSSamuel@uninteresting1 = global i32 0, align 4
100bc5436aSSamuel@uninteresting2 = global i32 0, align 4
110bc5436aSSamuel@uninteresting3 = global i32 0, align 4
120bc5436aSSamuel
134982d8acSArthur Eubanksdeclare void @use(ptr, ptr, ptr)
140bc5436aSSamuel
150bc5436aSSamuel; CHECK-LABEL: @interesting()
160bc5436aSSamueldefine void @interesting() {
170bc5436aSSamuelentry:
184982d8acSArthur Eubanks  ; CHECK-ALL: call void @use(ptr @uninteresting1, ptr @uninteresting2, ptr @uninteresting3)
194982d8acSArthur Eubanks  call void @use(ptr @uninteresting1, ptr @uninteresting2, ptr @uninteresting3)
204982d8acSArthur Eubanks  call void @use(ptr @uninteresting1, ptr @uninteresting2, ptr @uninteresting3)
214982d8acSArthur Eubanks  call void @use(ptr @uninteresting1, ptr @uninteresting2, ptr @uninteresting3)
220bc5436aSSamuel  ret void
230bc5436aSSamuel}
24