ewlu / gcc-precommit-ci

2 stars 0 forks source link

Patch Status 38922-v112_Match_Support_form_2_for_scalar_signed_integer_SATSUB-2 #2289

Open github-actions[bot] opened 5 days ago

github-actions[bot] commented 5 days ago

Precommit CI Run information

Logs can be found in the associated Github Actions run: https://github.com/ewlu/gcc-precommit-ci/actions/runs/11052553619

Patch information

Applied patches: 1 -> 2 Associated series: https://patchwork.sourceware.org/project/gcc/list/?series=38922 Last patch applied: https://patchwork.sourceware.org/project/gcc/patch/20240926122438.3536337-2-pan2.li@intel.com/ Patch id: 98003

Build Targets

Some targets are built as multilibs. If a build target ends with multilib, please refer to the table below to see all the targets within that multilib. Target name -march string
newlib-rv64gcv-lp64d-multilib rv64gcv-lp64d, rv32gc-ilp32d, rv64gc-lp64d, rv32imc_zba_zbb_zbc_zbs-ilp32
linux-rv64gcv-lp64d-multilib rv32gcv-ilp32d, rv64gcv-lp64d
linux-rv64gc_zba_zbb_zbc_zbs-lp64d-multilib rv32gc_zba_zbb_zbc_zbs-ilp32d, rv64gc_zba_zbb_zbc_zbs-lp64d

Target Information

Target Shorthand -march string
Bitmanip gc_zba_zbb_zbc_zbs

Notes

Testsuite results use a more lenient allowlist to reduce error reporting with flakey tests. Please take a look at the current allowlist. Results come from a sum file comparator. Each patch is applied to a well known, non-broken baseline taken from our gcc postcommit framework (here) which runs the full gcc testsuite every 6 hours. If you have any questions or encounter any issues which may seem like false-positives, please contact us at patchworks-ci@rivosinc.com

github-actions[bot] commented 5 days ago

Lint Status

Lint passed

github-actions[bot] commented 5 days ago

Apply Status

Target Status
Baseline hash: https://github.com/gcc-mirror/gcc/commit/78eef8919e2f2973ed7750ba66f5726e70614d07 Failed
Tip of tree hash: https://github.com/gcc-mirror/gcc/commit/6f76ce80fa25559c9e1bd575190be80c1159d398 Failed

Command

> git am ../patches/*.patch --whitespace=fix -q --3way --empty=drop

Output

error: sha1 information is lacking or useless (gcc/match.pd).
error: could not build fake ancestor
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config advice.mergeConflict false"
Patch failed at 0001 Match: Support form 2 for scalar signed integer SAT_SUB
---
 gcc/match.pd | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/gcc/match.pd b/gcc/match.pd
index 63f7f3142c4..3baf209350b 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -3372,6 +3372,20 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
    @2)
  (if (INTEGRAL_TYPE_P (type) && !TYPE_UNSIGNED (type))))

+/* Signed saturation sub, case 2:
+   T minus = (T)((UT)X - (UT)Y);
+   SAT_S_SUB = (X ^ Y) & (X ^ minus) < 0 ? (-(T)(X < 0) ^ MAX) : minus;
+
+   The T and UT are type pair like T=int8_t, UT=uint8_t.  */
+(match (signed_integer_sat_sub @0 @1)
+ (cond^ (ge (bit_and:c (bit_xor:c @0 @1)
+              (bit_xor @0 (nop_convert@2 (minus (nop_convert @0)
+                            (nop_convert @1)))))
+       integer_zerop)
+   @2
+   (bit_xor:c (negate (convert (lt @0 integer_zerop))) max_value))
+ (if (INTEGRAL_TYPE_P (type) && !TYPE_UNSIGNED (type))))
+
 /* Unsigned saturation truncate, case 1, sizeof (WT) > sizeof (NT).
    SAT_U_TRUNC = (NT)x | (NT)(-(X > (WT)(NT)(-1))).  */
 (match (unsigned_integer_sat_trunc @0)

Additional information