summaryrefslogtreecommitdiff
path: root/llvm/test/tools
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/tools')
-rw-r--r--llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll3
-rw-r--r--llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.expected3
-rw-r--r--llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.expected3
-rw-r--r--llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.globals.expected3
-rw-r--r--llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.noglobals.expected3
-rw-r--r--llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.transitiveglobals.expected3
-rw-r--r--llvm/test/tools/dsymutil/ARM/discriminator.test23
-rwxr-xr-xllvm/test/tools/dsymutil/Inputs/discriminator.arm64.dylibbin0 -> 17032 bytes
-rw-r--r--llvm/test/tools/dsymutil/Inputs/discriminator.arm64.obin0 -> 2032 bytes
-rw-r--r--llvm/test/tools/llc/new-pm/pipeline.mir3
-rw-r--r--llvm/test/tools/llvm-ar/windows-path.test2
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.obin34504 -> 34528 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.proftext36
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/mcdc-const.obin5208 -> 5208 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/mcdc-const.proftext6
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.obin0 -> 6456 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.profdatabin0 -> 888 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/mcdc-general.obin6456 -> 6544 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/mcdc-general.proftext11
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/mcdc-macro.obin6480 -> 6408 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/mcdc-macro.proftext15
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.obin4112 -> 4112 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/showProjectSummary.test2
-rw-r--r--llvm/test/tools/llvm-cov/gcov/basic.test2
-rw-r--r--llvm/test/tools/llvm-cov/mcdc-general-18.test20
-rw-r--r--llvm/test/tools/llvm-cov/showLineExecutionCounts.cpp8
-rw-r--r--llvm/test/tools/llvm-cov/showTemplateInstantiations.cpp14
-rw-r--r--llvm/test/tools/llvm-dwarfdump/X86/locstats.ll12
-rw-r--r--llvm/test/tools/llvm-dwp/X86/merge.test5
-rw-r--r--llvm/test/tools/llvm-dwp/X86/merge_v5.test152
-rw-r--r--llvm/test/tools/llvm-ifs/write-stub.test2
-rw-r--r--llvm/test/tools/llvm-mca/RISCV/SyntacoreSCR/SCR3-ALU.s91
-rw-r--r--llvm/test/tools/llvm-mca/RISCV/SyntacoreSCR/SCR3-LSU.s57
-rw-r--r--llvm/test/tools/llvm-mca/X86/Znver4/resources-avx2.s50
-rw-r--r--llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bwvl.s98
-rw-r--r--llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vl.s242
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/mirror-permissions-win.test2
-rw-r--r--llvm/test/tools/llvm-objdump/XCOFF/file-headers.test21
-rwxr-xr-xllvm/test/tools/llvm-profdata/Inputs/basic-histogram.memprofexebin0 -> 5283216 bytes
-rw-r--r--llvm/test/tools/llvm-profdata/Inputs/basic-histogram.memprofrawbin0 -> 75792 bytes
-rwxr-xr-xllvm/test/tools/llvm-profdata/Inputs/basic.memprofexebin1379856 -> 5276856 bytes
-rw-r--r--llvm/test/tools/llvm-profdata/Inputs/basic.memprofrawbin880 -> 1152 bytes
-rwxr-xr-xllvm/test/tools/llvm-profdata/Inputs/basic_v3.memprofexebin0 -> 1379856 bytes
-rw-r--r--llvm/test/tools/llvm-profdata/Inputs/basic_v3.memprofrawbin0 -> 880 bytes
-rwxr-xr-xllvm/test/tools/llvm-profdata/Inputs/buildid.memprofexebin1379880 -> 5276856 bytes
-rw-r--r--llvm/test/tools/llvm-profdata/Inputs/buildid.memprofrawbin880 -> 1152 bytes
-rwxr-xr-xllvm/test/tools/llvm-profdata/Inputs/inline.memprofexebin1380360 -> 5277456 bytes
-rw-r--r--llvm/test/tools/llvm-profdata/Inputs/inline.memprofrawbin720 -> 976 bytes
-rwxr-xr-xllvm/test/tools/llvm-profdata/Inputs/multi.memprofexebin1379872 -> 5276888 bytes
-rw-r--r--llvm/test/tools/llvm-profdata/Inputs/multi.memprofrawbin1408 -> 1920 bytes
-rwxr-xr-xllvm/test/tools/llvm-profdata/Inputs/padding-histogram.memprofexebin0 -> 5278536 bytes
-rw-r--r--llvm/test/tools/llvm-profdata/Inputs/padding-histogram.memprofrawbin0 -> 74952 bytes
-rwxr-xr-xllvm/test/tools/llvm-profdata/Inputs/pic.memprofexebin1382552 -> 5279688 bytes
-rw-r--r--llvm/test/tools/llvm-profdata/Inputs/pic.memprofrawbin880 -> 1152 bytes
-rwxr-xr-xllvm/test/tools/llvm-profdata/Inputs/update_memprof_inputs.sh203
-rw-r--r--llvm/test/tools/llvm-profdata/memprof-basic-histogram.test244
-rw-r--r--llvm/test/tools/llvm-profdata/memprof-basic.test6
-rw-r--r--llvm/test/tools/llvm-profdata/memprof-basic_v3.test102
-rw-r--r--llvm/test/tools/llvm-profdata/memprof-inline.test57
-rw-r--r--llvm/test/tools/llvm-profdata/memprof-multi.test2
-rw-r--r--llvm/test/tools/llvm-profdata/memprof-padding-histogram.test99
-rw-r--r--llvm/test/tools/llvm-profdata/memprof-pic.test7
-rw-r--r--llvm/test/tools/llvm-profdata/vtable-value-prof.test4
-rw-r--r--llvm/test/tools/llvm-rc/windres-prefix.test3
-rw-r--r--llvm/test/tools/llvm-rc/windres-preproc.test5
-rw-r--r--llvm/test/tools/llvm-readobj/ELF/dynamic-malformed.test54
-rw-r--r--llvm/test/tools/llvm-readobj/ELF/dynamic-tags.test431
-rw-r--r--llvm/test/tools/llvm-readobj/ELF/loadname.test4
-rw-r--r--llvm/test/tools/llvm-split/AMDGPU/address-taken-externalize-with-call.ll2
-rw-r--r--llvm/test/tools/llvm-split/AMDGPU/address-taken-externalize.ll2
-rw-r--r--llvm/test/tools/llvm-split/AMDGPU/debug-non-kernel-root.ll36
-rw-r--r--llvm/test/tools/llvm-split/AMDGPU/large-kernels-merging.ll4
-rw-r--r--llvm/test/tools/llvm-split/AMDGPU/non-kernels-dependencies.ll44
-rw-r--r--llvm/test/tools/llvm-split/AMDGPU/non-kernels-dependency-indirect.ll72
-rw-r--r--llvm/test/tools/yaml2obj/COFF/load-config.yaml2
75 files changed, 1915 insertions, 360 deletions
diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll
index 5ad61e3a007a..24f89b684156 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll
@@ -1,5 +1,6 @@
; Just run it through opt, no passes needed.
-; RUN: opt < %s -S | FileCheck %s
+; This tests debug intrinsics, so we must explicitly disable records.
+; RUN: opt < %s -S --write-experimental-debuginfo=false | FileCheck %s
; ModuleID = 'various_ir_values.c'
source_filename = "various_ir_values.c"
diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.expected
index da58d0bf712e..936377e1ceee 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.expected
@@ -1,6 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; Just run it through opt, no passes needed.
-; RUN: opt < %s -S | FileCheck %s
+; This tests debug intrinsics, so we must explicitly disable records.
+; RUN: opt < %s -S --write-experimental-debuginfo=false | FileCheck %s
; ModuleID = 'various_ir_values.c'
source_filename = "various_ir_values.c"
diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.expected
index 66f8ce7602f4..880442b7b06f 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.expected
@@ -1,6 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature
; Just run it through opt, no passes needed.
-; RUN: opt < %s -S | FileCheck %s
+; This tests debug intrinsics, so we must explicitly disable records.
+; RUN: opt < %s -S --write-experimental-debuginfo=false | FileCheck %s
; ModuleID = 'various_ir_values.c'
source_filename = "various_ir_values.c"
diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.globals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.globals.expected
index e52b93989c51..84f31cf76495 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.globals.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.globals.expected
@@ -1,6 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-globals
; Just run it through opt, no passes needed.
-; RUN: opt < %s -S | FileCheck %s
+; This tests debug intrinsics, so we must explicitly disable records.
+; RUN: opt < %s -S --write-experimental-debuginfo=false | FileCheck %s
; ModuleID = 'various_ir_values.c'
source_filename = "various_ir_values.c"
diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.noglobals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.noglobals.expected
index da58d0bf712e..936377e1ceee 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.noglobals.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.noglobals.expected
@@ -1,6 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; Just run it through opt, no passes needed.
-; RUN: opt < %s -S | FileCheck %s
+; This tests debug intrinsics, so we must explicitly disable records.
+; RUN: opt < %s -S --write-experimental-debuginfo=false | FileCheck %s
; ModuleID = 'various_ir_values.c'
source_filename = "various_ir_values.c"
diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.transitiveglobals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.transitiveglobals.expected
index f7508bd1bbf6..9464377d4016 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.transitiveglobals.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.transitiveglobals.expected
@@ -1,6 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals smart
; Just run it through opt, no passes needed.
-; RUN: opt < %s -S | FileCheck %s
+; This tests debug intrinsics, so we must explicitly disable records.
+; RUN: opt < %s -S --write-experimental-debuginfo=false | FileCheck %s
; ModuleID = 'various_ir_values.c'
source_filename = "various_ir_values.c"
diff --git a/llvm/test/tools/dsymutil/ARM/discriminator.test b/llvm/test/tools/dsymutil/ARM/discriminator.test
new file mode 100644
index 000000000000..d89d9af95d28
--- /dev/null
+++ b/llvm/test/tools/dsymutil/ARM/discriminator.test
@@ -0,0 +1,23 @@
+; The input at Inputs/discriminator.arm64.dylib[.o] produced by compiling
+;
+; int foo(int i, int a, int b) {
+; return i ? a : a * b;
+; }
+;
+; with -g -fdebug-info-for-profiling -O2.
+
+RUN: dsymutil --flat --linker=classic -oso-prepend-path %p -o - \
+RUN: --oso-prepend-path %p/../Inputs --verify-dwarf=none \
+RUN: %p/../Inputs/discriminator.arm64.dylib | llvm-dwarfdump -debug-line - \
+RUN: | FileCheck %s
+
+RUN: dsymutil --flat --linker=parallel -oso-prepend-path %p -o - \
+RUN: --oso-prepend-path %p/../Inputs --verify-dwarf=none \
+RUN: %p/../Inputs/discriminator.arm64.dylib | llvm-dwarfdump -debug-line - \
+RUN: | FileCheck %s
+
+CHECK: Address Line Column File ISA Discriminator OpIndex Flags
+CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- ------- -------------
+CHECK-NEXT: 0x0000000000003f98 2 10 0 0 0 0 is_stmt prologue_end
+CHECK-NEXT: 0x0000000000003fa4 2 3 0 0 6 0
+CHECK-NEXT: 0x0000000000003fa8 2 3 0 0 0 0 end_sequence \ No newline at end of file
diff --git a/llvm/test/tools/dsymutil/Inputs/discriminator.arm64.dylib b/llvm/test/tools/dsymutil/Inputs/discriminator.arm64.dylib
new file mode 100755
index 000000000000..94890e532f82
--- /dev/null
+++ b/llvm/test/tools/dsymutil/Inputs/discriminator.arm64.dylib
Binary files differ
diff --git a/llvm/test/tools/dsymutil/Inputs/discriminator.arm64.o b/llvm/test/tools/dsymutil/Inputs/discriminator.arm64.o
new file mode 100644
index 000000000000..f50971ae58ff
--- /dev/null
+++ b/llvm/test/tools/dsymutil/Inputs/discriminator.arm64.o
Binary files differ
diff --git a/llvm/test/tools/llc/new-pm/pipeline.mir b/llvm/test/tools/llc/new-pm/pipeline.mir
index 6baa710060f0..ee058f763b77 100644
--- a/llvm/test/tools/llc/new-pm/pipeline.mir
+++ b/llvm/test/tools/llc/new-pm/pipeline.mir
@@ -1,7 +1,10 @@
# RUN: llc -mtriple=x86_64-pc-linux-gnu -x mir -passes=no-op-machine-function --print-pipeline-passes -filetype=null < %s | FileCheck %s --match-full-lines
+# RUN: llc -mtriple=x86_64-pc-linux-gnu -x mir -passes='require<machine-dom-tree>,print<machine-dom-tree>' -print-pipeline-passes < %s | FileCheck --check-prefix=ANALYSIS %s
# CHECK: function(machine-function(no-op-machine-function)),PrintMIRPreparePass,function(machine-function(print))
+# ANALYSIS: require<machine-dom-tree>,print<machine-dom-tree>
+
---
name: f
body: |
diff --git a/llvm/test/tools/llvm-ar/windows-path.test b/llvm/test/tools/llvm-ar/windows-path.test
index e33fbf532c33..9c5cf1319553 100644
--- a/llvm/test/tools/llvm-ar/windows-path.test
+++ b/llvm/test/tools/llvm-ar/windows-path.test
@@ -1,4 +1,4 @@
-# Test that windows path seperators are handled correctly.
+# Test that windows path separators are handled correctly.
REQUIRES: system-windows
# Note: many of these tests depend on relative paths, so we have to cd to a
diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.o b/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.o
index 4f54fa7b8a1a..7a16162f29c0 100644
--- a/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.o
+++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.o
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.proftext b/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.proftext
index 82335a8195fa..97d78a39f435 100644
--- a/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.proftext
+++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.proftext
@@ -40,7 +40,7 @@ _Z5case2b
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0xa
+0x6
_Z5case3b
@@ -55,7 +55,7 @@ _Z5case3b
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x9
+0x5
_Z5case4b
@@ -70,7 +70,7 @@ _Z5case4b
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x2
+0x1
_Z5case5b
@@ -85,7 +85,7 @@ _Z5case5b
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x6
+0x5
_Z5case6b
@@ -100,7 +100,7 @@ _Z5case6b
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x5
+0x6
_Z5case7b
@@ -166,7 +166,7 @@ _Z5caseabb
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0xa2
+0xe
_Z5casebbb
@@ -183,7 +183,7 @@ _Z5casebbb
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0xa1
+0xd
_Z5casecbb
@@ -200,7 +200,7 @@ _Z5casecbb
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x2
+0x1
_Z5casedbb
@@ -217,7 +217,7 @@ _Z5casedbb
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x12
+0x3
_Z5caseebb
@@ -234,7 +234,7 @@ _Z5caseebb
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x14
+0xa
_Z5casefbb
@@ -251,7 +251,7 @@ _Z5casefbb
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x6
+0x9
_Z5casegbb
@@ -268,7 +268,7 @@ _Z5casegbb
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x23
+0x7
_Z5casehbb
@@ -302,7 +302,7 @@ _Z5caseibb
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x83
+0xb
_Z5casejbb
@@ -319,7 +319,7 @@ _Z5casejbb
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0xa1
+0xd
_Z5casekbb
@@ -336,7 +336,7 @@ _Z5casekbb
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x12
+0x3
_Z5caselbb
@@ -353,7 +353,7 @@ _Z5caselbb
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x12
+0x3
_Z5casembb
@@ -370,7 +370,7 @@ _Z5casembb
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x12
+0x3
_Z5casenbb
@@ -387,7 +387,7 @@ _Z5casenbb
# Num Bitmap Bytes:
$1
# Bitmap Byte Values:
-0x6
+0x9
main
diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-const.o b/llvm/test/tools/llvm-cov/Inputs/mcdc-const.o
index 1145fcc6f712..bc38b71b5de0 100644
--- a/llvm/test/tools/llvm-cov/Inputs/mcdc-const.o
+++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-const.o
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-const.proftext b/llvm/test/tools/llvm-cov/Inputs/mcdc-const.proftext
index 10253f26e0a6..16eba3a01808 100644
--- a/llvm/test/tools/llvm-cov/Inputs/mcdc-const.proftext
+++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-const.proftext
@@ -14,12 +14,10 @@ _Z4testbbbb
0
0
# Num Bitmap Bytes:
-$4
+$2
# Bitmap Byte Values:
0x1
-0x2
-0x0
-0x0
+0x4
main
diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.o b/llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.o
new file mode 100644
index 000000000000..e802f51132c0
--- /dev/null
+++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.o
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.profdata b/llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.profdata
new file mode 100644
index 000000000000..d351096967db
--- /dev/null
+++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.profdata
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-general.o b/llvm/test/tools/llvm-cov/Inputs/mcdc-general.o
index e802f51132c0..8bed601221a1 100644
--- a/llvm/test/tools/llvm-cov/Inputs/mcdc-general.o
+++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-general.o
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-general.proftext b/llvm/test/tools/llvm-cov/Inputs/mcdc-general.proftext
index a83f036ddf2c..2faca9da1b1e 100644
--- a/llvm/test/tools/llvm-cov/Inputs/mcdc-general.proftext
+++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-general.proftext
@@ -24,14 +24,11 @@ _Z4testbbbb
2
1
# Num Bitmap Bytes:
-$6
+$3
# Bitmap Byte Values:
-0x2f
-0x8
-0xb
-0x9
-0x83
-0x80
+0xef
+0x77
+0x3
main
diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-macro.o b/llvm/test/tools/llvm-cov/Inputs/mcdc-macro.o
index c0a9d6044553..5b3934816bd2 100644
--- a/llvm/test/tools/llvm-cov/Inputs/mcdc-macro.o
+++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-macro.o
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-macro.proftext b/llvm/test/tools/llvm-cov/Inputs/mcdc-macro.proftext
index 35ecc42b5802..44057ffd7d88 100644
--- a/llvm/test/tools/llvm-cov/Inputs/mcdc-macro.proftext
+++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-macro.proftext
@@ -27,21 +27,12 @@ func
0
0
# Num Bitmap Bytes:
-$13
+$4
# Bitmap Byte Values:
0x0
+0x9
0x0
-0x0
-0x20
-0x8
-0x0
-0x20
-0x0
-0x0
-0x0
-0x0
-0x0
-0x0
+0x1
func1
diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.o b/llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.o
index bc993b19e847..21f9d3a17dad 100644
--- a/llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.o
+++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.o
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/showProjectSummary.test b/llvm/test/tools/llvm-cov/Inputs/showProjectSummary.test
index eb0222677eaa..5eb6b4e24d53 100644
--- a/llvm/test/tools/llvm-cov/Inputs/showProjectSummary.test
+++ b/llvm/test/tools/llvm-cov/Inputs/showProjectSummary.test
@@ -11,5 +11,5 @@ HTML-FILE: <pre>{{.*}}showProjectSummary.cpp</pre>
HTML-FUNCTION: <pre>main</pre>
HTML-HEADER: <td><pre>Line</pre></td>
HTML-HEADER: <td><pre>Count</pre></td>
-HTML-HEADER: <td><pre>Source (<a href='#L8'>jump to first uncovered line</a>)</pre></td>
+HTML-HEADER: <td><pre>Source</pre></td>
HTML-FOOTER: <h5>Generated by llvm-cov{{.*}}</h5>
diff --git a/llvm/test/tools/llvm-cov/gcov/basic.test b/llvm/test/tools/llvm-cov/gcov/basic.test
index 5313fe2d7a69..7557739add8b 100644
--- a/llvm/test/tools/llvm-cov/gcov/basic.test
+++ b/llvm/test/tools/llvm-cov/gcov/basic.test
@@ -3,7 +3,7 @@
# Test fails on Windows where internal shell is used due to path separator
# mismatches.
-REQUIRES: shell
+UNSUPPORTED: system-windows
RUN: rm -rf %t
RUN: mkdir %t
diff --git a/llvm/test/tools/llvm-cov/mcdc-general-18.test b/llvm/test/tools/llvm-cov/mcdc-general-18.test
new file mode 100644
index 000000000000..8707238c4cdc
--- /dev/null
+++ b/llvm/test/tools/llvm-cov/mcdc-general-18.test
@@ -0,0 +1,20 @@
+// Test Version11 (clang-18) files.
+// mcdc-general.test is used as test patterns.
+
+// RUN: llvm-cov show --show-mcdc %S/Inputs/mcdc-general-18.o -instr-profile %S/Inputs/mcdc-general-18.profdata -path-equivalence=.,%S/Inputs | FileCheck %S/mcdc-general.test
+// RUN: llvm-cov report --show-mcdc-summary %S/Inputs/mcdc-general-18.o -instr-profile %S/Inputs/mcdc-general-18.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %S/mcdc-general.test -check-prefix=REPORT
+
+// Turn off MC/DC visualization.
+// RUN: llvm-cov show %S/Inputs/mcdc-general-18.o -instr-profile %S/Inputs/mcdc-general-18.profdata -path-equivalence=.,%S/Inputs | FileCheck %S/mcdc-general.test -check-prefix=NOMCDC
+
+// Turn off MC/DC summary.
+// RUN: llvm-cov report %S/Inputs/mcdc-general-18.o -instr-profile %S/Inputs/mcdc-general-18.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %S/mcdc-general.test -check-prefix=REPORT_NOMCDC
+
+// Test file-level report.
+// RUN: llvm-cov report --show-mcdc-summary %S/Inputs/mcdc-general-18.o -instr-profile %S/Inputs/mcdc-general-18.profdata -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %S/mcdc-general.test -check-prefix=FILEREPORT
+
+// Test html output.
+// RUN: rm -rf %t.html.dir
+// RUN: llvm-cov show --show-mcdc-summary --show-mcdc %S/Inputs/mcdc-general-18.o -instr-profile %S/Inputs/mcdc-general-18.profdata -path-equivalence=.,%S/Inputs -format html -o %t.html.dir
+// RUN: FileCheck -check-prefix=HTML -input-file=%t.html.dir/coverage/mcdc-general.cpp.html %S/mcdc-general.test
+// RUN: FileCheck -check-prefix HTML-INDEX -input-file %t.html.dir/index.html %S/mcdc-general.test
diff --git a/llvm/test/tools/llvm-cov/showLineExecutionCounts.cpp b/llvm/test/tools/llvm-cov/showLineExecutionCounts.cpp
index 51ac3ae1deee..f72a9978b8a7 100644
--- a/llvm/test/tools/llvm-cov/showLineExecutionCounts.cpp
+++ b/llvm/test/tools/llvm-cov/showLineExecutionCounts.cpp
@@ -44,11 +44,11 @@ int main() { // TEXT: [[@LINE]]| 161|int main(
// RUN: FileCheck -check-prefixes=HTML,HTML-WHOLE-FILE -input-file %t.html.dir/coverage/tmp/showLineExecutionCounts.cpp.html %s
// RUN: FileCheck -check-prefixes=HTML,HTML-FILTER -input-file %t.html.filtered.dir/coverage/tmp/showLineExecutionCounts.cpp.html %s
//
-// HTML-WHOLE-FILE: <td class='line-number'><a name='L4' href='#L4'><pre>4</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>// before
-// HTML-FILTER-NOT: <td class='line-number'><a name='L4' href='#L4'><pre>4</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>// before
+// HTML-WHOLE-FILE: <td class='line-number'><a name='L4' href='#L4'><pre>4</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// before
+// HTML-FILTER-NOT: <td class='line-number'><a name='L4' href='#L4'><pre>4</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// before
// HTML: <td class='line-number'><a name='L6' href='#L6'><pre>6</pre></a></td><td class='covered-line'><pre>161</pre></td><td class='code'><pre>int main() {
-// HTML-WHOLE-FILE: <td class='line-number'><a name='L26' href='#L26'><pre>26</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>// after
-// HTML-FILTER-NOT: <td class='line-number'><a name='L26' href='#L26'><pre>26</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>// after
+// HTML-WHOLE-FILE: <td class='line-number'><a name='L26' href='#L26'><pre>26</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// after
+// HTML-FILTER-NOT: <td class='line-number'><a name='L26' href='#L26'><pre>26</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// after
//
// Test index creation.
// RUN: FileCheck -check-prefix=TEXT-INDEX -input-file %t.dir/index.txt %s
diff --git a/llvm/test/tools/llvm-cov/showTemplateInstantiations.cpp b/llvm/test/tools/llvm-cov/showTemplateInstantiations.cpp
index 380e98b42bb8..5d6318e3d1f3 100644
--- a/llvm/test/tools/llvm-cov/showTemplateInstantiations.cpp
+++ b/llvm/test/tools/llvm-cov/showTemplateInstantiations.cpp
@@ -45,9 +45,9 @@ int main() { // ALL: [[@LINE]]| 1|int main() {
// RUN: FileCheck -check-prefixes=HTML-SHARED,HTML-ALL -input-file=%t.html.dir/coverage/tmp/showTemplateInstantiations.cpp.html %s
// RUN: FileCheck -check-prefixes=HTML-SHARED,HTML-FILTER -input-file=%t.html.filtered.dir/coverage/tmp/showTemplateInstantiations.cpp.html %s
-// HTML-ALL: <td class='line-number'><a name='L4' href='#L4'><pre>4</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>// before
-// HTML-FILTER-NOT: <td class='line-number'><a name='L4' href='#L4'><pre>4</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>// before
-// HTML-ALL: <td class='line-number'><a name='L6' href='#L6'><pre>6</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>template&lt;typename T&gt;
+// HTML-ALL: <td class='line-number'><a name='L4' href='#L4'><pre>4</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// before
+// HTML-FILTER-NOT: <td class='line-number'><a name='L4' href='#L4'><pre>4</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// before
+// HTML-ALL: <td class='line-number'><a name='L6' href='#L6'><pre>6</pre></a></td><td class='skipped-line'></td><td class='code'><pre>template&lt;typename T&gt;
// HTML-ALL: <div class='source-name-title'><pre>_Z4funcIiEiT_</pre></div>
// HTML-FILTER-NOT: <div class='source-name-title'><pre>_Z4funcIiEiT_</pre></div><table>
@@ -57,8 +57,12 @@ int main() { // ALL: [[@LINE]]| 1|int main() {
// HTML-SHARED: <td class='line-number'><a name='L7' href='#L7'><pre>7</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre>int func(T x) {
// RUN: FileCheck -check-prefix=HTML-JUMP -input-file=%t.html.dir/coverage/tmp/showTemplateInstantiations.cpp.html %s
-// HTML-JUMP: <pre>Source (<a href='#L{{[0-9]+}}'>jump to first uncovered line</a>)</pre>
-// HTML-JUMP-NOT: <pre>Source (<a href='#L{{[0-9]+}}'>jump to first uncovered line</a>)</pre>
+// HTML-JUMP: <a href='javascript:next_line()'>next uncovered line (L)</a>
+// HTML-JUMP-NOT: <a href='javascript:next_line()'>next uncovered line (L)</a>
+// HTML-JUMP: <a href='javascript:next_region()'>next uncovered region (R)</a>
+// HTML-JUMP-NOT: <a href='javascript:next_region()'>next uncovered region (R)</a>
+// HTML-JUMP: <a href='javascript:next_branch()'>next uncovered branch (B)</a>
+// HTML-JUMP-NOT: <a href='javascript:next_branch()'>next uncovered branch (B)</a>
// RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -show-instantiations=false -path-equivalence=/tmp,%S %s | FileCheck -check-prefix=NO_INSTS %s
// NO_INSTS-NOT: {{^ *}}| _Z4funcIbEiT_:
diff --git a/llvm/test/tools/llvm-dwarfdump/X86/locstats.ll b/llvm/test/tools/llvm-dwarfdump/X86/locstats.ll
index f850119acb00..cb5908976fb6 100644
--- a/llvm/test/tools/llvm-dwarfdump/X86/locstats.ll
+++ b/llvm/test/tools/llvm-dwarfdump/X86/locstats.ll
@@ -1,5 +1,11 @@
; RUN: llc -debug-entry-values %s -o - -filetype=obj \
; RUN: | llvm-dwarfdump -statistics - | FileCheck %s
+; RUN: llc -debug-entry-values --dwarf-version=4 %s -o - -filetype=obj \
+; RUN: | llvm-dwarfdump -statistics - | FileCheck %s
+; RUN: llc -debug-entry-values --dwarf-version=3 %s -o - -filetype=obj \
+; RUN: | llvm-dwarfdump -statistics - | FileCheck %s
+; RUN: llc -debug-entry-values --dwarf-version=2 %s -o - -filetype=obj \
+; RUN: | llvm-dwarfdump -statistics - | FileCheck %s
; CHECK: "sum_all_variables(#bytes in parent scope covered by DW_OP_entry_value)": 5,
; CHECK-NEXT: "sum_all_params(#bytes in parent scope)": 20,
@@ -89,6 +95,12 @@
; CHECK-NEXT: "#local vars - entry values with [80%,90%) of parent scope covered by DW_AT_location": 1,
; CHECK-NEXT: "#local vars - entry values with [90%,100%) of parent scope covered by DW_AT_location": 0,
; CHECK-NEXT: "#local vars - entry values with 100% of parent scope covered by DW_AT_location": 1
+; CHECK-NEXT: "#bytes with line information": 51,
+; CHECK-NEXT: "#bytes with line-0 locations": 3,
+; CHECK-NEXT: "#line entries": 7,
+; CHECK-NEXT: "#line entries (is_stmt)": 5,
+; CHECK-NEXT: "#line entries (unique)": 6,
+; CHECK-NEXT: "#line entries (unique non-0)": 5
; The source code of the test case:
; extern void fn3(int *);
diff --git a/llvm/test/tools/llvm-dwp/X86/merge.test b/llvm/test/tools/llvm-dwp/X86/merge.test
index 0cf56bd858a0..25a1315ee63f 100644
--- a/llvm/test/tools/llvm-dwp/X86/merge.test
+++ b/llvm/test/tools/llvm-dwp/X86/merge.test
@@ -44,3 +44,8 @@ CHECK: Index Signature INFO ABBREV
CHECK-DAG: [[DWOC]] [0x00000000[[#COFF]], 0x00000000[[#AOFF]]) [0x0000[[CAOFF]], 0x0000[[AAOFF]]) [0x00000000, 0x00000011) [0x00000000, 0x00000018)
CHECK-DAG: [[DWOA]] [0x00000000[[#AOFF]], 0x00000000[[#BOFF]]) [0x0000[[AAOFF]], 0x0000[[BAOFF]]) [0x00000011, 0x00000022) [0x00000018, 0x00000028)
CHECK-DAG: [[DWOB]] [0x00000000[[#BOFF]], 0x00000000[[#XOFF]]) [0x0000[[BAOFF]], 0x000000c3) [0x00000022, 0x00000033) [0x00000028, 0x0000003c)
+
+CHECK-LABEL: .debug_str_offsets.dwo contents:
+CHECK: Contribution size = 24, Format = DWARF32, Version = 4
+CHECK: Contribution size = 16, Format = DWARF32, Version = 4
+CHECK: Contribution size = 20, Format = DWARF32, Version = 4
diff --git a/llvm/test/tools/llvm-dwp/X86/merge_v5.test b/llvm/test/tools/llvm-dwp/X86/merge_v5.test
new file mode 100644
index 000000000000..1c8b14deaea6
--- /dev/null
+++ b/llvm/test/tools/llvm-dwp/X86/merge_v5.test
@@ -0,0 +1,152 @@
+RUN: rm -rf %t && split-file %s %t && cd %t
+RUN: llc a.ll -o a.o -filetype=obj --split-dwarf-output=a.dwo --split-dwarf-file=a.dwo
+RUN: llc b.ll -o b.o -filetype=obj --split-dwarf-output=b.dwo --split-dwarf-file=b.dwo
+RUN: llc c.ll -o c.o -filetype=obj --split-dwarf-output=c.dwo --split-dwarf-file=c.dwo
+RUN: llvm-dwp a.dwo b.dwo -o ab.dwp
+RUN: llvm-dwp c.dwo ab.dwp -o merged.dwp
+RUN: llvm-dwarfdump -v merged.dwp | FileCheck --check-prefix=CHECK %s
+
+
+CHECK-LABEL: .debug_str_offsets.dwo contents:
+CHECK: Contribution size = 32, Format = DWARF32, Version = 5
+CHECK: 0x00000008: 00000000 "_Z1cv"
+CHECK: 0x0000000c: 00000006 "c"
+CHECK: 0x00000010: 00000008 "int"
+CHECK: 0x00000014: 0000000c "baz"
+CHECK: 0x00000018: 00000010 ""
+CHECK: 0x0000001c: 00000011 "c.cpp"
+CHECK: 0x00000020: 00000017 "c.dwo"
+CHECK: Contribution size = 24, Format = DWARF32, Version = 5
+CHECK: 0x0000002c: 0000001d "a"
+CHECK: 0x00000030: 0000001f "foo"
+CHECK: 0x00000034: 00000010 ""
+CHECK: 0x00000038: 00000023 "a.cpp"
+CHECK: 0x0000003c: 00000029 "a.dwo"
+CHECK: Contribution size = 28, Format = DWARF32, Version = 5
+CHECK: 0x00000048: 0000002f "_Z1b3bar"
+CHECK: 0x0000004c: 00000038 "b"
+CHECK: 0x00000050: 0000003a "bar"
+CHECK: 0x00000054: 00000010 ""
+CHECK: 0x00000058: 0000003e "b.cpp"
+CHECK: 0x0000005c: 00000044 "b.dwo"
+;--- a.cpp
+ struct foo { };
+ foo a;
+;--- b.cpp
+ struct bar { };
+ void b(bar) {
+ }
+;--- c.cpp
+ typedef int baz;
+ baz c() {
+ }
+;--- gen
+clang --target=x86_64-linux -g3 -S -emit-llvm -gsplit-dwarf a.cpp -o -
+echo '#--- b.ll'
+clang --target=x86_64-linux -g3 -S -emit-llvm -gsplit-dwarf b.cpp -o -
+echo '#--- c.ll'
+clang --target=x86_64-linux -g3 -S -emit-llvm -gsplit-dwarf c.cpp -o -
+;--- a.ll
+; ModuleID = 'a.cpp'
+source_filename = "a.cpp"
+target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux"
+
+%struct.foo = type { i8 }
+
+@a = dso_local global %struct.foo zeroinitializer, align 1, !dbg !0
+
+!llvm.dbg.cu = !{!2}
+!llvm.module.flags = !{!7, !8, !9, !10, !11, !12, !13}
+
+!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
+!1 = distinct !DIGlobalVariable(name: "a", scope: !2, file: !3, line: 2, type: !5, isLocal: false, isDefinition: true)
+!2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !3, isOptimized: false, runtimeVersion: 0, splitDebugFilename: "a.dwo", emissionKind: FullDebug, globals: !4, splitDebugInlining: false, nameTableKind: GNU)
+!3 = !DIFile(filename: "a.cpp", directory: "/proc/self/cwd", checksumkind: CSK_MD5, checksum: "394299a94a96cb48c0c9c95d7baf01f5")
+!4 = !{!0}
+!5 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "foo", file: !3, line: 1, size: 8, flags: DIFlagTypePassByValue, elements: !6, identifier: "_ZTS3foo")
+!6 = !{}
+!7 = !{i32 7, !"Dwarf Version", i32 5}
+!8 = !{i32 2, !"Debug Info Version", i32 3}
+!9 = !{i32 1, !"wchar_size", i32 4}
+!10 = !{i32 8, !"PIC Level", i32 2}
+!11 = !{i32 7, !"PIE Level", i32 2}
+!12 = !{i32 7, !"uwtable", i32 2}
+!13 = !{i32 7, !"frame-pointer", i32 2}
+#--- b.ll
+; ModuleID = 'b.cpp'
+source_filename = "b.cpp"
+target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux"
+
+%struct.bar = type { i8 }
+
+; Function Attrs: mustprogress noinline nounwind optnone uwtable
+define dso_local void @_Z1b3bar() #0 !dbg !9 {
+ %1 = alloca %struct.bar, align 1
+ call void @llvm.dbg.declare(metadata ptr %1, metadata !14, metadata !DIExpression()), !dbg !15
+ ret void, !dbg !16
+}
+
+; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
+declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
+
+attributes #0 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
+attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
+
+!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8}
+
+!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, isOptimized: false, runtimeVersion: 0, splitDebugFilename: "b.dwo", emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: GNU)
+!1 = !DIFile(filename: "b.cpp", directory: "/proc/self/cwd", checksumkind: CSK_MD5, checksum: "8195382ac12baa5edfe47e2e4725f4a7")
+!2 = !{i32 7, !"Dwarf Version", i32 5}
+!3 = !{i32 2, !"Debug Info Version", i32 3}
+!4 = !{i32 1, !"wchar_size", i32 4}
+!5 = !{i32 8, !"PIC Level", i32 2}
+!6 = !{i32 7, !"PIE Level", i32 2}
+!7 = !{i32 7, !"uwtable", i32 2}
+!8 = !{i32 7, !"frame-pointer", i32 2}
+!9 = distinct !DISubprogram(name: "b", linkageName: "_Z1b3bar", scope: !1, file: !1, line: 2, type: !10, scopeLine: 2, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !13)
+!10 = !DISubroutineType(types: !11)
+!11 = !{null, !12}
+!12 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "bar", file: !1, line: 1, size: 8, flags: DIFlagTypePassByValue, elements: !13, identifier: "_ZTS3bar")
+!13 = !{}
+!14 = !DILocalVariable(arg: 1, scope: !9, file: !1, line: 2, type: !12)
+!15 = !DILocation(line: 2, column: 13, scope: !9)
+!16 = !DILocation(line: 3, column: 3, scope: !9)
+#--- c.ll
+; ModuleID = 'c.cpp'
+source_filename = "c.cpp"
+target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux"
+
+; Function Attrs: mustprogress noinline nounwind optnone uwtable
+define dso_local noundef i32 @_Z1cv() #0 !dbg !9 {
+ call void @llvm.trap(), !dbg !14
+ unreachable, !dbg !14
+}
+
+; Function Attrs: cold noreturn nounwind memory(inaccessiblemem: write)
+declare void @llvm.trap() #1
+
+attributes #0 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
+attributes #1 = { cold noreturn nounwind memory(inaccessiblemem: write) }
+
+!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !8}
+
+!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, isOptimized: false, runtimeVersion: 0, splitDebugFilename: "c.dwo", emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: GNU)
+!1 = !DIFile(filename: "c.cpp", directory: "/proc/self/cwd", checksumkind: CSK_MD5, checksum: "e508eeb01e2e608fe8713f9132696ef5")
+!2 = !{i32 7, !"Dwarf Version", i32 5}
+!3 = !{i32 2, !"Debug Info Version", i32 3}
+!4 = !{i32 1, !"wchar_size", i32 4}
+!5 = !{i32 8, !"PIC Level", i32 2}
+!6 = !{i32 7, !"PIE Level", i32 2}
+!7 = !{i32 7, !"uwtable", i32 2}
+!8 = !{i32 7, !"frame-pointer", i32 2}
+!9 = distinct !DISubprogram(name: "c", linkageName: "_Z1cv", scope: !1, file: !1, line: 2, type: !10, scopeLine: 2, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0)
+!10 = !DISubroutineType(types: !11)
+!11 = !{!12}
+!12 = !DIDerivedType(tag: DW_TAG_typedef, name: "baz", file: !1, line: 1, baseType: !13)
+!13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
+!14 = !DILocation(line: 2, column: 11, scope: !9)
diff --git a/llvm/test/tools/llvm-ifs/write-stub.test b/llvm/test/tools/llvm-ifs/write-stub.test
index 44c194b77abc..e9f2d4f147b2 100644
--- a/llvm/test/tools/llvm-ifs/write-stub.test
+++ b/llvm/test/tools/llvm-ifs/write-stub.test
@@ -151,7 +151,7 @@ Symbols:
# CHECK-NEXT: 0x[[DYNTABZ]]0000006 SYMTAB
# CHECK-NEXT: 0x[[DYNTABZ]]0000005 STRTAB
# CHECK-NEXT: 0x[[DYNTABZ]]000000A STRSZ
-# CHECK-NEXT: 0x[[DYNTABZ]]0000001 NEEDED Shared library: [libc.so.6]
+# CHECK-NEXT: 0x[[DYNTABZ]]0000001 NEEDED Shared library: libc.so.6
# CHECK-NEXT: 0x[[DYNTABZ]]0000000 NULL
# CHECK-NEXT: ]
diff --git a/llvm/test/tools/llvm-mca/RISCV/SyntacoreSCR/SCR3-ALU.s b/llvm/test/tools/llvm-mca/RISCV/SyntacoreSCR/SCR3-ALU.s
new file mode 100644
index 000000000000..83866106b47a
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/RISCV/SyntacoreSCR/SCR3-ALU.s
@@ -0,0 +1,91 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=riscv64-unknown-unknown -mcpu=syntacore-scr3-rv64 --iterations=1 < %s | FileCheck %s --check-prefixes=CHECK,RV64
+# RUN: llvm-mca -mtriple=riscv32-unknown-unknown -mcpu=syntacore-scr3-rv32 --iterations=1 < %s | FileCheck %s --check-prefixes=CHECK,RV32
+
+div a0, a0, a0
+mul t0, a0, t0
+add t1, a0, t0
+add t2, t2, t2
+div a1, a1, a1
+mul s0, a1, s0
+add s1, s0, s1
+add s2, s2, s2
+
+# CHECK: Iterations: 1
+# CHECK-NEXT: Instructions: 8
+
+# RV32-NEXT: Total Cycles: 25
+# RV64-NEXT: Total Cycles: 31
+
+# CHECK-NEXT: Total uOps: 8
+
+# CHECK: Dispatch Width: 1
+
+# RV32-NEXT: uOps Per Cycle: 0.32
+# RV32-NEXT: IPC: 0.32
+# RV32-NEXT: Block RThroughput: 16.0
+
+# RV64-NEXT: uOps Per Cycle: 0.26
+# RV64-NEXT: IPC: 0.26
+# RV64-NEXT: Block RThroughput: 22.0
+
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+
+# RV32-NEXT: 1 8 8.00 div a0, a0, a0
+# RV64-NEXT: 1 11 11.00 div a0, a0, a0
+
+# CHECK-NEXT: 1 2 1.00 mul t0, a0, t0
+# CHECK-NEXT: 1 1 1.00 add t1, a0, t0
+# CHECK-NEXT: 1 1 1.00 add t2, t2, t2
+
+# RV32-NEXT: 1 8 8.00 div a1, a1, a1
+# RV64-NEXT: 1 11 11.00 div a1, a1, a1
+
+# CHECK-NEXT: 1 2 1.00 mul s0, a1, s0
+# CHECK-NEXT: 1 1 1.00 add s1, s1, s0
+# CHECK-NEXT: 1 1 1.00 add s2, s2, s2
+
+# CHECK: Resources:
+
+# RV32-NEXT: [0] - SCR3RV32_ALU
+# RV32-NEXT: [1] - SCR3RV32_CFU
+# RV32-NEXT: [2] - SCR3RV32_DIV
+# RV32-NEXT: [3] - SCR3RV32_LSU
+# RV32-NEXT: [4] - SCR3RV32_MUL
+
+# RV64-NEXT: [0] - SCR3RV64_ALU
+# RV64-NEXT: [1] - SCR3RV64_CFU
+# RV64-NEXT: [2] - SCR3RV64_DIV
+# RV64-NEXT: [3] - SCR3RV64_LSU
+# RV64-NEXT: [4] - SCR3RV64_MUL
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0] [1] [2] [3] [4]
+
+# RV32-NEXT: 4.00 - 16.00 - 2.00
+# RV64-NEXT: 4.00 - 22.00 - 2.00
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] Instructions:
+
+# RV32-NEXT: - - 8.00 - - div a0, a0, a0
+# RV64-NEXT: - - 11.00 - - div a0, a0, a0
+
+# CHECK-NEXT: - - - - 1.00 mul t0, a0, t0
+# CHECK-NEXT: 1.00 - - - - add t1, a0, t0
+# CHECK-NEXT: 1.00 - - - - add t2, t2, t2
+
+# RV32-NEXT: - - 8.00 - - div a1, a1, a1
+# RV64-NEXT: - - 11.00 - - div a1, a1, a1
+
+# CHECK-NEXT: - - - - 1.00 mul s0, a1, s0
+# CHECK-NEXT: 1.00 - - - - add s1, s1, s0
+# CHECK-NEXT: 1.00 - - - - add s2, s2, s2
diff --git a/llvm/test/tools/llvm-mca/RISCV/SyntacoreSCR/SCR3-LSU.s b/llvm/test/tools/llvm-mca/RISCV/SyntacoreSCR/SCR3-LSU.s
new file mode 100644
index 000000000000..dc8ff80198ea
--- /dev/null
+++ b/llvm/test/tools/llvm-mca/RISCV/SyntacoreSCR/SCR3-LSU.s
@@ -0,0 +1,57 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=riscv64-unknown-unknown -mcpu=syntacore-scr3-rv64 --iterations=1 < %s | FileCheck %s --check-prefixes=CHECK,RV64
+# RUN: llvm-mca -mtriple=riscv32-unknown-unknown -mcpu=syntacore-scr3-rv32 --iterations=1 < %s | FileCheck %s --check-prefixes=CHECK,RV32
+
+lw a0, 0(s0)
+lw a1, 0(s0)
+lw a2, 0(s0)
+lw a3, 0(s0)
+
+# CHECK: Iterations: 1
+# CHECK-NEXT: Instructions: 4
+# CHECK-NEXT: Total Cycles: 6
+# CHECK-NEXT: Total uOps: 4
+
+# CHECK: Dispatch Width: 1
+# CHECK-NEXT: uOps Per Cycle: 0.67
+# CHECK-NEXT: IPC: 0.67
+# CHECK-NEXT: Block RThroughput: 4.0
+
+# CHECK: Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+# CHECK-NEXT: 1 2 1.00 * lw a0, 0(s0)
+# CHECK-NEXT: 1 2 1.00 * lw a1, 0(s0)
+# CHECK-NEXT: 1 2 1.00 * lw a2, 0(s0)
+# CHECK-NEXT: 1 2 1.00 * lw a3, 0(s0)
+
+# CHECK: Resources:
+
+# RV32-NEXT: [0] - SCR3RV32_ALU
+# RV32-NEXT: [1] - SCR3RV32_CFU
+# RV32-NEXT: [2] - SCR3RV32_DIV
+# RV32-NEXT: [3] - SCR3RV32_LSU
+# RV32-NEXT: [4] - SCR3RV32_MUL
+
+# RV64-NEXT: [0] - SCR3RV64_ALU
+# RV64-NEXT: [1] - SCR3RV64_CFU
+# RV64-NEXT: [2] - SCR3RV64_DIV
+# RV64-NEXT: [3] - SCR3RV64_LSU
+# RV64-NEXT: [4] - SCR3RV64_MUL
+
+# CHECK: Resource pressure per iteration:
+# CHECK-NEXT: [0] [1] [2] [3] [4]
+# CHECK-NEXT: - - - 4.00 -
+
+# CHECK: Resource pressure by instruction:
+# CHECK-NEXT: [0] [1] [2] [3] [4] Instructions:
+# CHECK-NEXT: - - - 1.00 - lw a0, 0(s0)
+# CHECK-NEXT: - - - 1.00 - lw a1, 0(s0)
+# CHECK-NEXT: - - - 1.00 - lw a2, 0(s0)
+# CHECK-NEXT: - - - 1.00 - lw a3, 0(s0)
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx2.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx2.s
index 95895352f26f..0ad14688d0b7 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx2.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx2.s
@@ -625,29 +625,29 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vpminuw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.50 * vpminuw (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 1.00 vpmovmskb %ymm0, %ecx
-# CHECK-NEXT: 1 2 1.00 vpmovsxbd %xmm0, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpmovsxbd %xmm0, %ymm2
# CHECK-NEXT: 1 11 1.50 * vpmovsxbd (%rax), %ymm2
-# CHECK-NEXT: 1 2 1.00 vpmovsxbq %xmm0, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpmovsxbq %xmm0, %ymm2
# CHECK-NEXT: 1 11 1.50 * vpmovsxbq (%rax), %ymm2
-# CHECK-NEXT: 1 2 1.00 vpmovsxbw %xmm0, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpmovsxbw %xmm0, %ymm2
# CHECK-NEXT: 1 11 1.50 * vpmovsxbw (%rax), %ymm2
-# CHECK-NEXT: 1 2 1.00 vpmovsxdq %xmm0, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpmovsxdq %xmm0, %ymm2
# CHECK-NEXT: 1 11 1.50 * vpmovsxdq (%rax), %ymm2
-# CHECK-NEXT: 1 2 1.00 vpmovsxwd %xmm0, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpmovsxwd %xmm0, %ymm2
# CHECK-NEXT: 1 11 1.50 * vpmovsxwd (%rax), %ymm2
-# CHECK-NEXT: 1 2 1.00 vpmovsxwq %xmm0, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpmovsxwq %xmm0, %ymm2
# CHECK-NEXT: 1 11 1.50 * vpmovsxwq (%rax), %ymm2
-# CHECK-NEXT: 1 2 1.00 vpmovzxbd %xmm0, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpmovzxbd %xmm0, %ymm2
# CHECK-NEXT: 1 11 1.50 * vpmovzxbd (%rax), %ymm2
-# CHECK-NEXT: 1 2 1.00 vpmovzxbq %xmm0, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpmovzxbq %xmm0, %ymm2
# CHECK-NEXT: 1 11 1.50 * vpmovzxbq (%rax), %ymm2
-# CHECK-NEXT: 1 2 1.00 vpmovzxbw %xmm0, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpmovzxbw %xmm0, %ymm2
# CHECK-NEXT: 1 11 1.50 * vpmovzxbw (%rax), %ymm2
-# CHECK-NEXT: 1 2 1.00 vpmovzxdq %xmm0, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpmovzxdq %xmm0, %ymm2
# CHECK-NEXT: 1 11 1.50 * vpmovzxdq (%rax), %ymm2
-# CHECK-NEXT: 1 2 1.00 vpmovzxwd %xmm0, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpmovzxwd %xmm0, %ymm2
# CHECK-NEXT: 1 11 1.50 * vpmovzxwd (%rax), %ymm2
-# CHECK-NEXT: 1 2 1.00 vpmovzxwq %xmm0, %ymm2
+# CHECK-NEXT: 1 2 0.50 vpmovzxwq %xmm0, %ymm2
# CHECK-NEXT: 1 11 1.50 * vpmovzxwq (%rax), %ymm2
# CHECK-NEXT: 1 3 0.50 vpmuldq %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 10 0.50 * vpmuldq (%rax), %ymm1, %ymm2
@@ -789,7 +789,7 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
-# CHECK-NEXT: 6.67 6.67 6.67 - - - - - 93.75 138.75 98.25 36.25 80.50 80.50 29.00 52.33 52.33 52.33 50.67 50.67 50.67 2.50 2.50
+# CHECK-NEXT: 6.67 6.67 6.67 - - - - - 93.75 132.75 92.25 36.25 80.50 80.50 29.00 52.33 52.33 52.33 50.67 50.67 50.67 2.50 2.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
@@ -958,29 +958,29 @@ vpxor (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - - - - - - vpminuw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpminuw (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vpmovmskb %ymm0, %ecx
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbd %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbd %xmm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbd (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbq %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbq %xmm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbq (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbw %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbw %xmm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbw (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxdq %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxdq %xmm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxdq (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwd %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwd %xmm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwd (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwq %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwq %xmm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwq (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbd %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbd %xmm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbd (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbq %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbq %xmm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbq (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbw %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbw %xmm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbw (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxdq %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxdq %xmm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxdq (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwd %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwd %xmm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwd (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwq %xmm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwq %xmm0, %ymm2
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwq (%rax), %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 - - - - - - - - - - - vpmuldq %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmuldq (%rax), %ymm1, %ymm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bwvl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bwvl.s
index 3ac35f55b7ee..8a62f803fce0 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bwvl.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bwvl.s
@@ -1604,53 +1604,53 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 0 0.17 vpmovm2w %k0, %xmm0
# CHECK-NEXT: 1 0 0.17 vpmovm2b %k0, %ymm0
# CHECK-NEXT: 1 0 0.17 vpmovm2w %k0, %ymm0
-# CHECK-NEXT: 1 2 1.00 vpmovsxbw %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovsxbw %xmm16, %xmm19
# CHECK-NEXT: 1 8 0.50 * vpmovsxbw (%rax), %xmm19
-# CHECK-NEXT: 1 2 1.00 vpmovsxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovsxbw %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 8 0.50 * vpmovsxbw (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovsxbw %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 8 0.50 * vpmovsxbw (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovsxbw %xmm16, %ymm19
+# CHECK-NEXT: 1 2 0.50 vpmovsxbw %xmm16, %ymm19
# CHECK-NEXT: 1 11 1.50 * vpmovsxbw (%rax), %ymm19
-# CHECK-NEXT: 1 2 1.00 vpmovsxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovsxbw %xmm16, %ymm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovsxbw (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovsxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovsxbw %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 1.50 * vpmovsxbw (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovswb %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovswb %xmm16, %xmm19
# CHECK-NEXT: 1 11 1.50 * vpmovswb %xmm16, (%rax)
-# CHECK-NEXT: 1 2 1.00 vpmovswb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovswb %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovswb %xmm16, (%rax) {%k1}
-# CHECK-NEXT: 2 4 1.50 vpmovswb %ymm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovswb %ymm16, %xmm19
# CHECK-NEXT: 1 11 1.50 * vpmovswb %ymm16, (%rax)
-# CHECK-NEXT: 2 4 1.50 vpmovswb %ymm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovswb %ymm16, %xmm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovswb %ymm16, (%rax) {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovuswb %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovuswb %xmm16, %xmm19
# CHECK-NEXT: 1 11 1.50 * vpmovuswb %xmm16, (%rax)
-# CHECK-NEXT: 1 2 1.00 vpmovuswb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovuswb %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovuswb %xmm16, (%rax) {%k1}
-# CHECK-NEXT: 2 4 1.50 vpmovuswb %ymm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovuswb %ymm16, %xmm19
# CHECK-NEXT: 1 11 1.50 * vpmovuswb %ymm16, (%rax)
-# CHECK-NEXT: 2 4 1.50 vpmovuswb %ymm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovuswb %ymm16, %xmm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovuswb %ymm16, (%rax) {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovwb %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovwb %xmm16, %xmm19
# CHECK-NEXT: 1 11 1.50 * vpmovwb %xmm16, (%rax)
-# CHECK-NEXT: 1 2 1.00 vpmovwb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovwb %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovwb %xmm16, (%rax) {%k1}
-# CHECK-NEXT: 2 4 1.50 vpmovwb %ymm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovwb %ymm16, %xmm19
# CHECK-NEXT: 1 11 1.50 * vpmovwb %ymm16, (%rax)
-# CHECK-NEXT: 2 4 1.50 vpmovwb %ymm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovwb %ymm16, %xmm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovwb %ymm16, (%rax) {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovzxbw %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovzxbw %xmm16, %xmm19
# CHECK-NEXT: 1 8 0.50 * vpmovzxbw (%rax), %xmm19
-# CHECK-NEXT: 1 2 1.00 vpmovzxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovzxbw %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 8 0.50 * vpmovzxbw (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovzxbw %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 8 0.50 * vpmovzxbw (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovzxbw %xmm16, %ymm19
+# CHECK-NEXT: 1 2 0.50 vpmovzxbw %xmm16, %ymm19
# CHECK-NEXT: 1 11 1.50 * vpmovzxbw (%rax), %ymm19
-# CHECK-NEXT: 1 2 1.00 vpmovzxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovzxbw %xmm16, %ymm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovzxbw (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovzxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovzxbw %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 1.50 * vpmovzxbw (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 3 0.50 vpmulhrsw %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 1 10 0.50 * vpmulhrsw (%rax), %xmm17, %xmm19
@@ -2036,7 +2036,7 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
-# CHECK-NEXT: - - - 4.00 4.00 4.00 4.00 - 233.00 423.50 312.50 140.00 226.00 226.00 8.00 150.67 150.67 150.67 148.00 148.00 148.00 4.00 4.00
+# CHECK-NEXT: - - - 4.00 4.00 4.00 4.00 - 233.00 408.50 297.50 140.00 226.00 226.00 8.00 150.67 150.67 150.67 148.00 148.00 148.00 4.00 4.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
@@ -2552,53 +2552,53 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - vpmovm2w %k0, %xmm0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - vpmovm2b %k0, %ymm0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - vpmovm2w %k0, %ymm0
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbw %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbw %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbw (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbw %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbw (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbw %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbw (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbw %xmm16, %ymm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbw %xmm16, %ymm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbw (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbw %xmm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbw (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbw %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbw (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovswb %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovswb %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovswb %xmm16, (%rax)
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovswb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovswb %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovswb %xmm16, (%rax) {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - - - - - - - - - - - - vpmovswb %ymm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovswb %ymm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovswb %ymm16, (%rax)
-# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - - - - - - - - - - - - vpmovswb %ymm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovswb %ymm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovswb %ymm16, (%rax) {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovuswb %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovuswb %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovuswb %xmm16, (%rax)
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovuswb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovuswb %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovuswb %xmm16, (%rax) {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - - - - - - - - - - - - vpmovuswb %ymm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovuswb %ymm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovuswb %ymm16, (%rax)
-# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - - - - - - - - - - - - vpmovuswb %ymm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovuswb %ymm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovuswb %ymm16, (%rax) {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovwb %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovwb %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovwb %xmm16, (%rax)
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovwb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovwb %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovwb %xmm16, (%rax) {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - - - - - - - - - - - - vpmovwb %ymm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovwb %ymm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovwb %ymm16, (%rax)
-# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - - - - - - - - - - - - vpmovwb %ymm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovwb %ymm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovwb %ymm16, (%rax) {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbw %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbw %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbw (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbw %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbw (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbw %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbw (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbw %xmm16, %ymm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbw %xmm16, %ymm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbw (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbw %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbw %xmm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbw (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbw %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbw %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbw (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 - - - - - - - - - - - vpmulhrsw %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmulhrsw (%rax), %xmm17, %xmm19
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vl.s
index e2813a564384..2d26eb50351a 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vl.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vl.s
@@ -2759,125 +2759,125 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 1 5 0.33 * vpgatherdd (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: 1 5 0.33 * vpgatherqq (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: 1 5 0.33 * vpgatherqd (%rax,%xmm1,2), %xmm2 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovsxbd %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovsxbd %xmm16, %xmm19
# CHECK-NEXT: 1 8 0.50 * vpmovsxbd (%rax), %xmm19
-# CHECK-NEXT: 1 2 1.00 vpmovsxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovsxbd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 8 0.50 * vpmovsxbd (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovsxbd %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 8 0.50 * vpmovsxbd (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovsxbd %xmm16, %ymm19
+# CHECK-NEXT: 1 2 0.50 vpmovsxbd %xmm16, %ymm19
# CHECK-NEXT: 1 11 1.50 * vpmovsxbd (%rax), %ymm19
-# CHECK-NEXT: 1 2 1.00 vpmovsxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovsxbd %xmm16, %ymm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovsxbd (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovsxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovsxbd %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 1.50 * vpmovsxbd (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovsxbq %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovsxbq %xmm16, %xmm19
# CHECK-NEXT: 1 8 0.50 * vpmovsxbq (%rax), %xmm19
-# CHECK-NEXT: 1 2 1.00 vpmovsxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovsxbq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 8 0.50 * vpmovsxbq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovsxbq %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 8 0.50 * vpmovsxbq (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovsxbq %xmm16, %ymm19
+# CHECK-NEXT: 1 2 0.50 vpmovsxbq %xmm16, %ymm19
# CHECK-NEXT: 1 11 1.50 * vpmovsxbq (%rax), %ymm19
-# CHECK-NEXT: 1 2 1.00 vpmovsxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovsxbq %xmm16, %ymm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovsxbq (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovsxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovsxbq %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 1.50 * vpmovsxbq (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovsxdq %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovsxdq %xmm16, %xmm19
# CHECK-NEXT: 1 8 0.50 * vpmovsxdq (%rax), %xmm19
-# CHECK-NEXT: 1 2 1.00 vpmovsxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovsxdq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 8 0.50 * vpmovsxdq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovsxdq %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 8 0.50 * vpmovsxdq (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovsxdq %xmm16, %ymm19
+# CHECK-NEXT: 1 2 0.50 vpmovsxdq %xmm16, %ymm19
# CHECK-NEXT: 1 11 1.50 * vpmovsxdq (%rax), %ymm19
-# CHECK-NEXT: 1 2 1.00 vpmovsxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovsxdq %xmm16, %ymm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovsxdq (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovsxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovsxdq %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 1.50 * vpmovsxdq (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovsxwd %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovsxwd %xmm16, %xmm19
# CHECK-NEXT: 1 8 0.50 * vpmovsxwd (%rax), %xmm19
-# CHECK-NEXT: 1 2 1.00 vpmovsxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovsxwd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 8 0.50 * vpmovsxwd (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovsxwd %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 8 0.50 * vpmovsxwd (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovsxwd %xmm16, %ymm19
+# CHECK-NEXT: 1 2 0.50 vpmovsxwd %xmm16, %ymm19
# CHECK-NEXT: 1 11 1.50 * vpmovsxwd (%rax), %ymm19
-# CHECK-NEXT: 1 2 1.00 vpmovsxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovsxwd %xmm16, %ymm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovsxwd (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovsxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovsxwd %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 1.50 * vpmovsxwd (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovsxwq %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovsxwq %xmm16, %xmm19
# CHECK-NEXT: 1 8 0.50 * vpmovsxwq (%rax), %xmm19
-# CHECK-NEXT: 1 2 1.00 vpmovsxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovsxwq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 8 0.50 * vpmovsxwq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovsxwq %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 8 0.50 * vpmovsxwq (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovsxwq %xmm16, %ymm19
+# CHECK-NEXT: 1 2 0.50 vpmovsxwq %xmm16, %ymm19
# CHECK-NEXT: 1 11 1.50 * vpmovsxwq (%rax), %ymm19
-# CHECK-NEXT: 1 2 1.00 vpmovsxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovsxwq %xmm16, %ymm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovsxwq (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovsxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovsxwq %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 1.50 * vpmovsxwq (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovzxbd %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovzxbd %xmm16, %xmm19
# CHECK-NEXT: 1 8 0.50 * vpmovzxbd (%rax), %xmm19
-# CHECK-NEXT: 1 2 1.00 vpmovzxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovzxbd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 8 0.50 * vpmovzxbd (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovzxbd %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 8 0.50 * vpmovzxbd (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovzxbd %xmm16, %ymm19
+# CHECK-NEXT: 1 2 0.50 vpmovzxbd %xmm16, %ymm19
# CHECK-NEXT: 1 11 1.50 * vpmovzxbd (%rax), %ymm19
-# CHECK-NEXT: 1 2 1.00 vpmovzxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovzxbd %xmm16, %ymm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovzxbd (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovzxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovzxbd %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 1.50 * vpmovzxbd (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovzxbq %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovzxbq %xmm16, %xmm19
# CHECK-NEXT: 1 8 0.50 * vpmovzxbq (%rax), %xmm19
-# CHECK-NEXT: 1 2 1.00 vpmovzxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovzxbq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 8 0.50 * vpmovzxbq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovzxbq %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 8 0.50 * vpmovzxbq (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovzxbq %xmm16, %ymm19
+# CHECK-NEXT: 1 2 0.50 vpmovzxbq %xmm16, %ymm19
# CHECK-NEXT: 1 11 1.50 * vpmovzxbq (%rax), %ymm19
-# CHECK-NEXT: 1 2 1.00 vpmovzxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovzxbq %xmm16, %ymm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovzxbq (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovzxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovzxbq %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 1.50 * vpmovzxbq (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovzxdq %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovzxdq %xmm16, %xmm19
# CHECK-NEXT: 1 8 0.50 * vpmovzxdq (%rax), %xmm19
-# CHECK-NEXT: 1 2 1.00 vpmovzxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovzxdq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 8 0.50 * vpmovzxdq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovzxdq %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 8 0.50 * vpmovzxdq (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovzxdq %xmm16, %ymm19
+# CHECK-NEXT: 1 2 0.50 vpmovzxdq %xmm16, %ymm19
# CHECK-NEXT: 1 11 1.50 * vpmovzxdq (%rax), %ymm19
-# CHECK-NEXT: 1 2 1.00 vpmovzxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovzxdq %xmm16, %ymm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovzxdq (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovzxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovzxdq %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 1.50 * vpmovzxdq (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovzxwd %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovzxwd %xmm16, %xmm19
# CHECK-NEXT: 1 8 0.50 * vpmovzxwd (%rax), %xmm19
-# CHECK-NEXT: 1 2 1.00 vpmovzxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovzxwd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 8 0.50 * vpmovzxwd (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovzxwd %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 8 0.50 * vpmovzxwd (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovzxwd %xmm16, %ymm19
+# CHECK-NEXT: 1 2 0.50 vpmovzxwd %xmm16, %ymm19
# CHECK-NEXT: 1 11 1.50 * vpmovzxwd (%rax), %ymm19
-# CHECK-NEXT: 1 2 1.00 vpmovzxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovzxwd %xmm16, %ymm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovzxwd (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovzxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovzxwd %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 1.50 * vpmovzxwd (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovzxwq %xmm16, %xmm19
+# CHECK-NEXT: 1 2 0.50 vpmovzxwq %xmm16, %xmm19
# CHECK-NEXT: 1 8 0.50 * vpmovzxwq (%rax), %xmm19
-# CHECK-NEXT: 1 2 1.00 vpmovzxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovzxwq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 1 8 0.50 * vpmovzxwq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovzxwq %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: 1 8 0.50 * vpmovzxwq (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: 1 2 1.00 vpmovzxwq %xmm16, %ymm19
+# CHECK-NEXT: 1 2 0.50 vpmovzxwq %xmm16, %ymm19
# CHECK-NEXT: 1 11 1.50 * vpmovzxwq (%rax), %ymm19
-# CHECK-NEXT: 1 2 1.00 vpmovzxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: 1 2 0.50 vpmovzxwq %xmm16, %ymm19 {%k1}
# CHECK-NEXT: 1 11 1.50 * vpmovzxwq (%rax), %ymm19 {%k1}
-# CHECK-NEXT: 1 2 1.00 vpmovzxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 2 0.50 vpmovzxwq %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 11 1.50 * vpmovzxwq (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: 1 3 0.50 vpmulld %xmm16, %xmm17, %xmm19
# CHECK-NEXT: 1 10 0.50 * vpmulld (%rax), %xmm17, %xmm19
@@ -3243,7 +3243,7 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
-# CHECK-NEXT: 5.33 5.33 5.33 - - - - - 208.00 978.00 531.50 261.50 478.50 478.50 32.00 324.33 324.33 324.33 313.67 313.67 313.67 16.00 16.00
+# CHECK-NEXT: 5.33 5.33 5.33 - - - - - 208.00 948.00 501.50 261.50 478.50 478.50 32.00 324.33 324.33 324.33 313.67 313.67 313.67 16.00 16.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
@@ -4297,125 +4297,125 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpgatherdd (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpgatherqq (%rax,%xmm1,2), %xmm2 {%k1}
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - - - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpgatherqd (%rax,%xmm1,2), %xmm2 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbd %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbd %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbd (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbd (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbd %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbd (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbd %xmm16, %ymm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbd %xmm16, %ymm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbd (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbd %xmm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbd (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbd %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbd (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbq %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbq %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbq (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbq %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbq (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbq %xmm16, %ymm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbq %xmm16, %ymm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbq (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbq %xmm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbq (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxbq %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxbq (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxdq %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxdq %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxdq (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxdq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxdq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxdq %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxdq (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxdq %xmm16, %ymm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxdq %xmm16, %ymm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxdq (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxdq %xmm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxdq (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxdq %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxdq (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwd %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwd %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwd (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwd (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwd %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwd (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwd %xmm16, %ymm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwd %xmm16, %ymm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwd (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwd %xmm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwd (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwd %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwd (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwq %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwq %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwq (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwq %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwq (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwq %xmm16, %ymm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwq %xmm16, %ymm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwq (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwq %xmm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwq (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovsxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovsxwq %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovsxwq (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbd %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbd %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbd (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbd (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbd %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbd (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbd %xmm16, %ymm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbd %xmm16, %ymm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbd (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbd %xmm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbd (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbd %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbd (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbq %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbq %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbq (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbq %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbq (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbq %xmm16, %ymm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbq %xmm16, %ymm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbq (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbq %xmm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbq (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxbq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxbq %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxbq (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxdq %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxdq %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxdq (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxdq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxdq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxdq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxdq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxdq %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxdq (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxdq %xmm16, %ymm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxdq %xmm16, %ymm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxdq (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxdq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxdq %xmm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxdq (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxdq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxdq %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxdq (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwd %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwd %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwd (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwd (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwd %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwd (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwd %xmm16, %ymm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwd %xmm16, %ymm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwd (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwd %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwd %xmm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwd (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwd %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwd %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwd (%rax), %ymm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwq %xmm16, %xmm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwq %xmm16, %xmm19
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwq (%rax), %xmm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwq %xmm16, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwq (%rax), %xmm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwq %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwq %xmm16, %xmm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwq (%rax), %xmm19 {%k1} {z}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwq %xmm16, %ymm19
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwq %xmm16, %ymm19
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwq (%rax), %ymm19
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwq %xmm16, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwq %xmm16, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwq (%rax), %ymm19 {%k1}
-# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - vpmovzxwq %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - - - - - - - - - - - vpmovzxwq %xmm16, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - - 1.50 1.50 - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmovzxwq (%rax), %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 - - - - - - - - - - - vpmulld %xmm16, %xmm17, %xmm19
# CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpmulld (%rax), %xmm17, %xmm19
diff --git a/llvm/test/tools/llvm-objcopy/ELF/mirror-permissions-win.test b/llvm/test/tools/llvm-objcopy/ELF/mirror-permissions-win.test
index c35df343c0d3..f8b0d389df9b 100644
--- a/llvm/test/tools/llvm-objcopy/ELF/mirror-permissions-win.test
+++ b/llvm/test/tools/llvm-objcopy/ELF/mirror-permissions-win.test
@@ -1,7 +1,7 @@
## Test that permissions for ouput files are mirrored
## from their input files.
-## The Unix version of this test is seperated because it needs
+## The Unix version of this test is separated because it needs
## to use umask(1). Windows has no umask, so it can be considered
## to be always 0, the required behavior.
# REQUIRES: system-windows
diff --git a/llvm/test/tools/llvm-objdump/XCOFF/file-headers.test b/llvm/test/tools/llvm-objdump/XCOFF/file-headers.test
new file mode 100644
index 000000000000..89218ac6852f
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/XCOFF/file-headers.test
@@ -0,0 +1,21 @@
+## Test the `--file-headers` option of llvm-objdump for XCOFF object files.
+# RUN: yaml2obj %s -o %t1
+# RUN: llvm-objdump --file-headers %t1 |\
+# RUN: FileCheck %s --check-prefix=CHECK32 --match-full-lines
+# RUN: yaml2obj %s -DMAGIC=0x1F7 -o %t2
+# RUN: llvm-objdump --file-headers %t2 |\
+# RUN: FileCheck %s --check-prefix=CHECK64 --match-full-lines
+
+# CHECK32: {{.*}}file format aixcoff-rs6000
+# CHECK32-NEXT: architecture: powerpc
+# CHECK32-NEXT: start address: 0x00001111
+
+# CHECK64: {{.*}}file format aix5coff64-rs6000
+# CHECK64-NEXT: architecture: powerpc64
+# CHECK64-NEXT: start address: 0x0000000000001111
+
+--- !XCOFF
+FileHeader:
+ MagicNumber: [[MAGIC=0x1DF]]
+AuxiliaryHeader:
+ EntryPointAddr: 0x1111
diff --git a/llvm/test/tools/llvm-profdata/Inputs/basic-histogram.memprofexe b/llvm/test/tools/llvm-profdata/Inputs/basic-histogram.memprofexe
new file mode 100755
index 000000000000..502472c6977d
--- /dev/null
+++ b/llvm/test/tools/llvm-profdata/Inputs/basic-histogram.memprofexe
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/basic-histogram.memprofraw b/llvm/test/tools/llvm-profdata/Inputs/basic-histogram.memprofraw
new file mode 100644
index 000000000000..850da9e55711
--- /dev/null
+++ b/llvm/test/tools/llvm-profdata/Inputs/basic-histogram.memprofraw
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/basic.memprofexe b/llvm/test/tools/llvm-profdata/Inputs/basic.memprofexe
index d03894b6d8e4..32b52c8b5be9 100755
--- a/llvm/test/tools/llvm-profdata/Inputs/basic.memprofexe
+++ b/llvm/test/tools/llvm-profdata/Inputs/basic.memprofexe
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/basic.memprofraw b/llvm/test/tools/llvm-profdata/Inputs/basic.memprofraw
index 62b7d299d3aa..dae9b4d9c079 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/basic.memprofraw
+++ b/llvm/test/tools/llvm-profdata/Inputs/basic.memprofraw
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/basic_v3.memprofexe b/llvm/test/tools/llvm-profdata/Inputs/basic_v3.memprofexe
new file mode 100755
index 000000000000..d03894b6d8e4
--- /dev/null
+++ b/llvm/test/tools/llvm-profdata/Inputs/basic_v3.memprofexe
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/basic_v3.memprofraw b/llvm/test/tools/llvm-profdata/Inputs/basic_v3.memprofraw
new file mode 100644
index 000000000000..62b7d299d3aa
--- /dev/null
+++ b/llvm/test/tools/llvm-profdata/Inputs/basic_v3.memprofraw
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/buildid.memprofexe b/llvm/test/tools/llvm-profdata/Inputs/buildid.memprofexe
index 5687d065d035..3de26f6ee421 100755
--- a/llvm/test/tools/llvm-profdata/Inputs/buildid.memprofexe
+++ b/llvm/test/tools/llvm-profdata/Inputs/buildid.memprofexe
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/buildid.memprofraw b/llvm/test/tools/llvm-profdata/Inputs/buildid.memprofraw
index 43f9ca99c28b..56926cb9d32e 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/buildid.memprofraw
+++ b/llvm/test/tools/llvm-profdata/Inputs/buildid.memprofraw
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/inline.memprofexe b/llvm/test/tools/llvm-profdata/Inputs/inline.memprofexe
index 766d2c471313..2953080c3d52 100755
--- a/llvm/test/tools/llvm-profdata/Inputs/inline.memprofexe
+++ b/llvm/test/tools/llvm-profdata/Inputs/inline.memprofexe
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/inline.memprofraw b/llvm/test/tools/llvm-profdata/Inputs/inline.memprofraw
index 26254ae67c7c..453b059b3319 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/inline.memprofraw
+++ b/llvm/test/tools/llvm-profdata/Inputs/inline.memprofraw
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/multi.memprofexe b/llvm/test/tools/llvm-profdata/Inputs/multi.memprofexe
index d5c3ec65b3ac..3ba9f8a565ed 100755
--- a/llvm/test/tools/llvm-profdata/Inputs/multi.memprofexe
+++ b/llvm/test/tools/llvm-profdata/Inputs/multi.memprofexe
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/multi.memprofraw b/llvm/test/tools/llvm-profdata/Inputs/multi.memprofraw
index a1018aae2fba..792edb742303 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/multi.memprofraw
+++ b/llvm/test/tools/llvm-profdata/Inputs/multi.memprofraw
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/padding-histogram.memprofexe b/llvm/test/tools/llvm-profdata/Inputs/padding-histogram.memprofexe
new file mode 100755
index 000000000000..fad3fc111a33
--- /dev/null
+++ b/llvm/test/tools/llvm-profdata/Inputs/padding-histogram.memprofexe
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/padding-histogram.memprofraw b/llvm/test/tools/llvm-profdata/Inputs/padding-histogram.memprofraw
new file mode 100644
index 000000000000..0d540ca94a5a
--- /dev/null
+++ b/llvm/test/tools/llvm-profdata/Inputs/padding-histogram.memprofraw
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/pic.memprofexe b/llvm/test/tools/llvm-profdata/Inputs/pic.memprofexe
index d854186380e7..b92ed10d2410 100755
--- a/llvm/test/tools/llvm-profdata/Inputs/pic.memprofexe
+++ b/llvm/test/tools/llvm-profdata/Inputs/pic.memprofexe
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/pic.memprofraw b/llvm/test/tools/llvm-profdata/Inputs/pic.memprofraw
index 992022fa9129..1994b49eb15e 100644
--- a/llvm/test/tools/llvm-profdata/Inputs/pic.memprofraw
+++ b/llvm/test/tools/llvm-profdata/Inputs/pic.memprofraw
Binary files differ
diff --git a/llvm/test/tools/llvm-profdata/Inputs/update_memprof_inputs.sh b/llvm/test/tools/llvm-profdata/Inputs/update_memprof_inputs.sh
index 5365a0bb6cc3..10c36a834c06 100755
--- a/llvm/test/tools/llvm-profdata/Inputs/update_memprof_inputs.sh
+++ b/llvm/test/tools/llvm-profdata/Inputs/update_memprof_inputs.sh
@@ -31,7 +31,7 @@ read -r -d '' INLINE << EOF
__attribute__((always_inline))
void qux(int x) {
- char *ptr = malloc(x);
+ char *ptr = (char*) malloc(x);
memset(ptr, 0, x);
free(ptr);
}
@@ -64,6 +64,190 @@ int main(int argc, char **argv) {
}
EOF
+read -r -d '' BASIC_HISTOGRAM << EOF
+struct A {
+ long int a;
+ long int b;
+ long int c;
+ long int d;
+ long int e;
+ long int f;
+ long int g;
+ long int h;
+ A() {};
+};
+
+void foo() {
+ long int acc = 0;
+ A *a = new A();
+ acc += a->a;
+ acc += a->b;
+ acc += a->c;
+ acc += a->d;
+ acc += a->e;
+ acc += a->f;
+ acc += a->g;
+ acc += a->h;
+ delete a;
+}
+void bar() {
+ long int acc = 0;
+ A *a = new A();
+ acc += a->a;
+ acc += a->a;
+ acc += a->a;
+ acc += a->a;
+ acc += a->a;
+ acc += a->a;
+ acc += a->a;
+ acc += a->a;
+ acc += a->b;
+ acc += a->b;
+ acc += a->b;
+ acc += a->b;
+ acc += a->b;
+ acc += a->b;
+ acc += a->b;
+ acc += a->c;
+ acc += a->c;
+ acc += a->c;
+ acc += a->c;
+ acc += a->c;
+ acc += a->c;
+ acc += a->d;
+ acc += a->d;
+ acc += a->d;
+ acc += a->d;
+ acc += a->d;
+ acc += a->e;
+ acc += a->e;
+ acc += a->e;
+ acc += a->e;
+ acc += a->f;
+ acc += a->f;
+ acc += a->f;
+ acc += a->g;
+ acc += a->g;
+ acc += a->h;
+
+ delete a;
+}
+
+int main(int argc, char **argv) {
+ long int acc = 0;
+ A *a = new A();
+ acc += a->a;
+ acc += a->b;
+ acc += a->c;
+ acc += a->d;
+ acc += a->e;
+ acc += a->f;
+ acc += a->g;
+ acc += a->h;
+
+ delete a;
+
+ A *b = new A();
+ acc += b->a;
+ acc += b->a;
+ acc += b->a;
+ acc += b->a;
+ acc += b->a;
+ acc += b->a;
+ acc += b->a;
+ acc += b->a;
+ acc += b->b;
+ acc += b->b;
+ acc += b->b;
+ acc += b->b;
+ acc += b->b;
+ acc += b->b;
+ acc += b->b;
+ acc += b->c;
+ acc += b->c;
+ acc += b->c;
+ acc += b->c;
+ acc += b->c;
+ acc += b->c;
+ acc += b->d;
+ acc += b->d;
+ acc += b->d;
+ acc += b->d;
+ acc += b->d;
+ acc += b->e;
+ acc += b->e;
+ acc += b->e;
+ acc += b->e;
+ acc += b->f;
+ acc += b->f;
+ acc += b->f;
+ acc += b->g;
+ acc += b->g;
+ acc += b->h;
+
+ delete b;
+
+ A *c = new A();
+ acc += c->a;
+
+ for (int i = 0; i < 21; ++i) {
+
+ foo();
+ }
+
+ for (int i = 0; i < 21; ++i) {
+
+ bar();
+ }
+
+ return 0;
+}
+EOF
+
+read -r -d '' PADDING_HISTOGRAM << EOF
+struct A {
+ char a;
+ char b;
+ long int c;
+ char d;
+ int e;
+ A() {};
+};
+
+struct B {
+ double x;
+ double y;
+ B() {};
+};
+
+struct C {
+ A a;
+ char z;
+ B b;
+ C() {};
+};
+
+int main(int argc, char **argv) {
+ long int acc = 0;
+
+ A *a = new A();
+ acc += a->a;
+ acc += a->b;
+ acc += a->c;
+ acc += a->d;
+ acc += a->e;
+
+ C *c = new C();
+ acc += c->a.a;
+ acc += c->a.a;
+ acc += c->b.x;
+ acc += c->b.y;
+
+ return 0;
+}
+EOF
+
+
DEFAULT_MEMPROF_FLAGS="-fuse-ld=lld -Wl,--no-rosegment -gmlt -fdebug-info-for-profiling -fmemory-profile -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -m64 -Wl,-build-id -no-pie"
# Map each test to their source and any additional flags separated by ;
@@ -81,3 +265,20 @@ for name in "${!INPUTS[@]}"; do
env MEMPROF_OPTIONS=log_path=stdout ${OUTDIR}/${name}.memprofexe > ${OUTDIR}/${name}.memprofraw
rm ${OUTDIR}/${name}.c
done
+
+
+DEFAULT_HIST_FLAGS="${DEFAULT_MEMPROF_FLAGS} -mllvm -memprof-use-callbacks=true -mllvm -memprof-histogram"
+
+
+# Map each test to their source and any additional flags separated by ;
+declare -A HISTOGRAM_INPUTS
+HISTOGRAM_INPUTS["basic-histogram"]="BASIC_HISTOGRAM"
+HISTOGRAM_INPUTS["padding-histogram"]="PADDING_HISTOGRAM"
+
+for name in "${!HISTOGRAM_INPUTS[@]}"; do
+ IFS=";" read -r src flags <<< "${HISTOGRAM_INPUTS[$name]}"
+ echo "${!src}" > ${OUTDIR}/${name}.c
+ ${CLANG} ${DEFAULT_HIST_FLAGS} ${flags} ${OUTDIR}/${name}.c -o ${OUTDIR}/${name}.memprofexe
+ env MEMPROF_OPTIONS=log_path=stdout ${OUTDIR}/${name}.memprofexe > ${OUTDIR}/${name}.memprofraw
+ rm ${OUTDIR}/${name}.c
+done \ No newline at end of file
diff --git a/llvm/test/tools/llvm-profdata/memprof-basic-histogram.test b/llvm/test/tools/llvm-profdata/memprof-basic-histogram.test
new file mode 100644
index 000000000000..3d30a627bdd7
--- /dev/null
+++ b/llvm/test/tools/llvm-profdata/memprof-basic-histogram.test
@@ -0,0 +1,244 @@
+REQUIRES: x86_64-linux
+
+To update the inputs used below run Inputs/update_memprof_inputs.sh /path/to/updated/clang
+RUN: llvm-profdata show --memory %p/Inputs/basic-histogram.memprofraw --profiled-binary %p/Inputs/basic-histogram.memprofexe -o - | FileCheck %s
+
+We expect 5 MIBs, each with different AccessHistogramValues.
+
+CHECK: MemprofProfile:
+CHECK-NEXT: Summary:
+CHECK-NEXT: Version: 4
+CHECK-NEXT: NumSegments: {{[0-9]+}}
+CHECK-NEXT: NumMibInfo: 5
+CHECK-NEXT: NumAllocFunctions: 3
+CHECK-NEXT: NumStackOffsets: 5
+CHECK-NEXT: Segments:
+CHECK-NEXT: -
+CHECK-NEXT: BuildId: {{[[:xdigit:]]+}}
+CHECK-NEXT: Start: 0x{{[[:xdigit:]]+}}
+CHECK-NEXT: End: 0x{{[[:xdigit:]]+}}
+CHECK-NEXT: Offset: 0x{{[[:xdigit:]]+}}
+CHECK-NEXT: -
+
+CHECK: Records:
+CHECK-NEXT: -
+CHECK-NEXT: FunctionGUID: {{[0-9]+}}
+CHECK-NEXT: AllocSites:
+CHECK-NEXT: -
+CHECK-NEXT: Callstack:
+CHECK-NEXT: -
+CHECK-NEXT: Function: {{[0-9]+}}
+CHECK-NEXT: SymbolName: main
+CHECK-NEXT: LineOffset: 2
+CHECK-NEXT: Column: 10
+CHECK-NEXT: Inline: 0
+CHECK-NEXT: MemInfoBlock:
+CHECK-NEXT: AllocCount: 1
+CHECK-NEXT: TotalAccessCount: 8
+CHECK-NEXT: MinAccessCount: 8
+CHECK-NEXT: MaxAccessCount: 8
+CHECK-NEXT: TotalSize: 64
+CHECK-NEXT: MinSize: 64
+CHECK-NEXT: MaxSize: 64
+CHECK-NEXT: AllocTimestamp: {{[0-9]+}}
+CHECK-NEXT: DeallocTimestamp: {{[0-9]+}}
+CHECK-NEXT: TotalLifetime: 0
+CHECK-NEXT: MinLifetime: 0
+CHECK-NEXT: MaxLifetime: 0
+CHECK-NEXT: AllocCpuId: {{[0-9]+}}
+CHECK-NEXT: DeallocCpuId: {{[0-9]+}}
+CHECK-NEXT: NumMigratedCpu: 0
+CHECK-NEXT: NumLifetimeOverlaps: 0
+CHECK-NEXT: NumSameAllocCpu: 0
+CHECK-NEXT: NumSameDeallocCpu: 0
+CHECK-NEXT: DataTypeId: {{[0-9]+}}
+CHECK-NEXT: TotalAccessDensity: 12
+CHECK-NEXT: MinAccessDensity: 12
+CHECK-NEXT: MaxAccessDensity: 12
+CHECK-NEXT: TotalLifetimeAccessDensity: 12000
+CHECK-NEXT: MinLifetimeAccessDensity: 12000
+CHECK-NEXT: MaxLifetimeAccessDensity: 12000
+CHECK-NEXT: AccessHistogramSize: 8
+CHECK-NEXT: AccessHistogram: {{[0-9]+}}
+CHECK-NEXT: AccessHistogramValues: 1 1 1 1 1 1 1 1
+CHECK-NEXT: -
+CHECK-NEXT: Callstack:
+CHECK-NEXT: -
+CHECK-NEXT: Function: {{[0-9]+}}
+CHECK-NEXT: SymbolName: main
+CHECK-NEXT: LineOffset: 14
+CHECK-NEXT: Column: 10
+CHECK-NEXT: Inline: 0
+CHECK-NEXT: MemInfoBlock:
+CHECK-NEXT: AllocCount: 1
+CHECK-NEXT: TotalAccessCount: 36
+CHECK-NEXT: MinAccessCount: 36
+CHECK-NEXT: MaxAccessCount: 36
+CHECK-NEXT: TotalSize: 64
+CHECK-NEXT: MinSize: 64
+CHECK-NEXT: MaxSize: 64
+CHECK-NEXT: AllocTimestamp: {{[0-9]+}}
+CHECK-NEXT: DeallocTimestamp: {{[0-9]+}}
+CHECK-NEXT: TotalLifetime: 0
+CHECK-NEXT: MinLifetime: 0
+CHECK-NEXT: MaxLifetime: 0
+CHECK-NEXT: AllocCpuId: {{[0-9]+}}
+CHECK-NEXT: DeallocCpuId: {{[0-9]+}}
+CHECK-NEXT: NumMigratedCpu: 0
+CHECK-NEXT: NumLifetimeOverlaps: 0
+CHECK-NEXT: NumSameAllocCpu: 0
+CHECK-NEXT: NumSameDeallocCpu: 0
+CHECK-NEXT: DataTypeId: {{[0-9]+}}
+CHECK-NEXT: TotalAccessDensity: 56
+CHECK-NEXT: MinAccessDensity: 56
+CHECK-NEXT: MaxAccessDensity: 56
+CHECK-NEXT: TotalLifetimeAccessDensity: 56000
+CHECK-NEXT: MinLifetimeAccessDensity: 56000
+CHECK-NEXT: MaxLifetimeAccessDensity: 56000
+CHECK-NEXT: AccessHistogramSize: 8
+CHECK-NEXT: AccessHistogram: {{[0-9]+}}
+CHECK-NEXT: AccessHistogramValues: 8 7 6 5 4 3 2 1
+CHECK-NEXT: -
+CHECK-NEXT: Callstack:
+CHECK-NEXT: -
+CHECK-NEXT: Function: {{[0-9]+}}
+CHECK-NEXT: SymbolName: main
+CHECK-NEXT: LineOffset: 54
+CHECK-NEXT: Column: 10
+CHECK-NEXT: Inline: 0
+CHECK-NEXT: MemInfoBlock:
+CHECK-NEXT: AllocCount: 1
+CHECK-NEXT: TotalAccessCount: 1
+CHECK-NEXT: MinAccessCount: 1
+CHECK-NEXT: MaxAccessCount: 1
+CHECK-NEXT: TotalSize: 64
+CHECK-NEXT: MinSize: 64
+CHECK-NEXT: MaxSize: 64
+CHECK-NEXT: AllocTimestamp: {{[0-9]+}}
+CHECK-NEXT: DeallocTimestamp: {{[0-9]+}}
+CHECK-NEXT: TotalLifetime: 0
+CHECK-NEXT: MinLifetime: 0
+CHECK-NEXT: MaxLifetime: 0
+CHECK-NEXT: AllocCpuId: {{[0-9]+}}
+CHECK-NEXT: DeallocCpuId: {{[0-9]+}}
+CHECK-NEXT: NumMigratedCpu: 0
+CHECK-NEXT: NumLifetimeOverlaps: 0
+CHECK-NEXT: NumSameAllocCpu: 0
+CHECK-NEXT: NumSameDeallocCpu: 0
+CHECK-NEXT: DataTypeId: {{[0-9]+}}
+CHECK-NEXT: TotalAccessDensity: 1
+CHECK-NEXT: MinAccessDensity: 1
+CHECK-NEXT: MaxAccessDensity: 1
+CHECK-NEXT: TotalLifetimeAccessDensity: 1000
+CHECK-NEXT: MinLifetimeAccessDensity: 1000
+CHECK-NEXT: MaxLifetimeAccessDensity: 1000
+CHECK-NEXT: AccessHistogramSize: 8
+CHECK-NEXT: AccessHistogram: {{[0-9]+}}
+CHECK-NEXT: AccessHistogramValues: 1 0 0 0 0 0 0 0
+CHECK-NEXT: CallSites:
+CHECK-NEXT: -
+CHECK-NEXT: -
+CHECK-NEXT: Function: {{[0-9]+}}
+CHECK-NEXT: SymbolName: main
+CHECK-NEXT: LineOffset: 59
+CHECK-NEXT: Column: 5
+CHECK-NEXT: Inline: 0
+CHECK-NEXT: -
+CHECK-NEXT: -
+CHECK-NEXT: Function: {{[0-9]+}}
+CHECK-NEXT: SymbolName: main
+CHECK-NEXT: LineOffset: 64
+CHECK-NEXT: Column: 5
+CHECK-NEXT: Inline: 0
+CHECK-NEXT: -
+CHECK-NEXT: FunctionGUID: {{[0-9]+}}
+CHECK-NEXT: AllocSites:
+CHECK-NEXT: -
+CHECK-NEXT: Callstack:
+CHECK-NEXT: -
+CHECK-NEXT: Function: {{[0-9]+}}
+CHECK-NEXT: SymbolName: _Z3foov
+CHECK-NEXT: LineOffset: 2
+CHECK-NEXT: Column: 10
+CHECK-NEXT: Inline: 0
+CHECK-NEXT: -
+CHECK-NEXT: Function: {{[0-9]+}}
+CHECK-NEXT: SymbolName: main
+CHECK-NEXT: LineOffset: 59
+CHECK-NEXT: Column: 5
+CHECK-NEXT: Inline: 0
+CHECK-NEXT: MemInfoBlock:
+CHECK-NEXT: AllocCount: 21
+CHECK-NEXT: TotalAccessCount: 168
+CHECK-NEXT: MinAccessCount: 8
+CHECK-NEXT: MaxAccessCount: 8
+CHECK-NEXT: TotalSize: 1344
+CHECK-NEXT: MinSize: 64
+CHECK-NEXT: MaxSize: 64
+CHECK-NEXT: AllocTimestamp: {{[0-9]+}}
+CHECK-NEXT: DeallocTimestamp: {{[0-9]+}}
+CHECK-NEXT: TotalLifetime: 0
+CHECK-NEXT: MinLifetime: 0
+CHECK-NEXT: MaxLifetime: 0
+CHECK-NEXT: AllocCpuId: {{[0-9]+}}
+CHECK-NEXT: DeallocCpuId: {{[0-9]+}}
+CHECK-NEXT: NumMigratedCpu: 0
+CHECK-NEXT: NumLifetimeOverlaps: 0
+CHECK-NEXT: NumSameAllocCpu: 20
+CHECK-NEXT: NumSameDeallocCpu: 20
+CHECK-NEXT: DataTypeId: {{[0-9]+}}
+CHECK-NEXT: TotalAccessDensity: 252
+CHECK-NEXT: MinAccessDensity: 12
+CHECK-NEXT: MaxAccessDensity: 12
+CHECK-NEXT: TotalLifetimeAccessDensity: 252000
+CHECK-NEXT: MinLifetimeAccessDensity: 12000
+CHECK-NEXT: MaxLifetimeAccessDensity: 12000
+CHECK-NEXT: AccessHistogramSize: 8
+CHECK-NEXT: AccessHistogram: {{[0-9]+}}
+CHECK-NEXT: AccessHistogramValues: 21 21 21 21 21 21 21 21
+CHECK-NEXT: -
+CHECK-NEXT: FunctionGUID: {{[0-9]+}}
+CHECK-NEXT: AllocSites:
+CHECK-NEXT: -
+CHECK-NEXT: Callstack:
+CHECK-NEXT: -
+CHECK-NEXT: Function: {{[0-9]+}}
+CHECK-NEXT: SymbolName: _Z3barv
+CHECK-NEXT: LineOffset: 2
+CHECK-NEXT: Column: 10
+CHECK-NEXT: Inline: 0
+CHECK-NEXT: -
+CHECK-NEXT: Function: {{[0-9]+}}
+CHECK-NEXT: SymbolName: main
+CHECK-NEXT: LineOffset: 64
+CHECK-NEXT: Column: 5
+CHECK-NEXT: Inline: 0
+CHECK-NEXT: MemInfoBlock:
+CHECK-NEXT: AllocCount: 21
+CHECK-NEXT: TotalAccessCount: 756
+CHECK-NEXT: MinAccessCount: 36
+CHECK-NEXT: MaxAccessCount: 36
+CHECK-NEXT: TotalSize: 1344
+CHECK-NEXT: MinSize: 64
+CHECK-NEXT: MaxSize: 64
+CHECK-NEXT: AllocTimestamp: {{[0-9]+}}
+CHECK-NEXT: DeallocTimestamp: {{[0-9]+}}
+CHECK-NEXT: TotalLifetime: 0
+CHECK-NEXT: MinLifetime: 0
+CHECK-NEXT: MaxLifetime: 0
+CHECK-NEXT: AllocCpuId: {{[0-9]+}}
+CHECK-NEXT: DeallocCpuId: {{[0-9]+}}
+CHECK-NEXT: NumMigratedCpu: 0
+CHECK-NEXT: NumLifetimeOverlaps: 0
+CHECK-NEXT: NumSameAllocCpu: 20
+CHECK-NEXT: NumSameDeallocCpu: 20
+CHECK-NEXT: DataTypeId: {{[0-9]+}}
+CHECK-NEXT: TotalAccessDensity: 1176
+CHECK-NEXT: MinAccessDensity: 56
+CHECK-NEXT: MaxAccessDensity: 56
+CHECK-NEXT: TotalLifetimeAccessDensity: 1176000
+CHECK-NEXT: MinLifetimeAccessDensity: 56000
+CHECK-NEXT: MaxLifetimeAccessDensity: 56000
+CHECK-NEXT: AccessHistogramSize: 8
+CHECK-NEXT: AccessHistogram: {{[0-9]+}}
+CHECK-NEXT: AccessHistogramValues: 168 147 126 105 84 63 42 21 \ No newline at end of file
diff --git a/llvm/test/tools/llvm-profdata/memprof-basic.test b/llvm/test/tools/llvm-profdata/memprof-basic.test
index 8eaa2fa1013f..e15df50bc165 100644
--- a/llvm/test/tools/llvm-profdata/memprof-basic.test
+++ b/llvm/test/tools/llvm-profdata/memprof-basic.test
@@ -8,7 +8,7 @@ additional allocations which do not originate from the main binary are pruned.
CHECK: MemprofProfile:
CHECK-NEXT: Summary:
-CHECK-NEXT: Version: 3
+CHECK-NEXT: Version: 4
CHECK-NEXT: NumSegments: {{[0-9]+}}
CHECK-NEXT: NumMibInfo: 2
CHECK-NEXT: NumAllocFunctions: 1
@@ -59,6 +59,8 @@ CHECK-NEXT: MaxAccessDensity: 20
CHECK-NEXT: TotalLifetimeAccessDensity: 20000
CHECK-NEXT: MinLifetimeAccessDensity: 20000
CHECK-NEXT: MaxLifetimeAccessDensity: 20000
+CHECK-NEXT: AccessHistogramSize: 0
+CHECK-NEXT: AccessHistogram: 0
CHECK-NEXT: -
CHECK-NEXT: Callstack:
CHECK-NEXT: -
@@ -93,3 +95,5 @@ CHECK-NEXT: MaxAccessDensity: 20
CHECK-NEXT: TotalLifetimeAccessDensity: 20000
CHECK-NEXT: MinLifetimeAccessDensity: 20000
CHECK-NEXT: MaxLifetimeAccessDensity: 20000
+CHECK-NEXT: AccessHistogramSize: 0
+CHECK-NEXT: AccessHistogram: 0 \ No newline at end of file
diff --git a/llvm/test/tools/llvm-profdata/memprof-basic_v3.test b/llvm/test/tools/llvm-profdata/memprof-basic_v3.test
new file mode 100644
index 000000000000..3c10c574c403
--- /dev/null
+++ b/llvm/test/tools/llvm-profdata/memprof-basic_v3.test
@@ -0,0 +1,102 @@
+REQUIRES: x86_64-linux
+
+This is a copy of memprof-basic.test with slight changes to check that we can still read v3 of memprofraw.
+
+Inputs cannot and should not be updated.
+
+RUN: llvm-profdata show --memory %p/Inputs/basic_v3.memprofraw --profiled-binary %p/Inputs/basic_v3.memprofexe -o - | FileCheck %s
+
+We expect 2 MIB entries, 1 each for the malloc calls in the program. Any
+additional allocations which do not originate from the main binary are pruned.
+
+CHECK: MemprofProfile:
+CHECK-NEXT: Summary:
+CHECK-NEXT: Version: 3
+CHECK-NEXT: NumSegments: {{[0-9]+}}
+CHECK-NEXT: NumMibInfo: 2
+CHECK-NEXT: NumAllocFunctions: 1
+CHECK-NEXT: NumStackOffsets: 2
+CHECK-NEXT: Segments:
+CHECK-NEXT: -
+CHECK-NEXT: BuildId: {{[[:xdigit:]]+}}
+CHECK-NEXT: Start: 0x{{[[:xdigit:]]+}}
+CHECK-NEXT: End: 0x{{[[:xdigit:]]+}}
+CHECK-NEXT: Offset: 0x{{[[:xdigit:]]+}}
+CHECK-NEXT: -
+
+CHECK: Records:
+CHECK-NEXT: -
+CHECK-NEXT: FunctionGUID: {{[0-9]+}}
+CHECK-NEXT: AllocSites:
+CHECK-NEXT: -
+CHECK-NEXT: Callstack:
+CHECK-NEXT: -
+CHECK-NEXT: Function: {{[0-9]+}}
+CHECK-NEXT: SymbolName: main
+CHECK-NEXT: LineOffset: 1
+CHECK-NEXT: Column: 21
+CHECK-NEXT: Inline: 0
+CHECK-NEXT: MemInfoBlock:
+CHECK-NEXT: AllocCount: 1
+CHECK-NEXT: TotalAccessCount: 2
+CHECK-NEXT: MinAccessCount: 2
+CHECK-NEXT: MaxAccessCount: 2
+CHECK-NEXT: TotalSize: 10
+CHECK-NEXT: MinSize: 10
+CHECK-NEXT: MaxSize: 10
+CHECK-NEXT: AllocTimestamp: {{[0-9]+}}
+CHECK-NEXT: DeallocTimestamp: {{[0-9]+}}
+CHECK-NEXT: TotalLifetime: 0
+CHECK-NEXT: MinLifetime: 0
+CHECK-NEXT: MaxLifetime: 0
+CHECK-NEXT: AllocCpuId: {{[0-9]+}}
+CHECK-NEXT: DeallocCpuId: {{[0-9]+}}
+CHECK-NEXT: NumMigratedCpu: 0
+CHECK-NEXT: NumLifetimeOverlaps: 0
+CHECK-NEXT: NumSameAllocCpu: 0
+CHECK-NEXT: NumSameDeallocCpu: 0
+CHECK-NEXT: DataTypeId: {{[0-9]+}}
+CHECK-NEXT: TotalAccessDensity: 20
+CHECK-NEXT: MinAccessDensity: 20
+CHECK-NEXT: MaxAccessDensity: 20
+CHECK-NEXT: TotalLifetimeAccessDensity: 20000
+CHECK-NEXT: MinLifetimeAccessDensity: 20000
+CHECK-NEXT: MaxLifetimeAccessDensity: 20000
+CHECK-NEXT: AccessHistogramSize: 0
+CHECK-NEXT: AccessHistogram: 0
+CHECK-NEXT: -
+CHECK-NEXT: Callstack:
+CHECK-NEXT: -
+CHECK-NEXT: Function: {{[0-9]+}}
+CHECK-NEXT: SymbolName: main
+CHECK-NEXT: LineOffset: 4
+CHECK-NEXT: Column: 15
+CHECK-NEXT: Inline: 0
+CHECK-NEXT: MemInfoBlock:
+CHECK-NEXT: AllocCount: 1
+CHECK-NEXT: TotalAccessCount: 2
+CHECK-NEXT: MinAccessCount: 2
+CHECK-NEXT: MaxAccessCount: 2
+CHECK-NEXT: TotalSize: 10
+CHECK-NEXT: MinSize: 10
+CHECK-NEXT: MaxSize: 10
+CHECK-NEXT: AllocTimestamp: {{[0-9]+}}
+CHECK-NEXT: DeallocTimestamp: {{[0-9]+}}
+CHECK-NEXT: TotalLifetime: 0
+CHECK-NEXT: MinLifetime: 0
+CHECK-NEXT: MaxLifetime: 0
+CHECK-NEXT: AllocCpuId: {{[0-9]+}}
+CHECK-NEXT: DeallocCpuId: {{[0-9]+}}
+CHECK-NEXT: NumMigratedCpu: 0
+CHECK-NEXT: NumLifetimeOverlaps: 0
+CHECK-NEXT: NumSameAllocCpu: 0
+CHECK-NEXT: NumSameDeallocCpu: 0
+CHECK-NEXT: DataTypeId: {{[0-9]+}}
+CHECK-NEXT: TotalAccessDensity: 20
+CHECK-NEXT: MinAccessDensity: 20
+CHECK-NEXT: MaxAccessDensity: 20
+CHECK-NEXT: TotalLifetimeAccessDensity: 20000
+CHECK-NEXT: MinLifetimeAccessDensity: 20000
+CHECK-NEXT: MaxLifetimeAccessDensity: 20000
+CHECK-NEXT: AccessHistogramSize: 0
+CHECK-NEXT: AccessHistogram: 0 \ No newline at end of file
diff --git a/llvm/test/tools/llvm-profdata/memprof-inline.test b/llvm/test/tools/llvm-profdata/memprof-inline.test
index dd842c054208..79ce2ad83848 100644
--- a/llvm/test/tools/llvm-profdata/memprof-inline.test
+++ b/llvm/test/tools/llvm-profdata/memprof-inline.test
@@ -5,7 +5,7 @@ RUN: llvm-profdata show --memory %p/Inputs/inline.memprofraw --profiled-binary %
CHECK: MemprofProfile:
CHECK-NEXT: Summary:
-CHECK-NEXT: Version: 3
+CHECK-NEXT: Version: 4
CHECK-NEXT: NumSegments: {{[0-9]+}}
CHECK-NEXT: NumMibInfo: 2
CHECK-NEXT: NumAllocFunctions: 2
@@ -20,25 +20,25 @@ CHECK-NEXT: -
CHECK: Records:
CHECK-NEXT: -
-CHECK-NEXT: FunctionGUID: 15505678318020221912
+CHECK-NEXT: FunctionGUID: 3873612792189045660
CHECK-NEXT: AllocSites:
CHECK-NEXT: -
CHECK-NEXT: Callstack:
CHECK-NEXT: -
-CHECK-NEXT: Function: 15505678318020221912
-CHECK-NEXT: SymbolName: qux
+CHECK-NEXT: Function: 3873612792189045660
+CHECK-NEXT: SymbolName: _Z3quxi
CHECK-NEXT: LineOffset: 1
-CHECK-NEXT: Column: 15
+CHECK-NEXT: Column: 23
CHECK-NEXT: Inline: 1
CHECK-NEXT: -
-CHECK-NEXT: Function: 6699318081062747564
-CHECK-NEXT: SymbolName: foo
+CHECK-NEXT: Function: 1228452328526475178
+CHECK-NEXT: SymbolName: _Z3fooi
CHECK-NEXT: LineOffset: 0
CHECK-NEXT: Column: 18
CHECK-NEXT: Inline: 0
CHECK-NEXT: -
-CHECK-NEXT: Function: 16434608426314478903
-CHECK-NEXT: SymbolName: bar
+CHECK-NEXT: Function: 3727899762981752933
+CHECK-NEXT: SymbolName: _Z3bari
CHECK-NEXT: LineOffset: 0
CHECK-NEXT: Column: 19
CHECK-NEXT: Inline: 0
@@ -74,26 +74,30 @@ CHECK-NEXT: MaxAccessDensity: 100
CHECK-NEXT: TotalLifetimeAccessDensity: 100000
CHECK-NEXT: MinLifetimeAccessDensity: 100000
CHECK-NEXT: MaxLifetimeAccessDensity: 100000
+CHECK-NEXT: AccessHistogramSize: 0
+CHECK-NEXT: AccessHistogram: 0
+
+
CHECK-NEXT: -
-CHECK-NEXT: FunctionGUID: 6699318081062747564
+CHECK-NEXT: FunctionGUID: 1228452328526475178
CHECK-NEXT: AllocSites:
CHECK-NEXT: -
CHECK-NEXT: Callstack:
CHECK-NEXT: -
-CHECK-NEXT: Function: 15505678318020221912
-CHECK-NEXT: SymbolName: qux
+CHECK-NEXT: Function: 3873612792189045660
+CHECK-NEXT: SymbolName: _Z3quxi
CHECK-NEXT: LineOffset: 1
-CHECK-NEXT: Column: 15
+CHECK-NEXT: Column: 23
CHECK-NEXT: Inline: 1
CHECK-NEXT: -
-CHECK-NEXT: Function: 6699318081062747564
-CHECK-NEXT: SymbolName: foo
+CHECK-NEXT: Function: 1228452328526475178
+CHECK-NEXT: SymbolName: _Z3fooi
CHECK-NEXT: LineOffset: 0
CHECK-NEXT: Column: 18
CHECK-NEXT: Inline: 0
CHECK-NEXT: -
-CHECK-NEXT: Function: 16434608426314478903
-CHECK-NEXT: SymbolName: bar
+CHECK-NEXT: Function: 3727899762981752933
+CHECK-NEXT: SymbolName: _Z3bari
CHECK-NEXT: LineOffset: 0
CHECK-NEXT: Column: 19
CHECK-NEXT: Inline: 0
@@ -129,28 +133,31 @@ CHECK-NEXT: MaxAccessDensity: 100
CHECK-NEXT: TotalLifetimeAccessDensity: 100000
CHECK-NEXT: MinLifetimeAccessDensity: 100000
CHECK-NEXT: MaxLifetimeAccessDensity: 100000
+CHECK-NEXT: AccessHistogramSize: 0
+CHECK-NEXT: AccessHistogram: 0
+
CHECK-NEXT: CallSites:
CHECK-NEXT: -
CHECK-NEXT: -
-CHECK-NEXT: Function: 15505678318020221912
-CHECK-NEXT: SymbolName: qux
+CHECK-NEXT: Function: 3873612792189045660
+CHECK-NEXT: SymbolName: _Z3quxi
CHECK-NEXT: LineOffset: 1
-CHECK-NEXT: Column: 15
+CHECK-NEXT: Column: 23
CHECK-NEXT: Inline: 1
CHECK-NEXT: -
CHECK-NEXT: -
-CHECK-NEXT: Function: 6699318081062747564
-CHECK-NEXT: SymbolName: foo
+CHECK-NEXT: Function: 1228452328526475178
+CHECK-NEXT: SymbolName: _Z3fooi
CHECK-NEXT: LineOffset: 0
CHECK-NEXT: Column: 18
CHECK-NEXT: Inline: 0
CHECK-NEXT: -
-CHECK-NEXT: FunctionGUID: 16434608426314478903
+CHECK-NEXT: FunctionGUID: 3727899762981752933
CHECK-NEXT: CallSites:
CHECK-NEXT: -
CHECK-NEXT: -
-CHECK-NEXT: Function: 16434608426314478903
-CHECK-NEXT: SymbolName: bar
+CHECK-NEXT: Function: 3727899762981752933
+CHECK-NEXT: SymbolName: _Z3bari
CHECK-NEXT: LineOffset: 0
CHECK-NEXT: Column: 19
CHECK-NEXT: Inline: 0
diff --git a/llvm/test/tools/llvm-profdata/memprof-multi.test b/llvm/test/tools/llvm-profdata/memprof-multi.test
index f3cdbd1f5266..62439823defd 100644
--- a/llvm/test/tools/llvm-profdata/memprof-multi.test
+++ b/llvm/test/tools/llvm-profdata/memprof-multi.test
@@ -7,7 +7,7 @@ We expect 2 MIB entries, 1 each for the malloc calls in the program.
CHECK: MemprofProfile:
CHECK-NEXT: Summary:
-CHECK-NEXT: Version: 3
+CHECK-NEXT: Version: 4
CHECK-NEXT: NumSegments: {{[0-9]+}}
CHECK-NEXT: NumMibInfo: 2
CHECK-NEXT: NumAllocFunctions: 1
diff --git a/llvm/test/tools/llvm-profdata/memprof-padding-histogram.test b/llvm/test/tools/llvm-profdata/memprof-padding-histogram.test
new file mode 100644
index 000000000000..4ba58e3c870d
--- /dev/null
+++ b/llvm/test/tools/llvm-profdata/memprof-padding-histogram.test
@@ -0,0 +1,99 @@
+REQUIRES: x86_64-linux
+
+To update the inputs used below run Inputs/update_memprof_inputs.sh /path/to/updated/clang
+RUN: llvm-profdata show --memory %p/Inputs/padding-histogram.memprofraw --profiled-binary %p/Inputs/padding-histogram.memprofexe -o - | FileCheck %s
+
+We expect 2 different MIBs with histogram values. This test is to make sure we properly deal with padding.
+
+CHECK: MemprofProfile:
+CHECK-NEXT: Summary:
+CHECK-NEXT: Version: 4
+CHECK-NEXT: NumSegments: {{[0-9]+}}
+CHECK-NEXT: NumMibInfo: 2
+CHECK-NEXT: NumAllocFunctions: 1
+CHECK-NEXT: NumStackOffsets: 2
+CHECK-NEXT: Segments:
+CHECK-NEXT: -
+CHECK-NEXT: BuildId: {{[[:xdigit:]]+}}
+CHECK-NEXT: Start: 0x{{[[:xdigit:]]+}}
+CHECK-NEXT: End: 0x{{[[:xdigit:]]+}}
+CHECK-NEXT: Offset: 0x{{[[:xdigit:]]+}}
+CHECK-NEXT: -
+
+CHECK: Records:
+CHEC-NEXT FunctionGUID: {{[0-9]+}}
+CHEC-NEXT AllocSites:
+CHEC-NEXT -
+CHEC-NEXT Callstack:
+CHEC-NEXT -
+CHEC-NEXT Function: {{[0-9]+}}
+CHEC-NEXT SymbolName: main
+CHEC-NEXT LineOffset: 3
+CHEC-NEXT Column: 10
+CHEC-NEXT Inline: 0
+CHEC-NEXT MemInfoBlock:
+CHEC-NEXT AllocCount: 1
+CHEC-NEXT TotalAccessCount: 5
+CHEC-NEXT MinAccessCount: 5
+CHEC-NEXT MaxAccessCount: 5
+CHEC-NEXT TotalSize: 24
+CHEC-NEXT MinSize: 24
+CHEC-NEXT MaxSize: 24
+CHEC-NEXT AllocTimestamp: {{[0-9]+}}
+CHEC-NEXT DeallocTimestamp: {{[0-9]+}}
+CHEC-NEXT TotalLifetime: 0
+CHEC-NEXT MinLifetime: 0
+CHEC-NEXT MaxLifetime: 0
+CHEC-NEXT AllocCpuId: 11
+CHEC-NEXT DeallocCpuId: 11
+CHEC-NEXT NumMigratedCpu: 0
+CHEC-NEXT NumLifetimeOverlaps: 0
+CHEC-NEXT NumSameAllocCpu: 0
+CHEC-NEXT NumSameDeallocCpu: 0
+CHEC-NEXT DataTypeId: 0
+CHEC-NEXT TotalAccessDensity: 20
+CHEC-NEXT MinAccessDensity: 20
+CHEC-NEXT MaxAccessDensity: 20
+CHEC-NEXT TotalLifetimeAccessDensity: 20000
+CHEC-NEXT MinLifetimeAccessDensity: 20000
+CHEC-NEXT MaxLifetimeAccessDensity: 20000
+CHEC-NEXT AccessHistogramSize: 3
+CHEC-NEXT AccessHistogram: {{[0-9]+}}
+CHEC-NEXT AccessHistogramValues: -2 -1 -2
+CHEC-NEXT -
+CHEC-NEXT Callstack:
+CHEC-NEXT -
+CHEC-NEXT Function: {{[0-9]+}}
+CHEC-NEXT SymbolName: main
+CHEC-NEXT LineOffset: 10
+CHEC-NEXT Column: 10
+CHEC-NEXT Inline: 0
+CHEC-NEXT MemInfoBlock:
+CHEC-NEXT AllocCount: 1
+CHEC-NEXT TotalAccessCount: 4
+CHEC-NEXT MinAccessCount: 4
+CHEC-NEXT MaxAccessCount: 4
+CHEC-NEXT TotalSize: 48
+CHEC-NEXT MinSize: 48
+CHEC-NEXT MaxSize: 48
+CHEC-NEXT AllocTimestamp: {{[0-9]+}}
+CHEC-NEXT DeallocTimestamp: {{[0-9]+}}
+CHEC-NEXT TotalLifetime: 0
+CHEC-NEXT MinLifetime: 0
+CHEC-NEXT MaxLifetime: 0
+CHEC-NEXT AllocCpuId: 11
+CHEC-NEXT DeallocCpuId: 11
+CHEC-NEXT NumMigratedCpu: 0
+CHEC-NEXT NumLifetimeOverlaps: 0
+CHEC-NEXT NumSameAllocCpu: 0
+CHEC-NEXT NumSameDeallocCpu: 0
+CHEC-NEXT DataTypeId: 0
+CHEC-NEXT TotalAccessDensity: 8
+CHEC-NEXT MinAccessDensity: 8
+CHEC-NEXT MaxAccessDensity: 8
+CHEC-NEXT TotalLifetimeAccessDensity: 8000
+CHEC-NEXT MinLifetimeAccessDensity: 8000
+CHEC-NEXT MaxLifetimeAccessDensity: 8000
+CHEC-NEXT AccessHistogramSize: 6
+CHEC-NEXT AccessHistogram: {{[0-9]+}}
+CHEC-NEXT AccessHistogramValues: -2 -0 -0 -0 -1 -1 \ No newline at end of file
diff --git a/llvm/test/tools/llvm-profdata/memprof-pic.test b/llvm/test/tools/llvm-profdata/memprof-pic.test
index 03c98ed9200d..78d2c5c54feb 100644
--- a/llvm/test/tools/llvm-profdata/memprof-pic.test
+++ b/llvm/test/tools/llvm-profdata/memprof-pic.test
@@ -11,7 +11,7 @@ RUN: llvm-profdata show --memory %p/Inputs/pic.memprofraw --profiled-binary %p/I
CHECK: MemprofProfile:
CHECK-NEXT: Summary:
-CHECK-NEXT: Version: 3
+CHECK-NEXT: Version: 4
CHECK-NEXT: NumSegments: {{[0-9]+}}
CHECK-NEXT: NumMibInfo: 2
CHECK-NEXT: NumAllocFunctions: 1
@@ -62,6 +62,9 @@ CHECK-NEXT: MaxAccessDensity: 20
CHECK-NEXT: TotalLifetimeAccessDensity: 20000
CHECK-NEXT: MinLifetimeAccessDensity: 20000
CHECK-NEXT: MaxLifetimeAccessDensity: 20000
+CHECK-NEXT: AccessHistogramSize: 0
+CHECK-NEXT: AccessHistogram: 0
+
CHECK-NEXT: -
CHECK-NEXT: Callstack:
CHECK-NEXT: -
@@ -96,3 +99,5 @@ CHECK-NEXT: MaxAccessDensity: 20
CHECK-NEXT: TotalLifetimeAccessDensity: 20000
CHECK-NEXT: MinLifetimeAccessDensity: 20000
CHECK-NEXT: MaxLifetimeAccessDensity: 20000
+CHECK-NEXT: AccessHistogramSize: 0
+CHECK-NEXT: AccessHistogram: 0 \ No newline at end of file
diff --git a/llvm/test/tools/llvm-profdata/vtable-value-prof.test b/llvm/test/tools/llvm-profdata/vtable-value-prof.test
index 378c2e11b236..8dc8f6f0d480 100644
--- a/llvm/test/tools/llvm-profdata/vtable-value-prof.test
+++ b/llvm/test/tools/llvm-profdata/vtable-value-prof.test
@@ -1,7 +1,7 @@
; RUN: rm -rf %t && mkdir %t && cd %t
; Generate indexed profiles from text profiles
-RUN: llvm-profdata merge %S/Inputs/vtable-value-prof.proftext -o indexed.profdata
+RUN: llvm-profdata merge --keep-vtable-symbols %S/Inputs/vtable-value-prof.proftext -o indexed.profdata
; Show indexed profiles
RUN: llvm-profdata show --function=main --ic-targets --show-vtables indexed.profdata | FileCheck %s --check-prefix=INDEXED
@@ -10,7 +10,7 @@ RUN: llvm-profdata show --function=main --ic-targets --show-vtables indexed.prof
RUN: llvm-profdata show --function=main --ic-targets --show-vtables --text %S/Inputs/vtable-value-prof.proftext | FileCheck %s --check-prefix=ICTEXT
; Convert indexed profiles to its textual output and show it.
-RUN: llvm-profdata merge --text -o text-from-indexed.proftext indexed.profdata
+RUN: llvm-profdata merge --keep-vtable-symbols --text -o text-from-indexed.proftext indexed.profdata
RUN: llvm-profdata show --function=main --ic-targets --show-vtables text-from-indexed.proftext | FileCheck %s --check-prefix=INDEXED
RUN: llvm-profdata show --function=main --ic-targets --show-vtables --text text-from-indexed.proftext | FileCheck %s --check-prefix=ICTEXT
diff --git a/llvm/test/tools/llvm-rc/windres-prefix.test b/llvm/test/tools/llvm-rc/windres-prefix.test
index 7dda51d06352..a90766628470 100644
--- a/llvm/test/tools/llvm-rc/windres-prefix.test
+++ b/llvm/test/tools/llvm-rc/windres-prefix.test
@@ -1,3 +1,6 @@
+; This test uses symlinks.
+; UNSUPPORTED: system-windows
+
; RUN: rm -rf %t && mkdir %t
; Check that a triple prefix on the executable gets picked up as target triple.
diff --git a/llvm/test/tools/llvm-rc/windres-preproc.test b/llvm/test/tools/llvm-rc/windres-preproc.test
index 13f82299a074..52427862e760 100644
--- a/llvm/test/tools/llvm-rc/windres-preproc.test
+++ b/llvm/test/tools/llvm-rc/windres-preproc.test
@@ -1,7 +1,6 @@
;; Some quoted arguments below don't work properly on Windows when llvm-lit
-;; invokes the cmd shell to run the commands. Just require running in a
-;; posix shell, to keep being able to test this corner case on Unix at least.
-; REQUIRES: shell
+;; invokes the cmd shell to run the commands.
+; UNSUPPORTED: system-windows
; RUN: llvm-windres -### --include-dir %p/incdir1 --include %p/incdir2 "-DFOO1=\\\"foo bar\\\"" -UFOO2 -D FOO3 --preprocessor-arg "-DFOO4=\\\"baz baz\\\"" -DFOO5=\"bar\" %p/Inputs/empty.rc %t.res | FileCheck %s --check-prefix=CHECK1
; RUN: llvm-windres -### --include-dir %p/incdir1 --include %p/incdir2 "-DFOO1=\"foo bar\"" -UFOO2 -D FOO3 --preprocessor-arg "-DFOO4=\"baz baz\"" "-DFOO5=bar" %p/Inputs/empty.rc %t.res --use-temp-file | FileCheck %s --check-prefix=CHECK1
diff --git a/llvm/test/tools/llvm-readobj/ELF/dynamic-malformed.test b/llvm/test/tools/llvm-readobj/ELF/dynamic-malformed.test
index d160ea87208c..05be15775e9e 100644
--- a/llvm/test/tools/llvm-readobj/ELF/dynamic-malformed.test
+++ b/llvm/test/tools/llvm-readobj/ELF/dynamic-malformed.test
@@ -100,15 +100,15 @@ ProgramHeaders:
# BAD-STRING-LLVM-NEXT: 0x0000000000000005 STRTAB 0x1000
# BAD-STRING-LLVM-NEXT: 0x000000000000000A STRSZ 1 (bytes)
# BAD-STRING-LLVM-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb2: it goes past the end of the table (0xb1)
-# BAD-STRING-LLVM-NEXT: 0x0000000000000001 NEEDED Shared library: [<?>]
+# BAD-STRING-LLVM-NEXT: 0x0000000000000001 NEEDED Shared library: <?>
# BAD-STRING-LLVM-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb3: it goes past the end of the table (0xb1)
-# BAD-STRING-LLVM-NEXT: 0x000000007FFFFFFF FILTER Filter library: [<?>]
+# BAD-STRING-LLVM-NEXT: 0x000000007FFFFFFF FILTER Filter library: <?>
# BAD-STRING-LLVM-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb4: it goes past the end of the table (0xb1)
-# BAD-STRING-LLVM-NEXT: 0x000000007FFFFFFD AUXILIARY Auxiliary library: [<?>]
+# BAD-STRING-LLVM-NEXT: 0x000000007FFFFFFD AUXILIARY Auxiliary library: <?>
# BAD-STRING-LLVM-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb5: it goes past the end of the table (0xb1)
-# BAD-STRING-LLVM-NEXT: 0x000000007FFFFFFE USED Not needed object: [<?>]
+# BAD-STRING-LLVM-NEXT: 0x000000007FFFFFFE USED Not needed object: <?>
## Note: there is no "string table at offset 0xb0..." warning here, because it was printed earlier.
-# BAD-STRING-LLVM-NEXT: 0x000000000000000E SONAME Library soname: [<?>]
+# BAD-STRING-LLVM-NEXT: 0x000000000000000E SONAME Library soname: <?>
# BAD-STRING-LLVM-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb7: it goes past the end of the table (0xb1)
# BAD-STRING-LLVM-NEXT: 0x000000000000000F RPATH Library rpath: [<?>]
# BAD-STRING-LLVM-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb8: it goes past the end of the table (0xb1)
@@ -121,15 +121,15 @@ ProgramHeaders:
# BAD-STRING-GNU-NEXT: 0x0000000000000005 (STRTAB) 0x1000
# BAD-STRING-GNU-NEXT: 0x000000000000000a (STRSZ) 1 (bytes)
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb2: it goes past the end of the table (0xb1)
-# BAD-STRING-GNU-NEXT: 0x0000000000000001 (NEEDED) Shared library: [<?>]
+# BAD-STRING-GNU-NEXT: 0x0000000000000001 (NEEDED) Shared library: <?>
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb3: it goes past the end of the table (0xb1)
-# BAD-STRING-GNU-NEXT: 0x000000007fffffff (FILTER) Filter library: [<?>]
+# BAD-STRING-GNU-NEXT: 0x000000007fffffff (FILTER) Filter library: <?>
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb4: it goes past the end of the table (0xb1)
-# BAD-STRING-GNU-NEXT: 0x000000007ffffffd (AUXILIARY) Auxiliary library: [<?>]
+# BAD-STRING-GNU-NEXT: 0x000000007ffffffd (AUXILIARY) Auxiliary library: <?>
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb5: it goes past the end of the table (0xb1)
-# BAD-STRING-GNU-NEXT: 0x000000007ffffffe (USED) Not needed object: [<?>]
+# BAD-STRING-GNU-NEXT: 0x000000007ffffffe (USED) Not needed object: <?>
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb6: it goes past the end of the table (0xb1)
-# BAD-STRING-GNU-NEXT: 0x000000000000000e (SONAME) Library soname: [<?>]
+# BAD-STRING-GNU-NEXT: 0x000000000000000e (SONAME) Library soname: <?>
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb7: it goes past the end of the table (0xb1)
# BAD-STRING-GNU-NEXT: 0x000000000000000f (RPATH) Library rpath: [<?>]
# BAD-STRING-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb8: it goes past the end of the table (0xb1)
@@ -199,8 +199,8 @@ ProgramHeaders:
# BAD-STRTAB-ERR2: warning: '[[FILE]]': unable to parse DT_STRTAB: virtual address is not in any segment: 0x2000000
# BAD-STRTAB-LLVM: LoadName: <Not found>
# BAD-STRTAB: warning: '[[FILE]]': string table was not found
-# BAD-STRTAB-LLVM-NEXT: 0x0000000000000001 NEEDED Shared library: [<?>]
-# BAD-STRTAB-GNU-NEXT: 0x0000000000000001 (NEEDED) Shared library: [<?>]
+# BAD-STRTAB-LLVM-NEXT: 0x0000000000000001 NEEDED Shared library: <?>
+# BAD-STRTAB-GNU-NEXT: 0x0000000000000001 (NEEDED) Shared library: <?>
# BAD-STRTAB: NeededLibraries [
# BAD-STRTAB: <?>
# BAD-STRTAB: ]
@@ -313,15 +313,15 @@ ProgramHeaders:
# NOT-TERMINATED-LLVM: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb4: the string table is not null-terminated
# NOT-TERMINATED: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb0: the string table is not null-terminated
-# NOT-TERMINATED-NEXT: {{[(]?}}NEEDED{{[)]?}} Shared library: [<?>]
+# NOT-TERMINATED-NEXT: {{[(]?}}NEEDED{{[)]?}} Shared library: <?>
# NOT-TERMINATED-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb1: the string table is not null-terminated
-# NOT-TERMINATED-NEXT: {{[(]?}}FILTER{{[)]?}} Filter library: [<?>]
+# NOT-TERMINATED-NEXT: {{[(]?}}FILTER{{[)]?}} Filter library: <?>
# NOT-TERMINATED-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb2: the string table is not null-terminated
-# NOT-TERMINATED-NEXT: {{[(]?}}AUXILIARY{{[)]?}} Auxiliary library: [<?>]
+# NOT-TERMINATED-NEXT: {{[(]?}}AUXILIARY{{[)]?}} Auxiliary library: <?>
# NOT-TERMINATED-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb3: the string table is not null-terminated
-# NOT-TERMINATED-NEXT: {{[(]?}}USED{{[)]?}} Not needed object: [<?>]
+# NOT-TERMINATED-NEXT: {{[(]?}}USED{{[)]?}} Not needed object: <?>
# NOT-TERMINATED-GNU-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb4: the string table is not null-terminated
-# NOT-TERMINATED-NEXT: {{[(]?}}SONAME{{[)]?}} Library soname: [<?>]
+# NOT-TERMINATED-NEXT: {{[(]?}}SONAME{{[)]?}} Library soname: <?>
# NOT-TERMINATED-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb5: the string table is not null-terminated
# NOT-TERMINATED-NEXT: {{[(]?}}RPATH{{[)]?}} Library rpath: [<?>]
# NOT-TERMINATED-GREQ-NEXT: warning: '[[FILE]]': string table at offset 0xb0: unable to read the string at 0xb6: the string table is not null-terminated
@@ -390,11 +390,11 @@ ProgramHeaders:
## as normal. Since the file ends with a zero byte, strings are dumped, but if it didn't,
## we'd get <?> printed instead. The important bit is that we don't get the past the end warning.
-# BEFORE-THE-EOF: {{[(]?}}NEEDED{{[)]?}} Shared library: [test.soabc]
-# BEFORE-THE-EOF-NEXT: {{[(]?}}FILTER{{[)]?}} Filter library: [est.soabc]
-# BEFORE-THE-EOF-NEXT: {{[(]?}}AUXILIARY{{[)]?}} Auxiliary library: [st.soabc]
-# BEFORE-THE-EOF-NEXT: {{[(]?}}USED{{[)]?}} Not needed object: [t.soabc]
-# BEFORE-THE-EOF-NEXT: {{[(]?}}SONAME{{[)]?}} Library soname: [.soabc]
+# BEFORE-THE-EOF: {{[(]?}}NEEDED{{[)]?}} Shared library: test.soabc
+# BEFORE-THE-EOF-NEXT: {{[(]?}}FILTER{{[)]?}} Filter library: est.soabc
+# BEFORE-THE-EOF-NEXT: {{[(]?}}AUXILIARY{{[)]?}} Auxiliary library: st.soabc
+# BEFORE-THE-EOF-NEXT: {{[(]?}}USED{{[)]?}} Not needed object: t.soabc
+# BEFORE-THE-EOF-NEXT: {{[(]?}}SONAME{{[)]?}} Library soname: .soabc
# BEFORE-THE-EOF-NEXT: {{[(]?}}RPATH{{[)]?}} Library rpath: [soabc]
# BEFORE-THE-EOF-NEXT: {{[(]?}}RUNPATH{{[)]?}} Library runpath: [oabc]
# BEFORE-THE-EOF-NEXT: {{[(]?}}NULL{{[)]?}} 0x0
@@ -406,11 +406,11 @@ ProgramHeaders:
# PAST-THE-EOF: warning: '[[FILE]]': the dynamic string table at 0xb0 goes past the end of the file (0x2c0) with DT_STRSZ = 0x211
# PAST-THE-EOF: warning: '[[FILE]]': string table was not found
-# PAST-THE-EOF: {{[(]?}}NEEDED{{[)]?}} Shared library: [<?>]
-# PAST-THE-EOF-NEXT: {{[(]?}}FILTER{{[)]?}} Filter library: [<?>]
-# PAST-THE-EOF-NEXT: {{[(]?}}AUXILIARY{{[)]?}} Auxiliary library: [<?>]
-# PAST-THE-EOF-NEXT: {{[(]?}}USED{{[)]?}} Not needed object: [<?>]
-# PAST-THE-EOF-NEXT: {{[(]?}}SONAME{{[)]?}} Library soname: [<?>]
+# PAST-THE-EOF: {{[(]?}}NEEDED{{[)]?}} Shared library: <?>
+# PAST-THE-EOF-NEXT: {{[(]?}}FILTER{{[)]?}} Filter library: <?>
+# PAST-THE-EOF-NEXT: {{[(]?}}AUXILIARY{{[)]?}} Auxiliary library: <?>
+# PAST-THE-EOF-NEXT: {{[(]?}}USED{{[)]?}} Not needed object: <?>
+# PAST-THE-EOF-NEXT: {{[(]?}}SONAME{{[)]?}} Library soname: <?>
# PAST-THE-EOF-NEXT: {{[(]?}}RPATH{{[)]?}} Library rpath: [<?>]
# PAST-THE-EOF-NEXT: {{[(]?}}RUNPATH{{[)]?}} Library runpath: [<?>]
# PAST-THE-EOF-NEXT: {{[(]?}}NULL{{[)]?}} 0x0
diff --git a/llvm/test/tools/llvm-readobj/ELF/dynamic-tags.test b/llvm/test/tools/llvm-readobj/ELF/dynamic-tags.test
index 5610ed872df5..e25f64ca2202 100644
--- a/llvm/test/tools/llvm-readobj/ELF/dynamic-tags.test
+++ b/llvm/test/tools/llvm-readobj/ELF/dynamic-tags.test
@@ -8,10 +8,12 @@
# RUN: llvm-readelf --dynamic-table %t1 \
# RUN: | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=GNU64
# RUN: llvm-readelf -d %t1 | FileCheck %s --check-prefix=GNU64
+# RUN: llvm-readelf --dynamic-table --pretty-print --elf-output-style=JSON %t1 \
+# RUN: | FileCheck %s --strict-whitespace --check-prefix=JSON64
# LLVM64:DynamicSection [ (61 entries)
# LLVM64-NEXT: Tag Type Name/Value
-# LLVM64-NEXT: 0x0000000000000001 NEEDED Shared library: [D]
+# LLVM64-NEXT: 0x0000000000000001 NEEDED Shared library: D
# LLVM64-NEXT: 0x0000000000000002 PLTRELSZ 16 (bytes)
# LLVM64-NEXT: 0x0000000000000003 PLTGOT 0x1000
# LLVM64-NEXT: 0x0000000000000004 HASH 0x1000
@@ -24,8 +26,8 @@
# LLVM64-NEXT: 0x000000000000000B SYMENT 2439 (bytes)
# LLVM64-NEXT: 0x000000000000000C INIT 0x1000
# LLVM64-NEXT: 0x000000000000000D FINI 0x1000
-# LLVM64-NEXT: 0x000000000000000E SONAME Library soname: [U]
-# LLVM64-NEXT: 0x000000000000000F RPATH Library rpath: [f]
+# LLVM64-NEXT: 0x000000000000000E SONAME Library soname: U
+# LLVM64-NEXT: 0x000000000000000F RPATH Library rpath: [x:w:U]
# LLVM64-NEXT: 0x0000000000000010 SYMBOLIC 0x1234567890ABCDEF
# LLVM64-NEXT: 0x0000000000000011 REL 0x1000
# LLVM64-NEXT: 0x0000000000000012 RELSZ 16 (bytes)
@@ -65,9 +67,9 @@
# LLVM64-NEXT: 0x000000006FFFFFFD VERDEFNUM 0
# LLVM64-NEXT: 0x000000006FFFFFFE VERNEED 0x1000
# LLVM64-NEXT: 0x000000006FFFFFFF VERNEEDNUM 0
-# LLVM64-NEXT: 0x000000007FFFFFFD AUXILIARY Auxiliary library: [D]
-# LLVM64-NEXT: 0x000000007FFFFFFE USED Not needed object: [U]
-# LLVM64-NEXT: 0x000000007FFFFFFF FILTER Filter library: [U]
+# LLVM64-NEXT: 0x000000007FFFFFFD AUXILIARY Auxiliary library: D
+# LLVM64-NEXT: 0x000000007FFFFFFE USED Not needed object: U
+# LLVM64-NEXT: 0x000000007FFFFFFF FILTER Filter library: U
# LLVM64-NEXT: 0x0000000012345678 <unknown:>0x12345678 0x8765432187654321
# LLVM64-NEXT: 0x000000006ABCDEF0 <unknown:>0x6abcdef0 0x9988776655443322
# LLVM64-NEXT: 0x0000000076543210 <unknown:>0x76543210 0x5555666677778888
@@ -76,7 +78,7 @@
# GNU64:Dynamic section at offset {{.*}} contains 61 entries:
# GNU64-NEXT: Tag Type Name/Value
-# GNU64-NEXT: 0x0000000000000001 (NEEDED) Shared library: [D]
+# GNU64-NEXT: 0x0000000000000001 (NEEDED) Shared library: D
# GNU64-NEXT: 0x0000000000000002 (PLTRELSZ) 16 (bytes)
# GNU64-NEXT: 0x0000000000000003 (PLTGOT) 0x1000
# GNU64-NEXT: 0x0000000000000004 (HASH) 0x1000
@@ -89,8 +91,8 @@
# GNU64-NEXT: 0x000000000000000b (SYMENT) 2439 (bytes)
# GNU64-NEXT: 0x000000000000000c (INIT) 0x1000
# GNU64-NEXT: 0x000000000000000d (FINI) 0x1000
-# GNU64-NEXT: 0x000000000000000e (SONAME) Library soname: [U]
-# GNU64-NEXT: 0x000000000000000f (RPATH) Library rpath: [f]
+# GNU64-NEXT: 0x000000000000000e (SONAME) Library soname: U
+# GNU64-NEXT: 0x000000000000000f (RPATH) Library rpath: [x:w:U]
# GNU64-NEXT: 0x0000000000000010 (SYMBOLIC) 0x1234567890abcdef
# GNU64-NEXT: 0x0000000000000011 (REL) 0x1000
# GNU64-NEXT: 0x0000000000000012 (RELSZ) 16 (bytes)
@@ -130,14 +132,371 @@
# GNU64-NEXT: 0x000000006ffffffd (VERDEFNUM) 0
# GNU64-NEXT: 0x000000006ffffffe (VERNEED) 0x1000
# GNU64-NEXT: 0x000000006fffffff (VERNEEDNUM) 0
-# GNU64-NEXT: 0x000000007ffffffd (AUXILIARY) Auxiliary library: [D]
-# GNU64-NEXT: 0x000000007ffffffe (USED) Not needed object: [U]
-# GNU64-NEXT: 0x000000007fffffff (FILTER) Filter library: [U]
+# GNU64-NEXT: 0x000000007ffffffd (AUXILIARY) Auxiliary library: D
+# GNU64-NEXT: 0x000000007ffffffe (USED) Not needed object: U
+# GNU64-NEXT: 0x000000007fffffff (FILTER) Filter library: U
# GNU64-NEXT: 0x0000000012345678 (<unknown:>0x12345678) 0x8765432187654321
# GNU64-NEXT: 0x000000006abcdef0 (<unknown:>0x6abcdef0) 0x9988776655443322
# GNU64-NEXT: 0x0000000076543210 (<unknown:>0x76543210) 0x5555666677778888
# GNU64-NEXT: 0x0000000000000000 (NULL) 0x0
+# JSON64:"DynamicSection": [
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1,
+# JSON64-NEXT: "Type": "NEEDED",
+# JSON64-NEXT: "Value": 1,
+# JSON64-NEXT: "Library": "D"
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 2,
+# JSON64-NEXT: "Type": "PLTRELSZ",
+# JSON64-NEXT: "Value": 16
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 3,
+# JSON64-NEXT: "Type": "PLTGOT",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 4,
+# JSON64-NEXT: "Type": "HASH",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 5,
+# JSON64-NEXT: "Type": "STRTAB",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 6,
+# JSON64-NEXT: "Type": "SYMTAB",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 7,
+# JSON64-NEXT: "Type": "RELA",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 8,
+# JSON64-NEXT: "Type": "RELASZ",
+# JSON64-NEXT: "Value": 16
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 9,
+# JSON64-NEXT: "Type": "RELAENT",
+# JSON64-NEXT: "Value": 1929
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 10,
+# JSON64-NEXT: "Type": "STRSZ",
+# JSON64-NEXT: "Value": 16
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 11,
+# JSON64-NEXT: "Type": "SYMENT",
+# JSON64-NEXT: "Value": 2439
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 12,
+# JSON64-NEXT: "Type": "INIT",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 13,
+# JSON64-NEXT: "Type": "FINI",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 14,
+# JSON64-NEXT: "Type": "SONAME",
+# JSON64-NEXT: "Value": 3,
+# JSON64-NEXT: "Name": "U"
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 15,
+# JSON64-NEXT: "Type": "RPATH",
+# JSON64-NEXT: "Value": 9,
+# JSON64-NEXT: "Path": [
+# JSON64-NEXT: "x",
+# JSON64-NEXT: "w",
+# JSON64-NEXT: "U"
+# JSON64-NEXT: ]
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 16,
+# JSON64-NEXT: "Type": "SYMBOLIC",
+# JSON64-NEXT: "Value": 1311768467294899695
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 17,
+# JSON64-NEXT: "Type": "REL",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 18,
+# JSON64-NEXT: "Type": "RELSZ",
+# JSON64-NEXT: "Value": 16
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 19,
+# JSON64-NEXT: "Type": "RELENT",
+# JSON64-NEXT: "Value": 291
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 20,
+# JSON64-NEXT: "Type": "PLTREL",
+# JSON64-NEXT: "Value": 7
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 21,
+# JSON64-NEXT: "Type": "DEBUG",
+# JSON64-NEXT: "Value": 18364757930599072545
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 22,
+# JSON64-NEXT: "Type": "TEXTREL",
+# JSON64-NEXT: "Value": 1234605616436508552
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 23,
+# JSON64-NEXT: "Type": "JMPREL",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 24,
+# JSON64-NEXT: "Type": "BIND_NOW",
+# JSON64-NEXT: "Value": 9833440827789222417
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 25,
+# JSON64-NEXT: "Type": "INIT_ARRAY",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 26,
+# JSON64-NEXT: "Type": "FINI_ARRAY",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 27,
+# JSON64-NEXT: "Type": "INIT_ARRAYSZ",
+# JSON64-NEXT: "Value": 16
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 28,
+# JSON64-NEXT: "Type": "FINI_ARRAYSZ",
+# JSON64-NEXT: "Value": 16
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 29,
+# JSON64-NEXT: "Type": "RUNPATH",
+# JSON64-NEXT: "Value": 7,
+# JSON64-NEXT: "Path": [
+# JSON64-NEXT: "w"
+# JSON64-NEXT: ]
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 30,
+# JSON64-NEXT: "Type": "FLAGS",
+# JSON64-NEXT: "Value": 18446744073709551615,
+# JSON64-NEXT: "Flags": [
+# JSON64-NEXT: "ORIGIN",
+# JSON64-NEXT: "SYMBOLIC",
+# JSON64-NEXT: "TEXTREL",
+# JSON64-NEXT: "BIND_NOW",
+# JSON64-NEXT: "STATIC_TLS"
+# JSON64-NEXT: ]
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 32,
+# JSON64-NEXT: "Type": "PREINIT_ARRAY",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 33,
+# JSON64-NEXT: "Type": "PREINIT_ARRAYSZ",
+# JSON64-NEXT: "Value": 16
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 34,
+# JSON64-NEXT: "Type": "SYMTAB_SHNDX",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 35,
+# JSON64-NEXT: "Type": "RELRSZ",
+# JSON64-NEXT: "Value": 16
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 36,
+# JSON64-NEXT: "Type": "RELR",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 37,
+# JSON64-NEXT: "Type": "RELRENT",
+# JSON64-NEXT: "Value": 17185
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1610612751,
+# JSON64-NEXT: "Type": "ANDROID_REL",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1610612752,
+# JSON64-NEXT: "Type": "ANDROID_RELSZ",
+# JSON64-NEXT: "Value": 16
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1610612753,
+# JSON64-NEXT: "Type": "ANDROID_RELA",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1610612754,
+# JSON64-NEXT: "Type": "ANDROID_RELASZ",
+# JSON64-NEXT: "Value": 16
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879040000,
+# JSON64-NEXT: "Type": "ANDROID_RELR",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879040001,
+# JSON64-NEXT: "Type": "ANDROID_RELRSZ",
+# JSON64-NEXT: "Value": 16
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879040003,
+# JSON64-NEXT: "Type": "ANDROID_RELRENT",
+# JSON64-NEXT: "Value": 4660
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879047925,
+# JSON64-NEXT: "Type": "GNU_HASH",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879047926,
+# JSON64-NEXT: "Type": "TLSDESC_PLT",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879047927,
+# JSON64-NEXT: "Type": "TLSDESC_GOT",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879048185,
+# JSON64-NEXT: "Type": "RELACOUNT",
+# JSON64-NEXT: "Value": 0
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879048186,
+# JSON64-NEXT: "Type": "RELCOUNT",
+# JSON64-NEXT: "Value": 0
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879048187,
+# JSON64-NEXT: "Type": "FLAGS_1"
+# JSON64-NEXT: "Value": 18446744073709551615,
+# JSON64-NEXT: "Flags": [
+# JSON64-NEXT: "NOW",
+# JSON64-NEXT: "GLOBAL",
+# JSON64-NEXT: "GROUP",
+# JSON64-NEXT: "NODELETE",
+# JSON64-NEXT: "LOADFLTR",
+# JSON64-NEXT: "INITFIRST",
+# JSON64-NEXT: "NOOPEN",
+# JSON64-NEXT: "ORIGIN",
+# JSON64-NEXT: "DIRECT",
+# JSON64-NEXT: "TRANS",
+# JSON64-NEXT: "INTERPOSE",
+# JSON64-NEXT: "NODEFLIB",
+# JSON64-NEXT: "NODUMP",
+# JSON64-NEXT: "CONFALT",
+# JSON64-NEXT: "ENDFILTEE",
+# JSON64-NEXT: "DISPRELDNE",
+# JSON64-NEXT: "DISPRELPND",
+# JSON64-NEXT: "NODIRECT",
+# JSON64-NEXT: "IGNMULDEF",
+# JSON64-NEXT: "NOKSYMS",
+# JSON64-NEXT: "NOHDR",
+# JSON64-NEXT: "EDITED",
+# JSON64-NEXT: "NORELOC",
+# JSON64-NEXT: "SYMINTPOSE",
+# JSON64-NEXT: "GLOBAUDIT",
+# JSON64-NEXT: "SINGLETON",
+# JSON64-NEXT: "PIE"
+# JSON64-NEXT: ]
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879048176,
+# JSON64-NEXT: "Type": "VERSYM",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879048188,
+# JSON64-NEXT: "Type": "VERDEF",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879048189,
+# JSON64-NEXT: "Type": "VERDEFNUM",
+# JSON64-NEXT: "Value": 0
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879048190,
+# JSON64-NEXT: "Type": "VERNEED",
+# JSON64-NEXT: "Value": 4096
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1879048191,
+# JSON64-NEXT: "Type": "VERNEEDNUM",
+# JSON64-NEXT: "Value": 0
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 2147483645,
+# JSON64-NEXT: "Type": "AUXILIARY"
+# JSON64-NEXT: "Value": 1,
+# JSON64-NEXT: "Library": "D"
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 2147483646,
+# JSON64-NEXT: "Type": "USED",
+# JSON64-NEXT: "Value": 3,
+# JSON64-NEXT: "Object": "U"
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 2147483647,
+# JSON64-NEXT: "Type": "FILTER",
+# JSON64-NEXT: "Value": 3,
+# JSON64-NEXT: "Library": "U"
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 305419896,
+# JSON64-NEXT: "Type": "<unknown:>0x12345678",
+# JSON64-NEXT: "Value": 9756277979052589857
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1790762736,
+# JSON64-NEXT: "Type": "<unknown:>0x6abcdef0",
+# JSON64-NEXT: "Value": 11063223766036525858
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 1985229328,
+# JSON64-NEXT: "Type": "<unknown:>0x76543210",
+# JSON64-NEXT: "Value": 6148933456521300104
+# JSON64-NEXT: },
+# JSON64-NEXT: {
+# JSON64-NEXT: "Tag": 0,
+# JSON64-NEXT: "Type": "NULL",
+# JSON64-NEXT: "Value": 0
+# JSON64-NEXT: }
+# JSON64-NEXT:]
+
--- !ELF
FileHeader:
Class: ELFCLASS[[BITS=64]]
@@ -149,7 +508,7 @@ Sections:
Type: SHT_STRTAB
Address: 0x1000
Size: 0x10
- Content: "004400550066007700"
+ Content: "004400550066007700783A773A5500"
- Name: .dynamic
Type: SHT_DYNAMIC
Address: 0x1010
@@ -183,7 +542,7 @@ Sections:
- Tag: DT_SONAME
Value: 0x3
- Tag: DT_RPATH
- Value: 0x5
+ Value: 0x9
- Tag: DT_SYMBOLIC
Value: [[SYMBOLIC=0x1234567890abcdef]]
- Tag: DT_REL
@@ -302,7 +661,7 @@ ProgramHeaders:
# LLVM32:DynamicSection [ (61 entries)
# LLVM32-NEXT: Tag Type Name/Value
-# LLVM32-NEXT: 0x00000001 NEEDED Shared library: [D]
+# LLVM32-NEXT: 0x00000001 NEEDED Shared library: D
# LLVM32-NEXT: 0x00000002 PLTRELSZ 16 (bytes)
# LLVM32-NEXT: 0x00000003 PLTGOT 0x1000
# LLVM32-NEXT: 0x00000004 HASH 0x1000
@@ -315,8 +674,8 @@ ProgramHeaders:
# LLVM32-NEXT: 0x0000000B SYMENT 2439 (bytes)
# LLVM32-NEXT: 0x0000000C INIT 0x1000
# LLVM32-NEXT: 0x0000000D FINI 0x1000
-# LLVM32-NEXT: 0x0000000E SONAME Library soname: [U]
-# LLVM32-NEXT: 0x0000000F RPATH Library rpath: [f]
+# LLVM32-NEXT: 0x0000000E SONAME Library soname: U
+# LLVM32-NEXT: 0x0000000F RPATH Library rpath: [x:w:U]
# LLVM32-NEXT: 0x00000010 SYMBOLIC 0x12345678
# LLVM32-NEXT: 0x00000011 REL 0x1000
# LLVM32-NEXT: 0x00000012 RELSZ 16 (bytes)
@@ -356,9 +715,9 @@ ProgramHeaders:
# LLVM32-NEXT: 0x6FFFFFFD VERDEFNUM 0
# LLVM32-NEXT: 0x6FFFFFFE VERNEED 0x1000
# LLVM32-NEXT: 0x6FFFFFFF VERNEEDNUM 0
-# LLVM32-NEXT: 0x7FFFFFFD AUXILIARY Auxiliary library: [D]
-# LLVM32-NEXT: 0x7FFFFFFE USED Not needed object: [U]
-# LLVM32-NEXT: 0x7FFFFFFF FILTER Filter library: [U]
+# LLVM32-NEXT: 0x7FFFFFFD AUXILIARY Auxiliary library: D
+# LLVM32-NEXT: 0x7FFFFFFE USED Not needed object: U
+# LLVM32-NEXT: 0x7FFFFFFF FILTER Filter library: U
# LLVM32-NEXT: 0x12345678 <unknown:>0x12345678 0x87654321
# LLVM32-NEXT: 0x6ABCDEF0 <unknown:>0x6abcdef0 0x99887766
# LLVM32-NEXT: 0x76543210 <unknown:>0x76543210 0x55556666
@@ -367,7 +726,7 @@ ProgramHeaders:
# GNU32:Dynamic section at offset 0x84 contains 61 entries:
# GNU32-NEXT: Tag Type Name/Value
-# GNU32-NEXT: 0x00000001 (NEEDED) Shared library: [D]
+# GNU32-NEXT: 0x00000001 (NEEDED) Shared library: D
# GNU32-NEXT: 0x00000002 (PLTRELSZ) 16 (bytes)
# GNU32-NEXT: 0x00000003 (PLTGOT) 0x1000
# GNU32-NEXT: 0x00000004 (HASH) 0x1000
@@ -380,8 +739,8 @@ ProgramHeaders:
# GNU32-NEXT: 0x0000000b (SYMENT) 2439 (bytes)
# GNU32-NEXT: 0x0000000c (INIT) 0x1000
# GNU32-NEXT: 0x0000000d (FINI) 0x1000
-# GNU32-NEXT: 0x0000000e (SONAME) Library soname: [U]
-# GNU32-NEXT: 0x0000000f (RPATH) Library rpath: [f]
+# GNU32-NEXT: 0x0000000e (SONAME) Library soname: U
+# GNU32-NEXT: 0x0000000f (RPATH) Library rpath: [x:w:U]
# GNU32-NEXT: 0x00000010 (SYMBOLIC) 0x12345678
# GNU32-NEXT: 0x00000011 (REL) 0x1000
# GNU32-NEXT: 0x00000012 (RELSZ) 16 (bytes)
@@ -421,9 +780,9 @@ ProgramHeaders:
# GNU32-NEXT: 0x6ffffffd (VERDEFNUM) 0
# GNU32-NEXT: 0x6ffffffe (VERNEED) 0x1000
# GNU32-NEXT: 0x6fffffff (VERNEEDNUM) 0
-# GNU32-NEXT: 0x7ffffffd (AUXILIARY) Auxiliary library: [D]
-# GNU32-NEXT: 0x7ffffffe (USED) Not needed object: [U]
-# GNU32-NEXT: 0x7fffffff (FILTER) Filter library: [U]
+# GNU32-NEXT: 0x7ffffffd (AUXILIARY) Auxiliary library: D
+# GNU32-NEXT: 0x7ffffffe (USED) Not needed object: U
+# GNU32-NEXT: 0x7fffffff (FILTER) Filter library: U
# GNU32-NEXT: 0x12345678 (<unknown:>0x12345678) 0x87654321
# GNU32-NEXT: 0x6abcdef0 (<unknown:>0x6abcdef0) 0x99887766
# GNU32-NEXT: 0x76543210 (<unknown:>0x76543210) 0x55556666
@@ -497,7 +856,7 @@ Sections:
# PHENTSIZE-LLVM: DynamicSection [ (61 entries)
# PHENTSIZE-LLVM-NEXT: Tag Type Name/Value
-# PHENTSIZE-LLVM-NEXT: 0x0000000000000001 NEEDED Shared library: [<?>]
+# PHENTSIZE-LLVM-NEXT: 0x0000000000000001 NEEDED Shared library: <?>
# PHENTSIZE-LLVM-NEXT: 0x0000000000000002 PLTRELSZ 16 (bytes)
# PHENTSIZE-LLVM-NEXT: 0x0000000000000003 PLTGOT 0x1000
# PHENTSIZE-LLVM-NEXT: 0x0000000000000004 HASH 0x1000
@@ -510,7 +869,7 @@ Sections:
# PHENTSIZE-LLVM-NEXT: 0x000000000000000B SYMENT 2439 (bytes)
# PHENTSIZE-LLVM-NEXT: 0x000000000000000C INIT 0x1000
# PHENTSIZE-LLVM-NEXT: 0x000000000000000D FINI 0x1000
-# PHENTSIZE-LLVM-NEXT: 0x000000000000000E SONAME Library soname: [<?>]
+# PHENTSIZE-LLVM-NEXT: 0x000000000000000E SONAME Library soname: <?>
# PHENTSIZE-LLVM-NEXT: 0x000000000000000F RPATH Library rpath: [<?>]
# PHENTSIZE-LLVM-NEXT: 0x0000000000000010 SYMBOLIC 0x1234567890ABCDEF
# PHENTSIZE-LLVM-NEXT: 0x0000000000000011 REL 0x1000
@@ -551,9 +910,9 @@ Sections:
# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFFFD VERDEFNUM 0
# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFFFE VERNEED 0x1000
# PHENTSIZE-LLVM-NEXT: 0x000000006FFFFFFF VERNEEDNUM 0
-# PHENTSIZE-LLVM-NEXT: 0x000000007FFFFFFD AUXILIARY Auxiliary library: [<?>]
-# PHENTSIZE-LLVM-NEXT: 0x000000007FFFFFFE USED Not needed object: [<?>]
-# PHENTSIZE-LLVM-NEXT: 0x000000007FFFFFFF FILTER Filter library: [<?>]
+# PHENTSIZE-LLVM-NEXT: 0x000000007FFFFFFD AUXILIARY Auxiliary library: <?>
+# PHENTSIZE-LLVM-NEXT: 0x000000007FFFFFFE USED Not needed object: <?>
+# PHENTSIZE-LLVM-NEXT: 0x000000007FFFFFFF FILTER Filter library: <?>
# PHENTSIZE-LLVM-NEXT: 0x0000000012345678 <unknown:>0x12345678 0x8765432187654321
# PHENTSIZE-LLVM-NEXT: 0x000000006ABCDEF0 <unknown:>0x6abcdef0 0x9988776655443322
# PHENTSIZE-LLVM-NEXT: 0x0000000076543210 <unknown:>0x76543210 0x5555666677778888
@@ -563,7 +922,7 @@ Sections:
# PHENTSIZE-GNU: Dynamic section at offset 0xc0 contains 61 entries:
# PHENTSIZE-GNU-NEXT: Tag Type Name/Value
# PHENTSIZE-GNU-NEXT: warning: '[[FILE]]': string table was not found
-# PHENTSIZE-GNU-NEXT: 0x0000000000000001 (NEEDED) Shared library: [<?>]
+# PHENTSIZE-GNU-NEXT: 0x0000000000000001 (NEEDED) Shared library: <?>
# PHENTSIZE-GNU-NEXT: 0x0000000000000002 (PLTRELSZ) 16 (bytes)
# PHENTSIZE-GNU-NEXT: 0x0000000000000003 (PLTGOT) 0x1000
# PHENTSIZE-GNU-NEXT: 0x0000000000000004 (HASH) 0x1000
@@ -576,7 +935,7 @@ Sections:
# PHENTSIZE-GNU-NEXT: 0x000000000000000b (SYMENT) 2439 (bytes)
# PHENTSIZE-GNU-NEXT: 0x000000000000000c (INIT) 0x1000
# PHENTSIZE-GNU-NEXT: 0x000000000000000d (FINI) 0x1000
-# PHENTSIZE-GNU-NEXT: 0x000000000000000e (SONAME) Library soname: [<?>]
+# PHENTSIZE-GNU-NEXT: 0x000000000000000e (SONAME) Library soname: <?>
# PHENTSIZE-GNU-NEXT: 0x000000000000000f (RPATH) Library rpath: [<?>]
# PHENTSIZE-GNU-NEXT: 0x0000000000000010 (SYMBOLIC) 0x1234567890abcdef
# PHENTSIZE-GNU-NEXT: 0x0000000000000011 (REL) 0x1000
@@ -617,9 +976,9 @@ Sections:
# PHENTSIZE-GNU-NEXT: 0x000000006ffffffd (VERDEFNUM) 0
# PHENTSIZE-GNU-NEXT: 0x000000006ffffffe (VERNEED) 0x1000
# PHENTSIZE-GNU-NEXT: 0x000000006fffffff (VERNEEDNUM) 0
-# PHENTSIZE-GNU-NEXT: 0x000000007ffffffd (AUXILIARY) Auxiliary library: [<?>]
-# PHENTSIZE-GNU-NEXT: 0x000000007ffffffe (USED) Not needed object: [<?>]
-# PHENTSIZE-GNU-NEXT: 0x000000007fffffff (FILTER) Filter library: [<?>]
+# PHENTSIZE-GNU-NEXT: 0x000000007ffffffd (AUXILIARY) Auxiliary library: <?>
+# PHENTSIZE-GNU-NEXT: 0x000000007ffffffe (USED) Not needed object: <?>
+# PHENTSIZE-GNU-NEXT: 0x000000007fffffff (FILTER) Filter library: <?>
# PHENTSIZE-GNU-NEXT: 0x0000000012345678 (<unknown:>0x12345678) 0x8765432187654321
# PHENTSIZE-GNU-NEXT: 0x000000006abcdef0 (<unknown:>0x6abcdef0) 0x9988776655443322
# PHENTSIZE-GNU-NEXT: 0x0000000076543210 (<unknown:>0x76543210) 0x5555666677778888
diff --git a/llvm/test/tools/llvm-readobj/ELF/loadname.test b/llvm/test/tools/llvm-readobj/ELF/loadname.test
index 18db00845e00..359b9ca76233 100644
--- a/llvm/test/tools/llvm-readobj/ELF/loadname.test
+++ b/llvm/test/tools/llvm-readobj/ELF/loadname.test
@@ -15,7 +15,7 @@
# GNU-NEXT: Tag Type Name/Value
# GNU-NEXT: 0x0000000000000005 (STRTAB) 0x0
# GNU-NEXT: 0x000000000000000a (STRSZ) 8 (bytes)
-# GNU-NEXT: 0x000000000000000e (SONAME) Library soname: [test.so]
+# GNU-NEXT: 0x000000000000000e (SONAME) Library soname: test.so
# GNU-NEXT: 0x0000000000000000 (NULL) 0x0
!ELF
@@ -62,4 +62,4 @@ ProgramHeaders:
# BROKEN-OFFSET: warning: '[[FILE]]': unable to parse DT_STRTAB: can't map virtual address 0xfffe to the segment with index 1: the segment ends at 0x10077, which is greater than the file size (0x228)
# BROKEN-OFFSET: warning: '[[FILE]]': string table was not found
# BROKEN-OFFSET-LLVM: LoadName: <?>
-# BROKEN-OFFSET-GNU: 0x000000000000000e (SONAME) Library soname: [<?>]
+# BROKEN-OFFSET-GNU: 0x000000000000000e (SONAME) Library soname: <?>
diff --git a/llvm/test/tools/llvm-split/AMDGPU/address-taken-externalize-with-call.ll b/llvm/test/tools/llvm-split/AMDGPU/address-taken-externalize-with-call.ll
index 8b76237efa32..d269f9276385 100644
--- a/llvm/test/tools/llvm-split/AMDGPU/address-taken-externalize-with-call.ll
+++ b/llvm/test/tools/llvm-split/AMDGPU/address-taken-externalize-with-call.ll
@@ -1,4 +1,4 @@
-; RUN: llvm-split -o %t %s -j 3 -mtriple amdgcn-amd-amdhsa -amdgpu-module-splitting-large-kernel-threshold=0
+; RUN: llvm-split -o %t %s -j 3 -mtriple amdgcn-amd-amdhsa -amdgpu-module-splitting-large-function-threshold=0
; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 %s
; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 %s
; RUN: llvm-dis -o - %t2 | FileCheck --check-prefix=CHECK2 %s
diff --git a/llvm/test/tools/llvm-split/AMDGPU/address-taken-externalize.ll b/llvm/test/tools/llvm-split/AMDGPU/address-taken-externalize.ll
index 46d7d9783aea..731cf4b374c9 100644
--- a/llvm/test/tools/llvm-split/AMDGPU/address-taken-externalize.ll
+++ b/llvm/test/tools/llvm-split/AMDGPU/address-taken-externalize.ll
@@ -1,4 +1,4 @@
-; RUN: llvm-split -o %t %s -j 2 -mtriple amdgcn-amd-amdhsa -amdgpu-module-splitting-large-kernel-threshold=0
+; RUN: llvm-split -o %t %s -j 2 -mtriple amdgcn-amd-amdhsa -amdgpu-module-splitting-large-function-threshold=0
; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 %s
; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 %s
diff --git a/llvm/test/tools/llvm-split/AMDGPU/debug-non-kernel-root.ll b/llvm/test/tools/llvm-split/AMDGPU/debug-non-kernel-root.ll
new file mode 100644
index 000000000000..836b5c05d065
--- /dev/null
+++ b/llvm/test/tools/llvm-split/AMDGPU/debug-non-kernel-root.ll
@@ -0,0 +1,36 @@
+; RUN: llvm-split -o %t %s -j 2 -mtriple amdgcn-amd-amdhsa -debug 2>&1 | FileCheck %s --implicit-check-not="[root]"
+; REQUIRES: asserts
+
+; func_3 is never directly called, it needs to be considered
+; as a root to handle this module correctly.
+
+; CHECK: [root] kernel_1
+; CHECK-NEXT: [dependency] func_1
+; CHECK-NEXT: [dependency] func_2
+; CHECK-NEXT: [root] func_3
+; CHECK-NEXT: [dependency] func_2
+
+define amdgpu_kernel void @kernel_1() {
+entry:
+ call void @func_1()
+ ret void
+}
+
+define linkonce_odr hidden void @func_1() {
+entry:
+ %call = call i32 @func_2()
+ ret void
+}
+
+define linkonce_odr hidden i32 @func_2() #0 {
+entry:
+ ret i32 0
+}
+
+define void @func_3() {
+entry:
+ %call = call i32 @func_2()
+ ret void
+}
+
+attributes #0 = { noinline optnone }
diff --git a/llvm/test/tools/llvm-split/AMDGPU/large-kernels-merging.ll b/llvm/test/tools/llvm-split/AMDGPU/large-kernels-merging.ll
index 4fdbac7d1789..459c5a7f1a2d 100644
--- a/llvm/test/tools/llvm-split/AMDGPU/large-kernels-merging.ll
+++ b/llvm/test/tools/llvm-split/AMDGPU/large-kernels-merging.ll
@@ -1,9 +1,9 @@
-; RUN: llvm-split -o %t %s -j 3 -mtriple amdgcn-amd-amdhsa -amdgpu-module-splitting-large-kernel-threshold=1.2 -amdgpu-module-splitting-large-kernel-merge-overlap=0.5
+; RUN: llvm-split -o %t %s -j 3 -mtriple amdgcn-amd-amdhsa -amdgpu-module-splitting-large-function-threshold=1.2 -amdgpu-module-splitting-large-function-merge-overlap=0.5
; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 %s
; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 %s
; RUN: llvm-dis -o - %t2 | FileCheck --check-prefix=CHECK2 %s
-; RUN: llvm-split -o %t.nolarge %s -j 3 -mtriple amdgcn-amd-amdhsa -amdgpu-module-splitting-large-kernel-threshold=0
+; RUN: llvm-split -o %t.nolarge %s -j 3 -mtriple amdgcn-amd-amdhsa -amdgpu-module-splitting-large-function-threshold=0
; RUN: llvm-dis -o - %t.nolarge0 | FileCheck --check-prefix=NOLARGEKERNELS-CHECK0 %s
; RUN: llvm-dis -o - %t.nolarge1 | FileCheck --check-prefix=NOLARGEKERNELS-CHECK1 %s
; RUN: llvm-dis -o - %t.nolarge2 | FileCheck --check-prefix=NOLARGEKERNELS-CHECK2 %s
diff --git a/llvm/test/tools/llvm-split/AMDGPU/non-kernels-dependencies.ll b/llvm/test/tools/llvm-split/AMDGPU/non-kernels-dependencies.ll
new file mode 100644
index 000000000000..f944b7ef65d2
--- /dev/null
+++ b/llvm/test/tools/llvm-split/AMDGPU/non-kernels-dependencies.ll
@@ -0,0 +1,44 @@
+; RUN: llvm-split -o %t %s -j 3 -mtriple amdgcn-amd-amdhsa
+; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 --implicit-check-not=DEFINE %s
+; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 --implicit-check-not=DEFINE %s
+; RUN: llvm-dis -o - %t2 | FileCheck --check-prefix=CHECK2 --implicit-check-not=DEFINE %s
+
+; 3 functions with each their own dependencies should go into 3
+; distinct partitions.
+
+; CHECK0: define void @C
+; CHECK0: define internal void @HelperC
+
+; CHECK1: define void @B
+; CHECK1: define internal void @HelperB
+
+; CHECK2: define void @A
+; CHECK2: define internal void @HelperA
+
+
+define void @A() {
+ call void @HelperA()
+ ret void
+}
+
+define internal void @HelperA() {
+ ret void
+}
+
+define void @B() {
+ call void @HelperB()
+ ret void
+}
+
+define internal void @HelperB() {
+ ret void
+}
+
+define void @C() {
+ call void @HelperC()
+ ret void
+}
+
+define internal void @HelperC() {
+ ret void
+}
diff --git a/llvm/test/tools/llvm-split/AMDGPU/non-kernels-dependency-indirect.ll b/llvm/test/tools/llvm-split/AMDGPU/non-kernels-dependency-indirect.ll
new file mode 100644
index 000000000000..167930ce0e80
--- /dev/null
+++ b/llvm/test/tools/llvm-split/AMDGPU/non-kernels-dependency-indirect.ll
@@ -0,0 +1,72 @@
+; RUN: llvm-split -o %t %s -j 3 -mtriple amdgcn-amd-amdhsa
+; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 --implicit-check-not=DEFINE %s
+; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 --implicit-check-not=DEFINE %s
+; RUN: llvm-dis -o - %t2 | FileCheck --check-prefix=CHECK2 --implicit-check-not=DEFINE %s
+
+; We have 4 function:
+; - Each function has an internal helper
+; - @A and @B's helpers does an indirect call.
+;
+; For non-kernels, indirect calls shouldn't matter, so
+; @CallCandidate doesn't have to be in A/B's partition, unlike
+; in the corresponding tests for kernels where it has to.
+
+; CHECK0: define hidden void @HelperA
+; CHECK0: define hidden void @HelperB
+; CHECK0: define internal void @HelperC
+; CHECK0: define internal void @HelperD
+; CHECK0: define void @A
+; CHECK0: define void @B
+
+; CHECK1: define internal void @HelperD
+; CHECK1: define void @D
+
+; CHECK2: define hidden void @CallCandidate
+; CHECK2: define internal void @HelperC
+; CHECK2: define void @C
+
+@addrthief = global [3 x ptr] [ptr @HelperA, ptr @HelperB, ptr @CallCandidate]
+
+define internal void @HelperA(ptr %call) {
+ call void %call()
+ ret void
+}
+
+define internal void @HelperB(ptr %call) {
+ call void @HelperC()
+ call void %call()
+ call void @HelperD()
+ ret void
+}
+
+define internal void @CallCandidate() {
+ ret void
+}
+
+define internal void @HelperC() {
+ ret void
+}
+
+define internal void @HelperD() {
+ ret void
+}
+
+define void @A(ptr %call) {
+ call void @HelperA(ptr %call)
+ ret void
+}
+
+define void @B(ptr %call) {
+ call void @HelperB(ptr %call)
+ ret void
+}
+
+define void @C() {
+ call void @HelperC()
+ ret void
+}
+
+define void @D() {
+ call void @HelperD()
+ ret void
+}
diff --git a/llvm/test/tools/yaml2obj/COFF/load-config.yaml b/llvm/test/tools/yaml2obj/COFF/load-config.yaml
index 36c66e6d6927..8d177bdc3e12 100644
--- a/llvm/test/tools/yaml2obj/COFF/load-config.yaml
+++ b/llvm/test/tools/yaml2obj/COFF/load-config.yaml
@@ -190,7 +190,7 @@ sections:
symbols: []
...
-## Create laod config larger than coff_load_configuration32 struct.
+## Create load config larger than coff_load_configuration32 struct.
# RUN: yaml2obj --docnum=4 %s -o %t
# RUN: llvm-readobj --hex-dump=.rdata %t | FileCheck %s --check-prefix=LARGE