Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 3 of 3 for popcntw (0.27 sec)

  1. src/cmd/compile/internal/ssa/_gen/PPC64.rules

    (Ctz64NonZero ...) => (Ctz64 ...)
    
    (Ctz64 x) && buildcfg.GOPPC64<=8 => (POPCNTD (ANDN <typ.Int64> (ADDconst <typ.Int64> [-1] x) x))
    (Ctz64 x) => (CNTTZD x)
    (Ctz32 x) && buildcfg.GOPPC64<=8 => (POPCNTW (MOVWZreg (ANDN <typ.Int> (ADDconst <typ.Int> [-1] x) x)))
    (Ctz32 x) => (CNTTZW (MOVWZreg x))
    (Ctz16 x) => (POPCNTW (MOVHZreg (ANDN <typ.Int16> (ADDconst <typ.Int16> [-1] x) x)))
    (Ctz8 x)  => (POPCNTB (MOVBZreg (ANDN <typ.UInt8> (ADDconst <typ.UInt8> [-1] x) x)))
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:02:52 UTC 2024
    - 53.2K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/rewritePPC64.go

    		v.AddArg2(y, x)
    		return true
    	}
    }
    func rewriteValuePPC64_OpCtz16(v *Value) bool {
    	v_0 := v.Args[0]
    	b := v.Block
    	typ := &b.Func.Config.Types
    	// match: (Ctz16 x)
    	// result: (POPCNTW (MOVHZreg (ANDN <typ.Int16> (ADDconst <typ.Int16> [-1] x) x)))
    	for {
    		x := v_0
    		v.reset(OpPPC64POPCNTW)
    		v0 := b.NewValue0(v.Pos, OpPPC64MOVHZreg, typ.Int64)
    		v1 := b.NewValue0(v.Pos, OpPPC64ANDN, typ.Int16)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:02:52 UTC 2024
    - 360.2K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssagen/ssa.go

    			bFalse := s.f.NewBlock(ssa.BlockPlain)
    			bEnd := s.f.NewBlock(ssa.BlockPlain)
    			b.AddEdgeTo(bTrue)
    			b.AddEdgeTo(bFalse)
    			b.Likely = ssa.BranchLikely // most machines have popcnt nowadays
    
    			// We have the intrinsic - use it directly.
    			s.startBlock(bTrue)
    			s.vars[n] = s.newValue1(op, types.Types[types.TINT], args[0])
    			s.endBlock().AddEdgeTo(bEnd)
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jun 10 19:44:43 UTC 2024
    - 284.9K bytes
    - Viewed (0)
Back to top