On Don, 2013-02-14 at 16:20 +0100, Christian König wrote: > Am 14.02.2013 15:14, schrieb Michel Dänzer: > > On Don, 2013-02-14 at 14:35 +0100, Michel Dänzer wrote: > >> On Don, 2013-02-14 at 11:43 +0100, Christian König wrote: > >>> + // Only one literal allowed > >>> + break; > >> The same literal could be used for several operands though. :) > > Basically, it seems like we're pretty close to allowing VSrc for all > > VOP* source operands, and doing something like the following > > pseudo-code: > > > > for (each VSrc operand) { > > if (can be encoded as inline constant) > > use inline constant; > > > > if (is immediate && > > (no literal or SGPR yet || value matches literal)) > > use literal; > > > > if (is VGPR || (is SGPR && no SGPR or literal yet)) > > use operand directly; > > > > copy immediate/SGPR to VGPR and use the latter; > > } > > > > And the corresponding simpler logic for SSrc. But I'm not sure if all of > > that can be done in this function. > Yeah, I'm already nearly there (and it also includes folding > ABS/NEG/CLAMP/OMOD). But first things first, I encountered some hangs > with the current code and those need to be fixed first.
Have you fixed the problem I pointed out with the AMDGPU::CLAMP_SI lowering? With the code you posted, I got hands and huge breakage all over the place. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Debian, X and DRI developer _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev