Skip to content

Commit

Permalink
External Release v2023.04.16
Browse files Browse the repository at this point in the history
Updated CPUs and instructions according to ISE (Intel Architecture 
Instruction Set Extensions and Future Features) rev-048, March 2023.
  
General:
  - Updated Python version requirement to 3.6 (closes #293)

Added:
  - Support new AMX instructions: TCMMIMFP16PS and TCMMRLFP16PS
  - Support Clang15 build
  - Support decode-encode of SAE/ROUNDC ignored ISA
  - Added mandatory 66 prefix API: `xed_operand_values_mandatory_66_prefix()`

Fixed:
  - Fixed XED-ILD standalone library for AVX512 instructions (fixes #298)
  - Chip-Check: Fixed CLDEMOTE mapping (for TREMONT and ALDER_LAKE)
  - Fixed Operand API: `xed_operand_values_print_short()`
  - Fixed FADD operand visibility
  - Changed NOP-0F1F to match SDM definition
  - Removed BROADCAST definition from VINSERTF128
  - Added missing UNDOCUMENTED attribute to instructions not documented in SDM
  - Fixed memory operand for PREFETCH instructions
  - Fixed SENDUIPI register operand width (fixes #292)
  - Fixed AMD LWP{INS,VAL} operand width (fixes #299)
  - Fixed git describe fail message (fixes #291)
  - Updated xed-doc-top (fixes #294)
  - Fixed libxed documentation for Windows (fixes #295)
  - Fixed legal headers

Modified:
  - Renamed XED operand: "REXRR" -> "REXR4"
  • Loading branch information
sdeadmin authored Apr 17, 2023
1 parent 9fc12ab commit a3055cd
Show file tree
Hide file tree
Showing 338 changed files with 2,322 additions and 821 deletions.
23 changes: 20 additions & 3 deletions .github/actions/load-matrix/action.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,25 @@
#BEGIN_LEGAL
#
#Copyright (c) 2023 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#END_LEGAL
name: Load Matrix of strategy
description: Load Matrix of strategy
inputs:
matrix_kind:
description: 'set test matrix kind (sanity or nightly)'
description: 'set test matrix kind (sanity, nightly or Coverity)'
required: true
type: string
outputs:
Expand All @@ -21,11 +38,11 @@ runs:
run: |
JSON=$(python3 .github/scripts/gen_matrix.py --${{inputs.matrix_kind}})
echo $JSON
echo "::set-output name=json::${JSON//%/%25}"
echo "json=${JSON//%/%25}" >> $GITHUB_OUTPUT
- name: Generate test html table matrix
shell: bash
id: matrix_table
run: |
TABLE=$(python3 .github/scripts/gen_matrix.py --${{inputs.matrix_kind}} --html)
echo $TABLE
echo "::set-output name=table::${TABLE//%/%25}"
echo "table=${TABLE//%/%25}" >> $GITHUB_OUTPUT
87 changes: 67 additions & 20 deletions .github/scripts/gen_matrix.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
#BEGIN_LEGAL
#
#Copyright (c) 2023 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#END_LEGAL
import argparse
from collections import defaultdict
import dataclasses
Expand Down Expand Up @@ -36,6 +53,7 @@ class Matrix:

sanity_matrix = Matrix(
include=[
# Linux
Axis(
os='Linux',
compiler='gcc',
Expand All @@ -44,12 +62,13 @@ class Matrix:
Axis(
os='Linux',
compiler='clang',
ver='14.0.6'
ver='15.0.4'
),
# Windows
Axis(
os='Windows',
compiler='clang',
ver='14.0.6'
ver='15.0.2'
),
Axis(
os='Windows',
Expand All @@ -63,6 +82,7 @@ class Matrix:
nightly_matrix = Matrix(
include=sanity_matrix.include +
[
# Linux
Axis(
os='Linux',
compiler='gcc',
Expand All @@ -71,7 +91,13 @@ class Matrix:
Axis(
os='Linux',
compiler='clang',
ver='13.0.1'
ver='14.0.6'
),
# Windows
Axis(
os='Windows',
compiler='clang',
ver='14.0.6'
),
Axis(
os='Windows',
Expand All @@ -85,35 +111,52 @@ class Matrix:


def setup():
parser = argparse.ArgumentParser(
parser = argparse.ArgumentParser(
description='Generate test matrix for GitHub Actions workflows')
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--sanity',
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--sanity',
help='Print test matrix for sanity workflows',
action="store_true")
group.add_argument('--nightly',
group.add_argument('--coverity',
help='Print test matrix for coverity check',
action="store_true")
group.add_argument('--nightly',
help='Print test matrix for nightly workflows',
action="store_true")
parser.add_argument('--html',
parser.add_argument('--html',
help='Generate html table to stdout',
action='store_true',
default=False)
args = parser.parse_args()
return args
args = parser.parse_args()
return args


def get_latest_version(compiler):
'''return a string of the latest supported compiler version'''
def get_latest_version(compiler, os):
'''return a string of the latest supported compiler version for the given os'''
zero_v = '0'
latest = Axis(os='', compiler=compiler, ver=zero_v)
for d in nightly_matrix.include:
if d.compiler == compiler and latest < d:
if d.compiler == compiler and d.os == os and latest < d:
latest = d

assert latest.ver != zero_v, f'Could not find latest version of {compiler}'
return str(latest.ver)


def get_coverity_matrix() -> Matrix:
"""iterates over the sanity matrix and yields the desired Coverity environments
with the latest compiler version"""
coverity_matrix = Matrix(
include=[
Axis(os='Linux', compiler='gcc', ver=''),
Axis(os='Windows',compiler='msvs',ver='')
]
)
for config in coverity_matrix.include: #retrieve the latest version defined in our nightly matrix
config.ver = get_latest_version(config.compiler, config.os)
return coverity_matrix


def gen_tests_table(matrix):
"""Generate GitHub test matrix in a format of HTML table"""
os_set = set()
Expand Down Expand Up @@ -141,12 +184,16 @@ def gen_tests_table(matrix):
return html

if __name__ == "__main__":
args = setup()
matrix = sanity_matrix if args.sanity else nightly_matrix
args = setup()
if args.sanity:
matrix = sanity_matrix
elif args.nightly:
matrix = nightly_matrix
else:
matrix = get_coverity_matrix()

if args.html:
print(gen_tests_table(matrix.include))
else:
print(json.dumps(dataclasses.asdict(matrix)))
if args.html:
print(gen_tests_table(matrix.include))
else:
print(json.dumps(dataclasses.asdict(matrix)))


12 changes: 6 additions & 6 deletions .github/scripts/utils.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# BEGIN_LEGAL
#BEGIN_LEGAL
#
# Copyright (c) 2022 Intel Corporation
#Copyright (c) 2023 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -13,8 +13,8 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# END_LEGAL
#
#END_LEGAL

import argparse
from collections import defaultdict
Expand Down Expand Up @@ -46,7 +46,7 @@ def get_compiler_build_flags(env):
"""
os_ver = platform.system()
compiler = env['compiler']
version = env['compiler_version'] if env['compiler_version'] else get_latest_version(compiler)
version = env['compiler_version'] if env['compiler_version'] else get_latest_version(compiler, os_ver)

if compiler == MSVS:
# Let mbuild find the needed toolchain
Expand All @@ -61,7 +61,7 @@ def get_compiler_build_flags(env):
if os_ver == "Linux":
tool = f'/usr/local/{compiler}-{version}/bin/'
elif os_ver == "Windows":
tool = f'C:\\tools\\LLVM\\bin\\'
tool = f'C:\\tools\\LLVM_{version}\\bin\\'
assert tool, 'Could not find CLANG path'
build_args = f'--toolchain={tool} '
build_args += f'--compiler={compiler}'
Expand Down
19 changes: 18 additions & 1 deletion .github/workflows/external_release.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
#BEGIN_LEGAL
#
#Copyright (c) 2022 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#END_LEGAL
name: External release
on:
push:
Expand Down Expand Up @@ -33,7 +50,7 @@ jobs:
path: main
- name: Get version
id: get-version
run: echo "::set-output name=version::$(cat external/VERSION)"
run: echo "version=$(cat external/VERSION)" >> $GITHUB_OUTPUT
- name: Git config
uses: ./main/.github/actions/set-git-credentials
with:
Expand Down
19 changes: 19 additions & 0 deletions .github/workflows/sanity_external.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
#BEGIN_LEGAL
#
#Copyright (c) 2023 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#END_LEGAL
name: External Sanity
on:
pull_request:
Expand All @@ -10,6 +27,7 @@ jobs:
runs-on:
- self-hosted
- xed-runners
- Linux
outputs:
test_matrix: ${{ steps.load_matrix.outputs.matrix }}
steps:
Expand Down Expand Up @@ -46,3 +64,4 @@ jobs:
run: |
cd xed
python3 .github/scripts/sanity_external.py --compiler=${{matrix.compiler}} --version=${{matrix.ver}}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ cd xed
./mfile.py
```

then get your libxed.a from the obj directory.
Then get your libxed.a/libxed.so (Linux) or xed.lib (Windows) from the obj directory.
Add " --shared" if you want a shared object build.
Add " install" if you want the headers & libraries put in to a kit in the "kits" directory.
Add "C:/python3/python " before "./mfile.py" if on windows.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v2022.10.11
v2023.04.16
12 changes: 6 additions & 6 deletions conanfile.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# BEGIN_LEGAL
#BEGIN_LEGAL
#
# Copyright (c) 2021 Intel Corporation
#Copyright (c) 2023 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -13,8 +13,8 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# END_LEGAL
#
#END_LEGAL

import os

Expand All @@ -25,8 +25,8 @@
class XedConan(ConanFile):
name = "xed"
description = "The X86 Encoder Decoder (XED) library for encoding/decoding X86 instructions."
url = "https://gitlab.devtools.intel.com/xed-group/xed"
homepage = "http://mjc.intel.com/xeddoc/doc-build-internal"
url = "https://github.com/intelxed/xed"
homepage = "https://intelxed.github.io/"
license = "Apache License 2.0"
topics = ("intel", "xed", "encoder", "decoder", "x86")

Expand Down
2 changes: 1 addition & 1 deletion datafiles/4fmaps-512/4fmaps-512-isa.xed.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#BEGIN_LEGAL
#
#Copyright (c) 2019 Intel Corporation
#Copyright (c) 2022 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion datafiles/4vnniw-512/4vnniw-512-isa.xed.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#BEGIN_LEGAL
#
#Copyright (c) 2019 Intel Corporation
#Copyright (c) 2022 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down
5 changes: 3 additions & 2 deletions datafiles/adl/adl-chips.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#BEGIN_LEGAL
#
#Copyright (c) 2020 Intel Corporation
#Copyright (c) 2022 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -44,7 +44,8 @@ ALDER_LAKE: \
ADOX_ADCX \
LZCNT \
WBNOINVD \
HRESET
HRESET \
CLDEMOTE



Expand Down
2 changes: 1 addition & 1 deletion datafiles/amd/amd-3dnow-maps.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#BEGIN_LEGAL
#
#Copyright (c) 2019 Intel Corporation
#Copyright (c) 2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion datafiles/amd/amdxop/amd-fma4-isa.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#BEGIN_LEGAL
#
#Copyright (c) 2019 Intel Corporation
#Copyright (c) 2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion datafiles/amd/amdxop/amd-vpermil2-isa.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#BEGIN_LEGAL
#
#Copyright (c) 2019 Intel Corporation
#Copyright (c) 2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down
Loading

0 comments on commit a3055cd

Please sign in to comment.