diff options
| author | Roman Lebedev <lebedev.ri@gmail.com> | 2019-08-29 11:50:30 +0000 |
|---|---|---|
| committer | Roman Lebedev <lebedev.ri@gmail.com> | 2019-08-29 11:50:30 +0000 |
| commit | cc95a45f8a53a072773936570901af4a84f55409 (patch) | |
| tree | 9deda6c3bc7cfaf4647ff6e03d66763b2d646e85 /llvm/test/Analysis/CostModel | |
| parent | 349ef2f2f9c2d3f0e363379868d3e8a75b19291b (diff) | |
| download | bcm5719-llvm-cc95a45f8a53a072773936570901af4a84f55409.tar.gz bcm5719-llvm-cc95a45f8a53a072773936570901af4a84f55409.zip | |
[CostModel] Model all `extractvalue`s as free.
Summary:
As disscussed in https://reviews.llvm.org/D65148#1606412,
`extractvalue` don't actually generate any code,
so we should treat them as free.
Reviewers: craig.topper, RKSimon, jnspaulsson, greened, asb, t.p.northover, jmolloy, dmgreen
Reviewed By: jmolloy
Subscribers: javed.absar, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D66098
llvm-svn: 370339
Diffstat (limited to 'llvm/test/Analysis/CostModel')
| -rw-r--r-- | llvm/test/Analysis/CostModel/AArch64/aggregates.ll | 48 | ||||
| -rw-r--r-- | llvm/test/Analysis/CostModel/X86/aggregates.ll | 48 |
2 files changed, 48 insertions, 48 deletions
diff --git a/llvm/test/Analysis/CostModel/AArch64/aggregates.ll b/llvm/test/Analysis/CostModel/AArch64/aggregates.ll index c8b9f283f44..35d232b3b69 100644 --- a/llvm/test/Analysis/CostModel/AArch64/aggregates.ll +++ b/llvm/test/Analysis/CostModel/AArch64/aggregates.ll @@ -5,15 +5,15 @@ define i32 @extract_first_i32({i32, i32} %agg) { ; THROUGHPUT-LABEL: 'extract_first_i32' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, i32 } %agg, 0 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i32 } %agg, 0 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 %r ; ; LATENCY-LABEL: 'extract_first_i32' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i32 } %agg, 0 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i32 } %agg, 0 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r ; ; CODESIZE-LABEL: 'extract_first_i32' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i32 } %agg, 0 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i32 } %agg, 0 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r ; %r = extractvalue {i32, i32} %agg, 0 @@ -22,15 +22,15 @@ define i32 @extract_first_i32({i32, i32} %agg) { define i32 @extract_second_i32({i32, i32} %agg) { ; THROUGHPUT-LABEL: 'extract_second_i32' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, i32 } %agg, 1 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i32 } %agg, 1 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 %r ; ; LATENCY-LABEL: 'extract_second_i32' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i32 } %agg, 1 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i32 } %agg, 1 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r ; ; CODESIZE-LABEL: 'extract_second_i32' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i32 } %agg, 1 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i32 } %agg, 1 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r ; %r = extractvalue {i32, i32} %agg, 1 @@ -39,15 +39,15 @@ define i32 @extract_second_i32({i32, i32} %agg) { define i32 @extract_i32({i32, i1} %agg) { ; THROUGHPUT-LABEL: 'extract_i32' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, i1 } %agg, 0 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i1 } %agg, 0 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 %r ; ; LATENCY-LABEL: 'extract_i32' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i1 } %agg, 0 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i1 } %agg, 0 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r ; ; CODESIZE-LABEL: 'extract_i32' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i1 } %agg, 0 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i1 } %agg, 0 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r ; %r = extractvalue {i32, i1} %agg, 0 @@ -56,15 +56,15 @@ define i32 @extract_i32({i32, i1} %agg) { define i1 @extract_i1({i32, i1} %agg) { ; THROUGHPUT-LABEL: 'extract_i1' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, i1 } %agg, 1 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i1 } %agg, 1 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i1 %r ; ; LATENCY-LABEL: 'extract_i1' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i1 } %agg, 1 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i1 } %agg, 1 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i1 %r ; ; CODESIZE-LABEL: 'extract_i1' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i1 } %agg, 1 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i1 } %agg, 1 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i1 %r ; %r = extractvalue {i32, i1} %agg, 1 @@ -73,15 +73,15 @@ define i1 @extract_i1({i32, i1} %agg) { define float @extract_float({i32, float} %agg) { ; THROUGHPUT-LABEL: 'extract_float' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, float } %agg, 1 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, float } %agg, 1 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret float %r ; ; LATENCY-LABEL: 'extract_float' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r = extractvalue { i32, float } %agg, 1 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, float } %agg, 1 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret float %r ; ; CODESIZE-LABEL: 'extract_float' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, float } %agg, 1 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, float } %agg, 1 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret float %r ; %r = extractvalue {i32, float} %agg, 1 @@ -90,15 +90,15 @@ define float @extract_float({i32, float} %agg) { define [42 x i42] @extract_array({i32, [42 x i42]} %agg) { ; THROUGHPUT-LABEL: 'extract_array' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, [42 x i42] } %agg, 1 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, [42 x i42] } %agg, 1 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret [42 x i42] %r ; ; LATENCY-LABEL: 'extract_array' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, [42 x i42] } %agg, 1 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, [42 x i42] } %agg, 1 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret [42 x i42] %r ; ; CODESIZE-LABEL: 'extract_array' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, [42 x i42] } %agg, 1 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, [42 x i42] } %agg, 1 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret [42 x i42] %r ; %r = extractvalue {i32, [42 x i42]} %agg, 1 @@ -107,15 +107,15 @@ define [42 x i42] @extract_array({i32, [42 x i42]} %agg) { define <42 x i42> @extract_vector({i32, <42 x i42>} %agg) { ; THROUGHPUT-LABEL: 'extract_vector' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, <42 x i42> } %agg, 1 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, <42 x i42> } %agg, 1 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret <42 x i42> %r ; ; LATENCY-LABEL: 'extract_vector' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, <42 x i42> } %agg, 1 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, <42 x i42> } %agg, 1 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <42 x i42> %r ; ; CODESIZE-LABEL: 'extract_vector' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, <42 x i42> } %agg, 1 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, <42 x i42> } %agg, 1 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <42 x i42> %r ; %r = extractvalue {i32, <42 x i42>} %agg, 1 @@ -126,15 +126,15 @@ define <42 x i42> @extract_vector({i32, <42 x i42>} %agg) { define %T1 @extract_struct({i32, %T1} %agg) { ; THROUGHPUT-LABEL: 'extract_struct' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, %T1 } %agg, 1 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, %T1 } %agg, 1 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret %T1 %r ; ; LATENCY-LABEL: 'extract_struct' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, %T1 } %agg, 1 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, %T1 } %agg, 1 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret %T1 %r ; ; CODESIZE-LABEL: 'extract_struct' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, %T1 } %agg, 1 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, %T1 } %agg, 1 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret %T1 %r ; %r = extractvalue {i32, %T1} %agg, 1 diff --git a/llvm/test/Analysis/CostModel/X86/aggregates.ll b/llvm/test/Analysis/CostModel/X86/aggregates.ll index 2fcdd5fbd2e..3fd97d8bf15 100644 --- a/llvm/test/Analysis/CostModel/X86/aggregates.ll +++ b/llvm/test/Analysis/CostModel/X86/aggregates.ll @@ -5,15 +5,15 @@ define i32 @extract_first_i32({i32, i32} %agg) { ; THROUGHPUT-LABEL: 'extract_first_i32' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, i32 } %agg, 0 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i32 } %agg, 0 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 %r ; ; LATENCY-LABEL: 'extract_first_i32' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i32 } %agg, 0 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i32 } %agg, 0 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r ; ; CODESIZE-LABEL: 'extract_first_i32' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i32 } %agg, 0 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i32 } %agg, 0 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r ; %r = extractvalue {i32, i32} %agg, 0 @@ -22,15 +22,15 @@ define i32 @extract_first_i32({i32, i32} %agg) { define i32 @extract_second_i32({i32, i32} %agg) { ; THROUGHPUT-LABEL: 'extract_second_i32' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, i32 } %agg, 1 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i32 } %agg, 1 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 %r ; ; LATENCY-LABEL: 'extract_second_i32' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i32 } %agg, 1 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i32 } %agg, 1 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r ; ; CODESIZE-LABEL: 'extract_second_i32' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i32 } %agg, 1 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i32 } %agg, 1 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r ; %r = extractvalue {i32, i32} %agg, 1 @@ -39,15 +39,15 @@ define i32 @extract_second_i32({i32, i32} %agg) { define i32 @extract_i32({i32, i1} %agg) { ; THROUGHPUT-LABEL: 'extract_i32' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, i1 } %agg, 0 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i1 } %agg, 0 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 %r ; ; LATENCY-LABEL: 'extract_i32' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i1 } %agg, 0 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i1 } %agg, 0 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r ; ; CODESIZE-LABEL: 'extract_i32' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i1 } %agg, 0 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i1 } %agg, 0 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r ; %r = extractvalue {i32, i1} %agg, 0 @@ -56,15 +56,15 @@ define i32 @extract_i32({i32, i1} %agg) { define i1 @extract_i1({i32, i1} %agg) { ; THROUGHPUT-LABEL: 'extract_i1' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, i1 } %agg, 1 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i1 } %agg, 1 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i1 %r ; ; LATENCY-LABEL: 'extract_i1' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i1 } %agg, 1 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i1 } %agg, 1 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i1 %r ; ; CODESIZE-LABEL: 'extract_i1' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, i1 } %agg, 1 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, i1 } %agg, 1 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i1 %r ; %r = extractvalue {i32, i1} %agg, 1 @@ -73,15 +73,15 @@ define i1 @extract_i1({i32, i1} %agg) { define float @extract_float({i32, float} %agg) { ; THROUGHPUT-LABEL: 'extract_float' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, float } %agg, 1 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, float } %agg, 1 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret float %r ; ; LATENCY-LABEL: 'extract_float' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r = extractvalue { i32, float } %agg, 1 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, float } %agg, 1 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret float %r ; ; CODESIZE-LABEL: 'extract_float' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, float } %agg, 1 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, float } %agg, 1 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret float %r ; %r = extractvalue {i32, float} %agg, 1 @@ -90,15 +90,15 @@ define float @extract_float({i32, float} %agg) { define [42 x i42] @extract_array({i32, [42 x i42]} %agg) { ; THROUGHPUT-LABEL: 'extract_array' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, [42 x i42] } %agg, 1 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, [42 x i42] } %agg, 1 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret [42 x i42] %r ; ; LATENCY-LABEL: 'extract_array' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, [42 x i42] } %agg, 1 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, [42 x i42] } %agg, 1 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret [42 x i42] %r ; ; CODESIZE-LABEL: 'extract_array' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, [42 x i42] } %agg, 1 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, [42 x i42] } %agg, 1 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret [42 x i42] %r ; %r = extractvalue {i32, [42 x i42]} %agg, 1 @@ -107,15 +107,15 @@ define [42 x i42] @extract_array({i32, [42 x i42]} %agg) { define <42 x i42> @extract_vector({i32, <42 x i42>} %agg) { ; THROUGHPUT-LABEL: 'extract_vector' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, <42 x i42> } %agg, 1 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, <42 x i42> } %agg, 1 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret <42 x i42> %r ; ; LATENCY-LABEL: 'extract_vector' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, <42 x i42> } %agg, 1 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, <42 x i42> } %agg, 1 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <42 x i42> %r ; ; CODESIZE-LABEL: 'extract_vector' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, <42 x i42> } %agg, 1 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, <42 x i42> } %agg, 1 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <42 x i42> %r ; %r = extractvalue {i32, <42 x i42>} %agg, 1 @@ -126,15 +126,15 @@ define <42 x i42> @extract_vector({i32, <42 x i42>} %agg) { define %T1 @extract_struct({i32, %T1} %agg) { ; THROUGHPUT-LABEL: 'extract_struct' -; THROUGHPUT-NEXT: Cost Model: Unknown cost for instruction: %r = extractvalue { i32, %T1 } %agg, 1 +; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, %T1 } %agg, 1 ; THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret %T1 %r ; ; LATENCY-LABEL: 'extract_struct' -; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, %T1 } %agg, 1 +; LATENCY-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, %T1 } %agg, 1 ; LATENCY-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret %T1 %r ; ; CODESIZE-LABEL: 'extract_struct' -; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r = extractvalue { i32, %T1 } %agg, 1 +; CODESIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r = extractvalue { i32, %T1 } %agg, 1 ; CODESIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret %T1 %r ; %r = extractvalue {i32, %T1} %agg, 1 |

