From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) by sourceware.org (Postfix) with ESMTPS id 3D8EA3858D1E for ; Tue, 20 Jun 2023 09:55:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3D8EA3858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-3f904dcc1e2so34507885e9.3 for ; Tue, 20 Jun 2023 02:55:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1687254934; x=1689846934; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=h84alXXbf4hqaTedBfCOfV6X6BeROy3cHfIvKz2RuwQ=; b=CFrRmQ3M8unQz54Cicwj2Fu5RnwEZTzDEi4anSSVYzhDY212sF/CNQBQJvq5WHX1t+ 0a8gsUkqNjAx+4uQ9q+TlR5LSFVf2Ou90egn5GL2in+ZB78Q5cbqqS63wfnWf2ue/OCz KvP7xJDfVDJFcN/YGvOTEq7vgBYKg4b7WRIUWyDDYVSgxJayoW0uNxsgLn2zMSij0a0y oTtHxivqeHnfL4Nt583I2h6T4bosVE3HMYWZE+Xn67atv/CE7jLa+Onljb3lUj3uh25n QAYIBT2Khk+gRtHBGRC72IZ3S+sDb2PPF3aiC7mExt/DGzUFQF7DHxk3vUJTjCqIhnjp 0h8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687254934; x=1689846934; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=h84alXXbf4hqaTedBfCOfV6X6BeROy3cHfIvKz2RuwQ=; b=MIuewiLyveHWjzLddEE5PJlX8ngtuHwrquOms/lMpNf2ImwHyKHM4JNzV7v/2CEUbM 7JKy0ro4tBc3Yx5ntkPTMnVDCdPONfbR7dogoLe/I4ibDlkprL/Z6G12FRb/9aH6GAsN 1GO4O8oVnEO0TrRKhjcQ/74grkucIO3QumipH2gHCT8T2hR2P13oC+pV9zOUiKWEfT9x OZASJNtObTtrfW0Zwwov3A2AsiQH2Comb7vbd0+fyQ/FNVYw/YR5bmvaPq8EKEGOoTEr CPbGyNL1H0Qw/aj2YB9SCdJRweTtl5DjuO1tjHQ3IAcX/Ruu0efcCzxoUpS+KaSppY6S 4LTA== X-Gm-Message-State: AC+VfDxaCpEcGD56sQQpDSMo6jwOKGjrhv/KuoRpiPLMLLc8jIaKrvDl i9fvHPITaeObncKBY1PzASQUu5ENl+Nw0yp1BnyIq/FGKcqLqHUQZgA= X-Google-Smtp-Source: ACHHUZ6or9Dp3MyrO1HwjJFuoeqwJlXS9hZHcVJpZMxK4BzzmhVyzwHQ7CfLxp7TrJdU6v0uB+PaylKBo5iKtjCFGf4= X-Received: by 2002:a5d:4149:0:b0:306:39a8:6fa2 with SMTP id c9-20020a5d4149000000b0030639a86fa2mr8907796wrq.61.1687254933787; Tue, 20 Jun 2023 02:55:33 -0700 (PDT) MIME-Version: 1.0 From: Prathamesh Kulkarni Date: Tue, 20 Jun 2023 15:24:58 +0530 Message-ID: Subject: [SVE][match.pd] Fix ICE observed in PR110280 To: gcc Patches , Richard Sandiford Content-Type: multipart/mixed; boundary="000000000000f98a5105fe8ca62d" X-Spam-Status: No, score=-9.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_NUMSUBJECT,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,WEIRD_PORT autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000f98a5105fe8ca62d Content-Type: text/plain; charset="UTF-8" Hi Richard, For the following reduced test-case taken from PR: #include "arm_sve.h" svuint32_t l() { alignas(16) const unsigned int lanes[4] = {0, 0, 0, 0}; return svld1rq_u32(svptrue_b8(), lanes); } compiling with -O3 -mcpu=generic+sve results in following ICE: during GIMPLE pass: fre pr110280.c: In function 'l': pr110280.c:5:1: internal compiler error: in eliminate_stmt, at tree-ssa-sccvn.cc:6890 5 | } | ^ 0x865fb1 eliminate_dom_walker::eliminate_stmt(basic_block_def*, gimple_stmt_iterator*) ../../gcc/gcc/tree-ssa-sccvn.cc:6890 0x120bf4d eliminate_dom_walker::before_dom_children(basic_block_def*) ../../gcc/gcc/tree-ssa-sccvn.cc:7324 0x120bf4d eliminate_dom_walker::before_dom_children(basic_block_def*) ../../gcc/gcc/tree-ssa-sccvn.cc:7257 0x1aeec77 dom_walker::walk(basic_block_def*) ../../gcc/gcc/domwalk.cc:311 0x11fd924 eliminate_with_rpo_vn(bitmap_head*) ../../gcc/gcc/tree-ssa-sccvn.cc:7504 0x1214664 do_rpo_vn_1 ../../gcc/gcc/tree-ssa-sccvn.cc:8616 0x1215ba5 execute ../../gcc/gcc/tree-ssa-sccvn.cc:8702 cc1 simplifies: lanes[0] = 0; lanes[1] = 0; lanes[2] = 0; lanes[3] = 0; _1 = { -1, ... }; _7 = svld1rq_u32 (_1, &lanes); to: _9 = MEM [(unsigned int * {ref-all})&lanes]; _7 = VEC_PERM_EXPR <_9, _9, { 0, 1, 2, 3, ... }>; and then fre1 dump shows: Applying pattern match.pd:8675, generic-match-5.cc:9025 Match-and-simplified VEC_PERM_EXPR <_9, _9, { 0, 1, 2, 3, ... }> to { 0, 0, 0, 0 } RHS VEC_PERM_EXPR <_9, _9, { 0, 1, 2, 3, ... }> simplified to { 0, 0, 0, 0 } The issue seems to be with the following pattern: (simplify (vec_perm vec_same_elem_p@0 @0 @1) @0) which simplifies above VEC_PERM_EXPR to: _7 = {0, 0, 0, 0} which is incorrect since _9 and mask have different vector lengths. The attached patch amends the pattern to simplify above VEC_PERM_EXPR only if operand and mask have same number of elements, which seems to fix the issue, and we're left with the following in .optimized dump: [local count: 1073741824]: _2 = VEC_PERM_EXPR <{ 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 1, 2, 3, ... }>; return _2; code-gen: l: mov z0.b, #0 ret Patch is bootstrapped+tested on aarch64-linux-gnu. OK to commit ? Thanks, Prathamesh --000000000000f98a5105fe8ca62d Content-Type: text/plain; charset="US-ASCII"; name="pr110280-1.txt" Content-Disposition: attachment; filename="pr110280-1.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lj43ft2d0 W1NWRV1bbWF0Y2gucGRdIEZpeCBJQ0Ugb2JzZXJ2ZWQgaW4gUFIxMTAyODAuCgpnY2MvQ2hhbmdl TG9nOgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTEwMjgwCgkqIG1hdGNoLnBkICh2ZWNfcGVybV9l eHByKHYsIHYsIG1hc2spIC0+IHYpOiBTaW1wbGlmeSB0aGUgcGF0dGVybgoJb25seSBpZiBvcGVy YW5kIGFuZCBtYXNrIG9mIFZFQ19QRVJNX0VYUFIgaGF2ZSBzYW1lIG51bWJlciBvZgoJZWxlbWVu dHMuCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCSogZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9w cjExMDI4MC5jOiBOZXcgdGVzdC4KCmRpZmYgLS1naXQgYS9nY2MvbWF0Y2gucGQgYi9nY2MvbWF0 Y2gucGQKaW5kZXggMmRkMjM4MjYwMzQuLjBlYjVmOGYwYWY2IDEwMDY0NAotLS0gYS9nY2MvbWF0 Y2gucGQKKysrIGIvZ2NjL21hdGNoLnBkCkBAIC04NjY5LDEwICs4NjY5LDExIEBAIGFuZCwKICBA MAogIChpZiAodW5pZm9ybV92ZWN0b3JfcCAoQDApKSkpCiAKLQogKHNpbXBsaWZ5CiAgKHZlY19w ZXJtIHZlY19zYW1lX2VsZW1fcEAwIEAwIEAxKQotIEAwKQorIChpZiAoa25vd25fZXEgKFRZUEVf VkVDVE9SX1NVQlBBUlRTIChUUkVFX1RZUEUgKEAwKSksCisJCVRZUEVfVkVDVE9SX1NVQlBBUlRT IChUUkVFX1RZUEUgKEAxKSkpKQorICBAMCkpCiAKIC8qIFB1c2ggVkVDX1BFUk0gZWFybGllciBp ZiB0aGF0IG1heSBoZWxwIEZNQSBwZXJjZXB0aW9uIChQUjEwMTg5NSkuICAqLwogKHNpbXBsaWZ5 CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvcHIxMTAy ODAuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9wcjExMDI4MC5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NTNjOWNiY2Y5ZQotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9wcjExMDI4 MC5jCkBAIC0wLDAgKzEsMTAgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9w dGlvbnMgIi1PMyIgfSAqLworCisjaW5jbHVkZSAiYXJtX3N2ZS5oIgorCitzdnVpbnQzMl90IGwo KQoreworICBfQWxpZ25hcygxNikgY29uc3QgdW5zaWduZWQgaW50IGxhbmVzWzRdID0gezAsIDAs IDAsIDB9OworICByZXR1cm4gc3ZsZDFycV91MzIoc3ZwdHJ1ZV9iOCgpLCBsYW5lcyk7Cit9Cg== --000000000000f98a5105fe8ca62d--