File tree Expand file tree Collapse file tree 2 files changed +32
-0
lines changed
Expand file tree Collapse file tree 2 files changed +32
-0
lines changed Original file line number Diff line number Diff line change 1+ ; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=operands-zero --test FileCheck --test-arg %s --test-arg --input-file %s -o %t
2+ ; RUN: FileCheck --check-prefixes=CHECK,ZERO %s < %t
3+
4+ ; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=operands-one --test FileCheck --test-arg %s --test-arg --input-file %s -o %t
5+ ; RUN: FileCheck --check-prefixes=CHECK,ONE %s < %t
6+
7+ declare void @uses_ext_ty (target ("sometarget.sometype" ))
8+
9+ ; CHECK-LABEL: @foo(
10+ ; ZERO: call void @uses_ext_ty(target("sometarget.sometype") poison)
11+ ; ONE: call void @uses_ext_ty(target("sometarget.sometype") %arg)
12+ define void @foo (target ("sometarget.sometype" ) %arg ) {
13+ call void @uses_ext_ty (target ("sometarget.sometype" ) %arg )
14+ ret void
15+ }
16+
17+ declare void @uses_zeroinit_ext_ty (target ("sometarget.sometype" ))
18+
19+ ; CHECK-LABEL: @bar(
20+ ; ZERO: call void @uses_zeroinit_ext_ty(target("spirv.sometype") zeroinitializer)
21+ ; ONE: call void @uses_zeroinit_ext_ty(target("spirv.sometype") %arg)
22+ define void @bar (target ("spirv.sometype" ) %arg ) {
23+ call void @uses_zeroinit_ext_ty (target ("spirv.sometype" ) %arg )
24+ ret void
25+ }
Original file line number Diff line number Diff line change @@ -135,6 +135,13 @@ void llvm::reduceOperandsZeroDeltaPass(TestRunner &Test) {
135135 if (switchCaseExists (Op, ConstantInt::get (IntTy, 0 )))
136136 return nullptr ;
137137 // Don't replace existing zeroes.
138+
139+ if (auto *TET = dyn_cast<TargetExtType>(Op->getType ())) {
140+ if (TET->hasProperty (TargetExtType::HasZeroInit))
141+ return ConstantTargetNone::get (TET);
142+ return PoisonValue::get (TET);
143+ }
144+
138145 return isZero (Op) ? nullptr : Constant::getNullValue (Op->getType ());
139146 };
140147 runDeltaPass (
You can’t perform that action at this time.
0 commit comments