From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com [IPv6:2a00:1450:4864:20::62e]) by sourceware.org (Postfix) with ESMTPS id D9FF53947412 for ; Wed, 2 Sep 2020 21:10:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org D9FF53947412 Received: by mail-ej1-x62e.google.com with SMTP id i22so693708eja.5 for ; Wed, 02 Sep 2020 14:10:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-transfer-encoding:content-language; bh=RvnvEOuLc2DwWgV9nH7e3M6xCfJMavZe5ad3R0xPaE0=; b=jZN+YyEiivduGNL8GufZfyrKhZBDO4YEQxYJcW+5ohB0ZH0vwz8HlWyh3qiuS+Ver/ KUEUGwCXiS1yRi4Mym1bvYc0FISKh+vP+ewUhg2aYdMFWEC1YWV0c/3XcuNBqb+cRk1+ Lxld8EXXxhwS3XyC+zN00Y9ywbYx0LKEKJOyyhqzu5gHcCk3ho9tJXl/OLn/Z7+VursV 4CGrqtshv4NKdc/dUBOvxbl5aEHODH+mae8HoQvyK13GyXTK06NBuzjABRrHoeE37fIn tUaoTM6XJ/ihwXUTx/ItTkJxVf4l8ezBzbP1FFSE9KiqoZMTWy1h1p4Qc7s6WqCX4Loh W7NQ== X-Gm-Message-State: AOAM530IQAR8bnflOw17rENr9fkFy4Xz9ARctEYymGFhsESI0lijcUZR cZD1UT3u9ecDEPfTOIwIgFVtzd1M+d7fiw== X-Google-Smtp-Source: ABdhPJwrZOAZq2oxFonncGTQxFL3HF2EoggE3A4BPn/rzE6qyODbQmxHtlL4rgbWk86wBtGBbndPNA== X-Received: by 2002:a17:906:af92:: with SMTP id mj18mr54829ejb.242.1599081004803; Wed, 02 Sep 2020 14:10:04 -0700 (PDT) Received: from ?IPv6:2003:cd:bf0c:3f29:d65b:ac83:ba74:e9b8? (p200300cdbf0c3f29d65bac83ba74e9b8.dip0.t-ipconnect.de. [2003:cd:bf0c:3f29:d65b:ac83:ba74:e9b8]) by smtp.gmail.com with ESMTPSA id dm22sm637639edb.49.2020.09.02.14.10.03 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 02 Sep 2020 14:10:04 -0700 (PDT) To: gcc-help@gcc.gnu.org From: Jochen Barth Subject: arm_neon.h / vext_u64 (uint64x1_t __a, uint64x1_t __b, __const int __c) Message-ID: Date: Wed, 2 Sep 2020 23:10:03 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-help@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-help mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Sep 2020 21:10:12 -0000 Dear reader, the definition of aarch64/arm_neon.h (gcc 10.2) is __extension__ extern __inline uint64x1_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vext_u64 (uint64x1_t __a, uint64x1_t __b, __const int __c) {   __AARCH64_LANE_CHECK (__a, __c);   /* The only possible index to the assembler instruction returns element 0.  */   return __a; } So this function does essentially »return __a«. If the function name »vext_...« has, as the name suggests, something to do with the »ext« neon simd instruction, then I do not understand where the asm-equivalent »ext« neon instrinct is, because in the »Arm Architecture Reference Manual«, chapter C7.2.543 states: » Is the lowest numbered byte element to be extracted...«, ranging from 0..7 for Q=8 and 0..15 for Q=16 (extraction over the whole 128 bit register). PS: gcc with vector expressions does not (?) use »ext« for y=(x<<(c*8)) | (x>>(64-c*8)); // for Q=8 Kind regards, Jochen