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. AUTHORS
  2. CONTRIBUTING.md
  3. CONTRIBUTORS
  4. LICENSE
  5. PATENTS
  6. README.md
  7. arm/
  8. arm64/
  9. codereview.cfg
  10. ppc64/
  11. vendor/
  12. x86/
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.