mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.simd] cmd/compile: remove VPADDD4
It is from my sample SIMD compilation, not used in the real thing. The actual operation is VPADDD128. Also clean up some of my XXX comments. Change-Id: Ic20a9dd3c8531e25d88ba045ccef70cb856790d8 Reviewed-on: https://go-review.googlesource.com/c/go/+/698475 Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
parent
4a3ea146ae
commit
83714616aa
4 changed files with 3 additions and 29 deletions
|
|
@ -1708,19 +1708,11 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) {
|
|||
p.To.Type = obj.TYPE_REG
|
||||
p.To.Reg = v.Reg()
|
||||
|
||||
// XXX SIMD
|
||||
// XXX may change depending on how we handle aliased registers
|
||||
// SIMD ops
|
||||
case ssa.OpAMD64VZEROUPPER, ssa.OpAMD64VZEROALL:
|
||||
s.Prog(v.Op.Asm())
|
||||
case ssa.OpAMD64Zero128, ssa.OpAMD64Zero256, ssa.OpAMD64Zero512:
|
||||
// zero-width, no instruction generated
|
||||
case ssa.OpAMD64VPADDD4:
|
||||
p := s.Prog(v.Op.Asm())
|
||||
p.From.Type = obj.TYPE_REG
|
||||
p.From.Reg = simdReg(v.Args[0])
|
||||
p.AddRestSourceReg(simdReg(v.Args[1]))
|
||||
p.To.Type = obj.TYPE_REG
|
||||
p.To.Reg = simdReg(v)
|
||||
case ssa.OpAMD64VMOVDQUload128, ssa.OpAMD64VMOVDQUload256, ssa.OpAMD64VMOVDQUload512, ssa.OpAMD64KMOVQload:
|
||||
p := s.Prog(v.Op.Asm())
|
||||
p.From.Type = obj.TYPE_MEM
|
||||
|
|
|
|||
|
|
@ -1639,7 +1639,7 @@
|
|||
// If we don't use the flags any more, just use the standard op.
|
||||
(Select0 a:(ADD(Q|L)constflags [c] x)) && a.Uses == 1 => (ADD(Q|L)const [c] x)
|
||||
|
||||
// XXX SIMD
|
||||
// SIMD lowering rules
|
||||
|
||||
// Mask loads
|
||||
(LoadMask8x16 <t> ptr mem) => (VPMOVMToVec8x16 <types.TypeVec128> (KMOVQload <t> ptr mem))
|
||||
|
|
|
|||
|
|
@ -1315,9 +1315,7 @@ func init() {
|
|||
// output[i] = (input[i] >> 7) & 1
|
||||
{name: "PMOVMSKB", argLength: 1, reg: fpgp, asm: "PMOVMSKB"},
|
||||
|
||||
// XXX SIMD
|
||||
{name: "VPADDD4", argLength: 2, reg: fp21, asm: "VPADDD", commutative: true}, // arg0 + arg1
|
||||
|
||||
// SIMD ops
|
||||
{name: "VMOVDQUload128", argLength: 2, reg: fpload, asm: "VMOVDQU", aux: "SymOff", faultOnNilArg0: true, symEffect: "Read"}, // load from arg0+auxint+aux, arg1 = mem
|
||||
{name: "VMOVDQUstore128", argLength: 3, reg: fpstore, asm: "VMOVDQU", aux: "SymOff", faultOnNilArg0: true, symEffect: "Write"}, // store, *(arg0+auxint+aux) = arg1, arg2 = mem
|
||||
|
||||
|
|
|
|||
|
|
@ -1165,7 +1165,6 @@ const (
|
|||
OpAMD64PSIGNB
|
||||
OpAMD64PCMPEQB
|
||||
OpAMD64PMOVMSKB
|
||||
OpAMD64VPADDD4
|
||||
OpAMD64VMOVDQUload128
|
||||
OpAMD64VMOVDQUstore128
|
||||
OpAMD64VMOVDQUload256
|
||||
|
|
@ -18179,21 +18178,6 @@ var opcodeTable = [...]opInfo{
|
|||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "VPADDD4",
|
||||
argLen: 2,
|
||||
commutative: true,
|
||||
asm: x86.AVPADDD,
|
||||
reg: regInfo{
|
||||
inputs: []inputInfo{
|
||||
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
||||
{1, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
||||
},
|
||||
outputs: []outputInfo{
|
||||
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "VMOVDQUload128",
|
||||
auxType: auxSymOff,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue