It doesn't actually write anything. This is a pointless divergence from Bifrost.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16585>
<mod name="eq" start="36" size="1"/>
</ins>
- <ins name="DISCARD.f32" title="Discard fragment" opcode="0x20" unit="CVT">
+ <ins name="DISCARD.f32" title="Discard fragment" dests="0" opcode="0x20" unit="CVT">
<desc>
Evaluates the given condition, and if it passes, discards the current
- fragment and terminates the thread. The destination should be set to R60.
- Only valid in a **fragment** shader.
+ fragment and terminates the thread. Only valid in a **fragment** shader.
</desc>
<cmp/>
- <dest>Updated coverage mask (set to R60)</dest>
<src absneg="true" swizzle="true">Left value to compare</src>
<src absneg="true" swizzle="true">Right value to compare</src>
</ins>
}
}
-TEST_F(LowerIsel, DiscardImplicitR60) {
- CASE(bi_discard_f32(b, reg, reg, BI_CMPF_EQ), {
- bi_instr *I = bi_discard_f32(b, reg, reg, BI_CMPF_EQ);
- I->dest[0] = bi_register(60);
- });
-}
-
TEST_F(LowerIsel, JumpsLoweredToBranches) {
bi_block block = { };
I->src[1] = bi_zero();
break;
- /* Needs to output the coverage mask */
- case BI_OPCODE_DISCARD_F32:
- assert(bi_is_null(I->dest[0]));
- I->dest[0] = bi_register(60);
- break;
-
/* Extra source in Valhall not yet modeled in the Bifrost IR */
case BI_OPCODE_ICMP_I32:
I->op = BI_OPCODE_ICMP_U32;