From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.88]) by sourceware.org (Postfix) with ESMTPS id 7A4333858C52 for ; Wed, 18 Oct 2023 01:20:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7A4333858C52 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7A4333858C52 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=192.55.52.88 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697592017; cv=none; b=NMHGzJ1xvQA9ofHjmJ0A1H9llu59+Zup4lwDvC7tUQ7XLP0QjmeFVSGIHItvCuw8FyMYnHsywPvhNRoh3oIq+WuyF63Pqs23yKNy29x2EZImVbRE34LXfBuvt03DBt4OxcY+66lUc2JAmCYSHqkJtvNjQy52vnj/mJDEXlz0tJY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697592017; c=relaxed/simple; bh=HQvBZISZpKNpEvtqwAyIdQGp5dNukQx2W0MnfrtMOi0=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=QsHy7khUsxm/VN1zN9rHOcifHxFgfw6XKBGc6O9O+VSCke7f9+Ksy9E3IPOXc6dhqidNfQXYTttGZnGPE357gxcM8rHvIhSQMlO8crMGGzfftAY/NXkiLACKp/61iYZ3ZmnPUlR6V+BMz36ZxqzikjMb6oRuBXiGnmWfdDAQOq8= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1697592015; x=1729128015; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=HQvBZISZpKNpEvtqwAyIdQGp5dNukQx2W0MnfrtMOi0=; b=nOUUOFXYwKY1a8yTSaqSG7L7Pe4hxBO2wfv9wrHZ2VqpwV0RsskNlqsQ 8vmtUXATFDTdr1IkymhMHPgZAp7nAo/wjiksrARjj5liO9XJmX36bGFKU h/JnxYCa2/nxI4evO+enLkhQECOiWPs8mZ6nADKDvA1uut3El05qdIRfg dcQ+Jjbi0EJg3YPNiXu2zRa3c/m45lVy44Fsy7y2hDH9n6GZ1TKuZNACf 7FthA98p6twuFviRygRnfh/rmdxftbQL+ZsXvBQbKqY2J3nZ0UAzgqpud UD9Nf13yNHHjnum02cTOt2JfEWa0Ejssbepd/AAJinLoWhxQ6hGVdkWhT w==; X-IronPort-AV: E=McAfee;i="6600,9927,10866"; a="417022415" X-IronPort-AV: E=Sophos;i="6.03,233,1694761200"; d="scan'208";a="417022415" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Oct 2023 18:20:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10866"; a="760028077" X-IronPort-AV: E=Sophos;i="6.03,233,1694761200"; d="scan'208";a="760028077" Received: from shvmail02.sh.intel.com ([10.239.244.9]) by fmsmga007.fm.intel.com with ESMTP; 17 Oct 2023 18:20:11 -0700 Received: from pli-ubuntu.sh.intel.com (pli-ubuntu.sh.intel.com [10.239.159.47]) by shvmail02.sh.intel.com (Postfix) with ESMTP id C8A5B10056A4; Wed, 18 Oct 2023 09:20:10 +0800 (CST) From: pan2.li@intel.com To: gcc-patches@gcc.gnu.org Cc: juzhe.zhong@rivai.ai, pan2.li@intel.com, yanzhang.wang@intel.com, kito.cheng@gmail.com, hongtao.liu@intel.com, richard.guenther@gmail.com Subject: [PATCH v1] RISC-V: Remove the type size restriction of vectorizer Date: Wed, 18 Oct 2023 09:20:09 +0800 Message-Id: <20231018012009.849697-1-pan2.li@intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP 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: From: Pan Li The vectoriable_call has one restriction of the size of data type. Aka DF to DI is allowed but SF to DI isn't. You may see below message when try to vectorize function call like lrintf. void test_lrintf (long *out, float *in, unsigned count) { for (unsigned i = 0; i < count; i++) out[i] = __builtin_lrintf (in[i]); } lrintf.c:5:26: missed: couldn't vectorize loop lrintf.c:5:26: missed: not vectorized: unsupported data-type Then the standard name pattern like lrintmn2 cannot work for different data type size like SF => DI. This patch would like to remove this data type size check and unblock the standard name like lrintmn2. Passed the x86 bootstrap and regression test already. gcc/ChangeLog: * tree-vect-stmts.cc (vectorizable_call): Remove data size check. Signed-off-by: Pan Li --- gcc/tree-vect-stmts.cc | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc index b3a56498595..326e000a71d 100644 --- a/gcc/tree-vect-stmts.cc +++ b/gcc/tree-vect-stmts.cc @@ -3529,19 +3529,6 @@ vectorizable_call (vec_info *vinfo, return false; } - /* FORNOW: we don't yet support mixtures of vector sizes for calls, - just mixtures of nunits. E.g. DI->SI versions of __builtin_ctz* - are traditionally vectorized as two VnDI->VnDI IFN_CTZs followed - by a pack of the two vectors into an SI vector. We would need - separate code to handle direct VnDI->VnSI IFN_CTZs. */ - if (TYPE_SIZE (vectype_in) != TYPE_SIZE (vectype_out)) - { - if (dump_enabled_p ()) - dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, - "mismatched vector sizes %T and %T\n", - vectype_in, vectype_out); - return false; - } if (VECTOR_BOOLEAN_TYPE_P (vectype_out) != VECTOR_BOOLEAN_TYPE_P (vectype_in)) -- 2.34.1