Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 7 of 7 for encodePPC64RotateMask (0.23 sec)

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

    // Convert simple bit masks to an equivalent rldic[lr] if possible.
    (AND x:(MOVDconst [m]) n) && isPPC64ValidShiftMask(m) => (RLDICL [encodePPC64RotateMask(0,m,64)] n)
    (AND x:(MOVDconst [m]) n) && m != 0 && isPPC64ValidShiftMask(^m) => (RLDICR [encodePPC64RotateMask(0,m,64)] n)
    
    // If the RLDICL does not rotate its value, a shifted value can be merged.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 19:59:38 UTC 2024
    - 3.8K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/rewrite_test.go

    		mask     uint64
    	}{
    		// ((x<<4)&0xFF00)<<4
    		{newPPC64ShiftAuxInt(4, 56, 63, 64), encodePPC64RotateMask(4, 0xFF00, 32), false, 0, 0},
    		// ((x>>4)&0xFF)<<4
    		{newPPC64ShiftAuxInt(4, 56, 63, 64), encodePPC64RotateMask(28, 0x0FFFFFFF, 32), true, 0, 0xFF0},
    		// ((x>>4)&0xFFFF)<<4
    		{newPPC64ShiftAuxInt(4, 48, 63, 64), encodePPC64RotateMask(28, 0xFFFF, 32), true, 0, 0xFFFF0},
    		// ((x>>4)&0xFFFF)<<17
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Apr 15 21:57:02 UTC 2021
    - 6.9K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/rewritePPC64latelower.go

    	// result: (RLDICL [encodePPC64RotateMask(0,m,64)] n)
    	for {
    		for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
    			x := v_0
    			if x.Op != OpPPC64MOVDconst {
    				continue
    			}
    			m := auxIntToInt64(x.AuxInt)
    			n := v_1
    			if !(isPPC64ValidShiftMask(m)) {
    				continue
    			}
    			v.reset(OpPPC64RLDICL)
    			v.AuxInt = int64ToAuxInt(encodePPC64RotateMask(0, m, 64))
    			v.AddArg(n)
    			return true
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 19:59:38 UTC 2024
    - 16.5K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/rewrite.go

    }
    
    // Compress mask and shift into single value of the form
    // me | mb<<8 | rotate<<16 | nbits<<24 where me and mb can
    // be used to regenerate the input mask.
    func encodePPC64RotateMask(rotate, mask, nbits int64) int64 {
    	var mb, me, mbn, men int
    
    	// Determine boundaries and then decode them
    	if mask == 0 || ^mask == 0 || rotate >= nbits {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:02:52 UTC 2024
    - 64.2K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/_gen/PPC64.rules

    (ANDconst [m] (ROTLWconst [r] x)) && isPPC64WordRotateMask(m) => (RLWINM [encodePPC64RotateMask(r,m,32)] x)
    (AND (MOVDconst [m]) (ROTLWconst [r] x)) && isPPC64WordRotateMask(m) => (RLWINM [encodePPC64RotateMask(r,m,32)] x)
    (ANDconst [m] (ROTLW x r)) && isPPC64WordRotateMask(m) => (RLWNM [encodePPC64RotateMask(0,m,32)] x r)
    (AND (MOVDconst [m]) (ROTLW x r)) && isPPC64WordRotateMask(m) => (RLWNM [encodePPC64RotateMask(0,m,32)] x r)
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:02:52 UTC 2024
    - 53.2K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/_gen/PPC64Ops.go

    		{name: "RLWINM", argLength: 1, reg: gp11, asm: "RLWNM", aux: "Int64"},                           // Rotate and mask by immediate "rlwinm". encodePPC64RotateMask describes aux
    		{name: "RLWNM", argLength: 2, reg: gp21, asm: "RLWNM", aux: "Int64"},                            // Rotate and mask by "rlwnm". encodePPC64RotateMask describes aux
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 19:59:38 UTC 2024
    - 43.8K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/ssa/rewritePPC64.go

    				continue
    			}
    			v.reset(OpPPC64RLWINM)
    			v.AuxInt = int64ToAuxInt(encodePPC64RotateMask(r, m, 32))
    			v.AddArg(x)
    			return true
    		}
    		break
    	}
    	// match: (AND (MOVDconst [m]) (ROTLW x r))
    	// cond: isPPC64WordRotateMask(m)
    	// result: (RLWNM [encodePPC64RotateMask(0,m,32)] x r)
    	for {
    		for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:02:52 UTC 2024
    - 360.2K bytes
    - Viewed (0)
Back to top