34 lines · plain
1; This is really testing that instcombine preserves analyses correctly, so we2; don't care much about the code other than it is something instcombine can3; transform.4;5; RUN: opt < %s -disable-output -debug-pass-manager 2>&1 -aa-pipeline=basic-aa,globals-aa \6; RUN: -passes='require<globals-aa>,function(require<aa>,instcombine),function(require<aa>)' \7; RUN: | FileCheck %s --check-prefix=AA8; AA: Running analysis: GlobalsAA9; AA: Running analysis: AAManager10; AA: Running analysis: BasicAA11; AA: Running pass: InstCombinePass on test12; AA-NOT: Invalidating analysis: GlobalsAA13; AA-NOT: Invalidating analysis: AAmanager14; AA-NOT: Invalidating analysis: BasicAA15; AA: Running pass: RequireAnalysisPass<{{.*}}AAManager16; AA-NOT: Running analysis: GlobalsAA17; AA-NOT: Running analysis: AAmanager18; AA-NOT: Running analysis: BasicAA19;20; RUN: opt < %s -disable-output -debug-pass-manager 2>&1 \21; RUN: -passes='require<domtree>,instcombine,require<domtree>' \22; RUN: | FileCheck %s --check-prefix=DT23; DT: Running analysis: DominatorTreeAnalysis24; DT: Running pass: InstCombinePass on test25; DT-NOT: Invalidating analysis: DominatorTreeAnalysis26; DT: Running pass: RequireAnalysisPass<{{.*}}DominatorTreeAnalysis27; DT-NOT: Running analysis: DominatorTreeAnalysis28 29define i32 @test(i32 %A) {30 %B = add i32 %A, 531 %C = add i32 %B, -532 ret i32 %C33}34