From 7a634034c89c653bccd451e417db7034b34402b7 Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Thu, 25 Oct 2018 09:18:48 -0700 Subject: [PATCH] cmd/compile: fix Mul->Mul64 intrinsic alias The alias declaration needs to come after the function it is aliasing. It isn't a big deal in this case, as bits.Mul inlines and has as its body bits.Mul64, so the desired code gets generated regardless. The alias should only have an effect on inlining cost estimates (for functions that call bits.Mul). Change-Id: I0d814899ce7049a0fb36e8ce1ad5ababbaf6265f Reviewed-on: https://go-review.googlesource.com/c/144597 Run-TryBot: Keith Randall TryBot-Result: Gobot Gobot Reviewed-by: Giovanni Bajo --- src/cmd/compile/internal/gc/ssa.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go index 0d1a1a24e2..65271df360 100644 --- a/src/cmd/compile/internal/gc/ssa.go +++ b/src/cmd/compile/internal/gc/ssa.go @@ -3474,12 +3474,12 @@ func init() { addF("math/bits", "OnesCount", makeOnesCountAMD64(ssa.OpPopCount64, ssa.OpPopCount32), sys.AMD64) - alias("math/bits", "Mul", "math/bits", "Mul64", sys.ArchAMD64, sys.ArchARM64, sys.ArchPPC64) addF("math/bits", "Mul64", func(s *state, n *Node, args []*ssa.Value) *ssa.Value { return s.newValue2(ssa.OpMul64uhilo, types.NewTuple(types.Types[TUINT64], types.Types[TUINT64]), args[0], args[1]) }, sys.AMD64, sys.ARM64, sys.PPC64) + alias("math/bits", "Mul", "math/bits", "Mul64", sys.ArchAMD64, sys.ArchARM64, sys.ArchPPC64) addF("math/bits", "Add64", func(s *state, n *Node, args []*ssa.Value) *ssa.Value {