x86: add AVX optabs generator

x86avxgen tool generates code that is required
to implement full AVX1 and AVX2 support in Go asm.

The main effects of this utility are:
- emits AVX instructions optabs
- updates instructions enum (adds new entries)
- uncomments test cases for added instructions from amd64enc.s

It can be extended to support AVX512,
but that requires, among other things,
EVEX prefix support in asm6.go.

Note: some changes in obj/x86 are required
in order to use this tool.
Current CL sends the tool itself on the review,
prerequisites will come later (if x86avxgen passes the review).

Change-Id: I4691b16327bbafedfd5a297115b673c551f28484
Reviewed-on: https://go-review.googlesource.com/66972
Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
7 files changed
tree: 5986acef57ad81a30bb45b46fdacc1936ab0b738
  1. arm/
  2. arm64/
  3. ppc64/
  4. vendor/
  5. x86/
  6. AUTHORS
  7. codereview.cfg
  8. CONTRIBUTING.md
  9. CONTRIBUTORS
  10. LICENSE
  11. PATENTS
  12. README.md
README.md

arch

This repository holds machine architecture information used by the Go toolchain. The parts needed in the main Go repository are copied in.

This repository requires Go 1.5+ with the vendor experiment enabled.