mbrkusanin wrote:

> > > Why is so there so much special casing in the assembler/disassembler?
> > 
> > 
> > I'm not an original author of these change, but from what I understand it 
> > is a workaround to handle VOP3 instructions which have a single source but 
> > require the use of two bits from OPSEL. `V_CVT_F32_FP8` has one source but 
> > is using two bits from OPSEL to specify which part from 32 bit register to 
> > convert ([7:0], [15:8], [23: 16] or 31 : 24]). And since OPSELs are 
> > correlated with sources/destination (one bit from OPSEL with one 
> > soruce/destination) these is required without any deeper changes to 
> > TableGen.
> > I'm open to change TableGen, but I would prefer to create new ticket and do 
> > it with new PR. These change may take longer than one day and we would like 
> > to have these PR merged before LLVM branching.
> 
> Correct, some of these instructions use opsel[1] which in LLVM in stored in 
> src1_modifiers so a dummy src1 is used. And as far as I know we can not have 
> src1_modfiers without src1 operand.

Similarly V_CVT_SR_BF8_F32 for example uses opsel[2] and opsel[3] so we need 
src2_modifiers and src2.

https://github.com/llvm/llvm-project/pull/78414
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to