On Di, 2026-06-09 at 01:08 +0100, andy pugh wrote:
> On Mon, 8 Jun 2026 at 11:40, Bertho Stultiens <[email protected]>
> wrote:
> > 
> > I'm not sure I can "see" the problem anymore ;-)
> 
> > > (U8)((U32)((U32)((U32)((U32)((U32)((U32)((U32)((S32)(((FLAG)((S32
> > > )((S32)(((FLAG)((S32)
> > > ((S32)(((FLAG)((S32)((S32)(tmp_Switch1_bhzg ? 1 : 0)
> 
> I wonder if it matters, or if the compiler loses it all?
> 
> I might need to manually strip the casts, compile both and inspect.
> (And if it is actually different, and worse, have words. we pay for
> this)
> 
> 

Most of the casts just don't make much sense (and are of no
consequence), it just populates a uint8 bitfield with the results of
various comparisons. 

the last part (bit 7) reads

    (U32)
    (
     (S32)
     (
      (
       ((U32)Var1 == Lv2) ? ((S32)1) : ((S32)0)) * 64)
     )

so depending on Var1==Lv2 being nonzero it takes either 0 or 64 as
signed 32bit int, casts that to unsigned 32bit, adds it to the results
of the previous clauses. finally the result is cast to 8 bit and put
into tmp_VectorConcatenate_atij[1].

I guess human would write that differently.


-- 
Robert Schöftner <[email protected]>


_______________________________________________
Emc-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to