brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · ba5bcf4 Raw
60 lines · plain
1; RUN: llvm-reduce %s -o %t --abort-on-invalid-reduction --delta-passes=operands-skip --test FileCheck --test-arg %s --test-arg --match-full-lines --test-arg --check-prefix=INTERESTING --test-arg --input-file2; RUN: FileCheck %s --input-file %t --check-prefixes=REDUCED3 4; INTERESTING: store i32 43, ptr {{(%imm|%indirect)}}, align 45; REDUCED:     store i32 43, ptr %imm, align 46 7; INTERESTING: store i32 44, ptr {{(%imm|%indirect|%phi)}}, align 48; REDUCED:     store i32 44, ptr %phi, align 49 10; INTERESTING: store i32 45, ptr {{(%imm|%indirect|%phi|%val)}}, align 411; REDUCED:     store i32 45, ptr %val, align 412 13; INTERESTING: store i32 46, ptr {{(%imm|%indirect|%phi|%val|@Global)}}, align 414; REDUCED:     store i32 46, ptr @Global, align 415 16; INTERESTING: store i32 47, ptr {{(%imm|%indirect|%phi|%val|@Global|%arg2)}}, align 417; REDUCED:     store i32 47, ptr %arg2, align 418 19; INTERESTING: store i32 48, ptr {{(%imm|%indirect|%phi|%val|@Global|%arg2|%arg1)}}, align 420; REDUCED:     store i32 48, ptr %arg1, align 421 22; INTERESTING: store i32 49, ptr {{(%imm|%indirect|%phi|%val|@Global|%arg2|%arg1|null)}}, align 423; REDUCED:     store i32 49, ptr null, align 424 25; REDUCED:     store i32 50, ptr %arg1, align 426; REDUCED:     store i32 51, ptr %arg1, align 427 28@Global = global i32 4229 30define void @func(ptr %arg1, ptr %arg2, i1 %arg) {31entry:32  %val = getelementptr i32, ptr getelementptr (i32, ptr @Global, i32 1), i32 233  br i1 %arg, label %branch, label %loop34 35branch:36  %nondominating1 = getelementptr i32, ptr %val, i32 337  br label %loop38 39loop:40  %phi = phi ptr [ null, %entry ], [ %nondominating1, %branch ], [ %nondominating2, %loop ]41  %imm = getelementptr i32, ptr %phi, i32 442  %indirect = getelementptr i32, ptr %imm, i32 543 44  store i32 43, ptr %imm, align 4 ; Don't reduce to %indirect (not "more reduced" than %imm)45  store i32 44, ptr %imm, align 4 ; Reduce to %phi46  store i32 45, ptr %imm, align 4 ; Reduce to %val47  store i32 46, ptr %imm, align 4 ; Reduce to @Global48  store i32 47, ptr %imm, align 4 ; Reduce to %arg149  store i32 48, ptr %imm, align 4 ; Reduce to %arg250  store i32 49, ptr %imm, align 4 ; Reduce to null51 52  %nondominating2 = getelementptr i32, ptr %indirect, i32 653  br i1 %arg, label %loop, label %exit54 55exit:56  store i32 50, ptr %arg2, align 4 ; Reduce to %arg1 (compactify function arguments)57  store i32 51, ptr %arg1, align 4 ; Don't reduce58  ret void59}60