From patchwork Fri Feb 23 11:28:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 205325 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp519418dyb; Fri, 23 Feb 2024 03:28:50 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVpmSXkchORLVpfBZ6sSSsUz/7Qg2UntEj7MIYizE1UEZcgXG6sNhdcMQIBeVohH8PGGLAdZpUbBiXfFk9VBpiulvdbYg== X-Google-Smtp-Source: AGHT+IGqaAj/MHra1wf7AO8DtdJMOzD9ukR9WFTm1xkXlvdzkwLiE8HtH5a88tbtNHgSY1ErqP4g X-Received: by 2002:a05:620a:1012:b0:787:1de4:77a1 with SMTP id z18-20020a05620a101200b007871de477a1mr1638507qkj.67.1708687729762; Fri, 23 Feb 2024 03:28:49 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708687729; cv=pass; d=google.com; s=arc-20160816; b=XfJoDnRnc61jnNcF4AqMWthTjxZCocsiieUhdOcXiaS3cciADO9s3KKIj4o6nIDDho z6v5pP+Vh7TxQswuHccEVO1RnrA3NEEqf8OnzurAAC62gW/sVCQfRKFOrFUSHU9jvOFx 9KqAGxwHT+iSUUMihbTYLRHMY+6w7vY5nsHMKrS5G7kTH789kzjBArzY5ZE2+knWIeEA EJvZMfL7zfbZvS1mZlo6IZgxfXWMB/mTGh58ZZmSESWlv+gFAUTeJgYE7X8zjELYvsDI NTtGiUk8g7oDhQVvHj124B2RTHUA7zZDu1yzVvLQpou5G10bgml4QDxB0655bg2ZWd8r Vxrw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :in-reply-to:autocrypt:references:cc:to:from:content-language :subject:user-agent:mime-version:date:message-id:dkim-signature :arc-filter:dmarc-filter:delivered-to; bh=NTuUAUv8sMPjsSAUYPFHYrMQ858b85zqd1vMD5S1O/Y=; fh=9g4K3zZDolve3lgFi83ZiNQygY4B2AoCRghqiKI8ad0=; b=h+yfDNba8SebWPIoC0xrke3hEd5EkxqvAaWO3nb/F5AuHsMqoF9hr+AVcPYwPOzGyD Jzgsxm8RxNAT2cep6eToY6aHuMi9fyXJAnGjuTRJiXOeZrHzCFgGHSkeOP+v6/GsSO5y nrvg0QADN8/BDFhBQExf9o4UXitXzij7Fn/xP2OYeeoEho2YTacm1Nd5UXqarWSRViI1 zQbt609QyRUmTDGEuESce9KcQVqDttEI6+w1VOKC5JVJc6XF3nsnfi72OnSKFxEf2TP+ 3XgCNng0VZCvfgBbRXWSvHYGYQ3FShpf0fdIo/QTPrsDLSqDEBzUvIvwzyR3K4xD+Vvh LctQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@suse.com header.s=google header.b=b+4hgGph; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id a20-20020a05620a439400b007872f0228d7si16650557qkp.500.2024.02.23.03.28.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Feb 2024 03:28:49 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=google header.b=b+4hgGph; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4E29A38582B7 for ; Fri, 23 Feb 2024 11:28:49 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com [IPv6:2a00:1450:4864:20::62f]) by sourceware.org (Postfix) with ESMTPS id 231933858010 for ; Fri, 23 Feb 2024 11:28:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 231933858010 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 231933858010 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::62f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708687719; cv=none; b=XlU+CS3q0NAtq/iXXjSx6LtTcZjwkHE/Q0IV5wkJqFX93NRk7emwyz8D7lk/qsYvssTDlO5zlBrj9WYfxktaGG1ur9zX2YEhb88N0lC2axU3yFWTHY198MB2TAn23haUUt9g0yrBfzjsQk75t4z7BZIXpA552EYtcSqYWC10QCs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708687719; c=relaxed/simple; bh=+mh28xXIAZG6DlY42ZcCfA4keQW6RXPYg7V6GwSxc00=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=r/D1deD6rfuLD6/HbCuTIDWdnUBBxZkW5hAdqd2flEBdxb0DqGZ9PewwuU3ltS3wksj2BpzpKKuWzOXbrhkOOji0T+/9Q7YhXc6dg0R5UwOEQQqFtEbs5vGOWK0ihHX/jdCr/T7ZGshMCkc+uqWSRq+/3lS1f4U3HkHwP3zuf0g= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-a3122b70439so41627366b.3 for ; Fri, 23 Feb 2024 03:28:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1708687713; x=1709292513; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to :from:content-language:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=NTuUAUv8sMPjsSAUYPFHYrMQ858b85zqd1vMD5S1O/Y=; b=b+4hgGphRXxog4l5OzAnoWo6OzFICmU6R5ZhO3GXIpCDevvGNHeITa97i4ldlQuxJ3 DOP7w2BpVWNpbAeplVldEpYKsqZama/bi6Xq6pPtYvKQnLYmr1Dpqw9YQrcv0Tp2MTIR a+bkwGUSFbUKGWc7HIWHBKbvYrsXlYOXD8mSeK19xsR7HHT3kR8uXoiQp8jf1cGJEnlj qFtKCCxXfy7rI6+VOjXaBggHso/FdAIc1d2VNRNJCwwpKvuYnriHRDXnu/Lk9rjd5NjY VYrLoicokHrzvScuzlHN//pzxTernb+AgtR0OrBkVf2YiYKlOJcpXhYIg5uMBqI3WW1S uWtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708687713; x=1709292513; h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to :from:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=NTuUAUv8sMPjsSAUYPFHYrMQ858b85zqd1vMD5S1O/Y=; b=sZ6pOro4DIZNXb/9w+sMNDTcyo5NIVYPIeu96p4vq+flVMj5KLTqPpesB/cJfycWK6 hJwRabNlFcxlaABt4qVaS7bsxcTQhAYpKOYR0j0oIplWONKk7/jjLxrEJoG7itHjz1rt r4tRRha2+vDd8cBJucN3CfW49BF46Is4HDiodnSWTKYaf8yxh/GiM2AAVgMwq1I4y07+ PXx/W/VTIPWDnyrL+tdcHY7iMh0UW4OGoF/zg5qIwEahPO3s5GzMz0MQHZ87Zi++w2Fy TPHkeq5mFo/fHkuZPQdPOLzJYTmoVmkAonzJedE9dykHJWcPnpPlIf4VZ3Ca0zXAOGCK 3BXA== X-Gm-Message-State: AOJu0Yyb4SiejqYcvRZ1n+fdf+9wLrsWzr9ibCqrfL72R8sxNVLrIhR7 fH8HEZSNXrMxTQ3fZAdxMjSPQ020MANgCCFOVmbOvC2HNDoGg6YhRxJiRVoBN9weqkSn2degfEg = X-Received: by 2002:a17:906:3451:b0:a3f:721f:a7ac with SMTP id d17-20020a170906345100b00a3f721fa7acmr1063117ejb.45.1708687712657; Fri, 23 Feb 2024 03:28:32 -0800 (PST) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id lu16-20020a170906fad000b00a3d5efc65e0sm5486296ejb.91.2024.02.23.03.28.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 23 Feb 2024 03:28:32 -0800 (PST) Message-ID: <99f3418f-c836-4ae4-a6d1-ce81168d1b9a@suse.com> Date: Fri, 23 Feb 2024 12:28:31 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 2/6] Arm64: check matching operands for predicated B16B16 insns Content-Language: en-US From: Jan Beulich To: Binutils Cc: Richard Earnshaw , Marcus Shawcroft References: <2dbdd49f-2302-4dbc-98ba-0bdaf3c4cad2@suse.com> Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <2dbdd49f-2302-4dbc-98ba-0bdaf3c4cad2@suse.com> X-Spam-Status: No, score=-3025.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791688945279064977 X-GMAIL-MSGID: 1791688945279064977 Except for bfml{a,s} their 1st and 3rd operands need to match - pass the TIED macro argument accordingly. While doing that also slightly re-arrange table entries, such that all predicated insns are close together. At the same time change the existing test source to actually use non- matching operands for the respective bfml{a,s} forms. --- a/gas/testsuite/gas/aarch64/bfloat16-1.d +++ b/gas/testsuite/gas/aarch64/bfloat16-1.d @@ -50,24 +50,24 @@ .*: 64222604 bfclamp z4.h, z16.h, z2.h .*: 64212688 bfclamp z8.h, z20.h, z1.h .*: 64202710 bfclamp z16.h, z24.h, z0.h -.*: 65300000 bfmla z0.h, p0\/m, z0.h, z16.h -.*: 65280421 bfmla z1.h, p1\/m, z1.h, z8.h -.*: 65240842 bfmla z2.h, p2\/m, z2.h, z4.h -.*: 65221084 bfmla z4.h, p4\/m, z4.h, z2.h -.*: 65211908 bfmla z8.h, p6\/m, z8.h, z1.h -.*: 65201e10 bfmla z16.h, p7\/m, z16.h, z0.h +.*: 65300080 bfmla z0.h, p0\/m, z4.h, z16.h +.*: 65280501 bfmla z1.h, p1\/m, z8.h, z8.h +.*: 65240982 bfmla z2.h, p2\/m, z12.h, z4.h +.*: 65221204 bfmla z4.h, p4\/m, z16.h, z2.h +.*: 65211a88 bfmla z8.h, p6\/m, z20.h, z1.h +.*: 65201f10 bfmla z16.h, p7\/m, z24.h, z0.h .*: 647e0a00 bfmla z0.h, z16.h, z6.h\[7\] .*: 64750901 bfmla z1.h, z8.h, z5.h\[6\] .*: 646409c2 bfmla z2.h, z14.h, z4.h\[4\] .*: 64320aa4 bfmla z4.h, z21.h, z2.h\[2\] .*: 64290988 bfmla z8.h, z12.h, z1.h\[1\] .*: 64200950 bfmla z16.h, z10.h, z0.h\[0\] -.*: 65302000 bfmls z0.h, p0\/m, z0.h, z16.h -.*: 65282421 bfmls z1.h, p1\/m, z1.h, z8.h -.*: 65242842 bfmls z2.h, p2\/m, z2.h, z4.h -.*: 65223084 bfmls z4.h, p4\/m, z4.h, z2.h -.*: 65213908 bfmls z8.h, p6\/m, z8.h, z1.h -.*: 65203e10 bfmls z16.h, p7\/m, z16.h, z0.h +.*: 65302080 bfmls z0.h, p0\/m, z4.h, z16.h +.*: 65282501 bfmls z1.h, p1\/m, z8.h, z8.h +.*: 65242982 bfmls z2.h, p2\/m, z12.h, z4.h +.*: 65223204 bfmls z4.h, p4\/m, z16.h, z2.h +.*: 65213a88 bfmls z8.h, p6\/m, z20.h, z1.h +.*: 65203f10 bfmls z16.h, p7\/m, z24.h, z0.h .*: 647e0e00 bfmls z0.h, z16.h, z6.h\[7\] .*: 64750d01 bfmls z1.h, z8.h, z5.h\[6\] .*: 64640dc2 bfmls z2.h, z14.h, z4.h\[4\] --- a/gas/testsuite/gas/aarch64/bfloat16-1.s +++ b/gas/testsuite/gas/aarch64/bfloat16-1.s @@ -46,12 +46,13 @@ bfclamp z2.h, z12.h, z4.h bfclamp z4.h, z16.h, z2.h bfclamp z8.h, z20.h, z1.h bfclamp z16.h, z24.h, z0.h -bfmla z0.h, p0/m, z0.h, z16.h -bfmla z1.h, p1/m, z1.h, z8.h -bfmla z2.h, p2/m, z2.h, z4.h -bfmla z4.h, p4/m, z4.h, z2.h -bfmla z8.h, p6/m, z8.h, z1.h -bfmla z16.h, p7/m, z16.h, z0.h + +bfmla z0.h, p0/m, z4.h, z16.h +bfmla z1.h, p1/m, z8.h, z8.h +bfmla z2.h, p2/m, z12.h, z4.h +bfmla z4.h, p4/m, z16.h, z2.h +bfmla z8.h, p6/m, z20.h, z1.h +bfmla z16.h, p7/m, z24.h, z0.h bfmla z0.h, z16.h, z6.h[7] bfmla z1.h, z8.h, z5.h[6] @@ -60,12 +61,12 @@ bfmla z4.h, z21.h, z2.h[2] bfmla z8.h, z12.h, z1.h[1] bfmla z16.h, z10.h, z0.h[0] -bfmls z0.h, p0/m, z0.h, z16.h -bfmls z1.h, p1/m, z1.h, z8.h -bfmls z2.h, p2/m, z2.h, z4.h -bfmls z4.h, p4/m, z4.h, z2.h -bfmls z8.h, p6/m, z8.h, z1.h -bfmls z16.h, p7/m, z16.h, z0.h +bfmls z0.h, p0/m, z4.h, z16.h +bfmls z1.h, p1/m, z8.h, z8.h +bfmls z2.h, p2/m, z12.h, z4.h +bfmls z4.h, p4/m, z16.h, z2.h +bfmls z8.h, p6/m, z20.h, z1.h +bfmls z16.h, p7/m, z24.h, z0.h bfmls z0.h, z16.h, z6.h[7] bfmls z1.h, z8.h, z5.h[6] --- a/gas/testsuite/gas/aarch64/bfloat16-bad.l +++ b/gas/testsuite/gas/aarch64/bfloat16-bad.l @@ -41,24 +41,24 @@ .*: Error: selected processor does not support `bfclamp z4.h,z16.h,z2.h' .*: Error: selected processor does not support `bfclamp z8.h,z20.h,z1.h' .*: Error: selected processor does not support `bfclamp z16.h,z24.h,z0.h' -.*: Error: selected processor does not support `bfmla z0.h,p0\/m,z0.h,z16.h' -.*: Error: selected processor does not support `bfmla z1.h,p1\/m,z1.h,z8.h' -.*: Error: selected processor does not support `bfmla z2.h,p2\/m,z2.h,z4.h' -.*: Error: selected processor does not support `bfmla z4.h,p4\/m,z4.h,z2.h' -.*: Error: selected processor does not support `bfmla z8.h,p6\/m,z8.h,z1.h' -.*: Error: selected processor does not support `bfmla z16.h,p7\/m,z16.h,z0.h' +.*: Error: selected processor does not support `bfmla .* +.*: Error: selected processor does not support `bfmla .* +.*: Error: selected processor does not support `bfmla .* +.*: Error: selected processor does not support `bfmla .* +.*: Error: selected processor does not support `bfmla .* +.*: Error: selected processor does not support `bfmla .* .*: Error: selected processor does not support `bfmla z0.h,z16.h,z6.h\[7\]' .*: Error: selected processor does not support `bfmla z1.h,z8.h,z5.h\[6\]' .*: Error: selected processor does not support `bfmla z2.h,z14.h,z4.h\[4\]' .*: Error: selected processor does not support `bfmla z4.h,z21.h,z2.h\[2\]' .*: Error: selected processor does not support `bfmla z8.h,z12.h,z1.h\[1\]' .*: Error: selected processor does not support `bfmla z16.h,z10.h,z0.h\[0\]' -.*: Error: selected processor does not support `bfmls z0.h,p0\/m,z0.h,z16.h' -.*: Error: selected processor does not support `bfmls z1.h,p1\/m,z1.h,z8.h' -.*: Error: selected processor does not support `bfmls z2.h,p2\/m,z2.h,z4.h' -.*: Error: selected processor does not support `bfmls z4.h,p4\/m,z4.h,z2.h' -.*: Error: selected processor does not support `bfmls z8.h,p6\/m,z8.h,z1.h' -.*: Error: selected processor does not support `bfmls z16.h,p7\/m,z16.h,z0.h' +.*: Error: selected processor does not support `bfmls .* +.*: Error: selected processor does not support `bfmls .* +.*: Error: selected processor does not support `bfmls .* +.*: Error: selected processor does not support `bfmls .* +.*: Error: selected processor does not support `bfmls .* +.*: Error: selected processor does not support `bfmls .* .*: Error: selected processor does not support `bfmls z0.h,z16.h,z6.h\[7\]' .*: Error: selected processor does not support `bfmls z1.h,z8.h,z5.h\[6\]' .*: Error: selected processor does not support `bfmls z2.h,z14.h,z4.h\[4\]' --- /dev/null +++ b/gas/testsuite/gas/aarch64/bfloat16-invalid.d @@ -0,0 +1,4 @@ +#name: Test Bfloat16 instructions with wrong operand combinations +#as: -march=armv9.4-a +#source: bfloat16-invalid.s +#error_output: bfloat16-invalid.l --- /dev/null +++ b/gas/testsuite/gas/aarch64/bfloat16-invalid.l @@ -0,0 +1,8 @@ +.*: Assembler messages: +[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfadd .* +[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfmax .* +[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfmaxnm .* +[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfmin .* +[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfminnm .* +[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfmul .* +[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfsub .* --- /dev/null +++ b/gas/testsuite/gas/aarch64/bfloat16-invalid.s @@ -0,0 +1,13 @@ +bfadd z0.h, p0/m, z1.h, z0.h + +bfmax z0.h, p0/m, z1.h, z0.h + +bfmaxnm z0.h, p0/m, z1.h, z0.h + +bfmin z0.h, p0/m, z1.h, z0.h + +bfminnm z0.h, p0/m, z1.h, z0.h + +bfmul z0.h, p0/m, z1.h, z0.h + +bfsub z0.h, p0/m, z1.h, z0.h --- a/opcodes/aarch64-dis-2.c +++ b/opcodes/aarch64-dis-2.c @@ -32211,14 +32211,14 @@ aarch64_find_next_opcode (const aarch64_ case 1705: return NULL; /* ldff1h --> NULL. */ case 1659: value = 3313; break; /* ld2h --> ld2q. */ case 3313: return NULL; /* ld2q --> NULL. */ - case 2464: value = 3279; break; /* fclamp --> bfclamp. */ - case 3279: return NULL; /* bfclamp --> NULL. */ + case 2464: value = 3281; break; /* fclamp --> bfclamp. */ + case 3281: return NULL; /* bfclamp --> NULL. */ case 1778: value = 1779; break; /* ldr --> ldr. */ case 1779: return NULL; /* ldr --> NULL. */ - case 1434: value = 3278; break; /* fadd --> bfadd. */ - case 3278: return NULL; /* bfadd --> NULL. */ - case 1501: value = 3281; break; /* fmul --> bfmul. */ - case 3281: return NULL; /* bfmul --> NULL. */ + case 1434: value = 3280; break; /* fadd --> bfadd. */ + case 3280: return NULL; /* bfadd --> NULL. */ + case 1501: value = 3282; break; /* fmul --> bfmul. */ + case 3282: return NULL; /* bfmul --> NULL. */ case 1527: value = 3283; break; /* fsub --> bfsub. */ case 3283: return NULL; /* bfsub --> NULL. */ case 1492: value = 3276; break; /* fmla --> bfmla. */ @@ -32251,12 +32251,12 @@ aarch64_find_next_opcode (const aarch64_ case 3271: return NULL; /* bfadd --> NULL. */ case 1482: value = 3273; break; /* fmaxnm --> bfmaxnm. */ case 3273: return NULL; /* bfmaxnm --> NULL. */ - case 1502: value = 3280; break; /* fmul --> bfmul. */ - case 3280: return NULL; /* bfmul --> NULL. */ + case 1502: value = 3278; break; /* fmul --> bfmul. */ + case 3278: return NULL; /* bfmul --> NULL. */ case 1480: value = 3272; break; /* fmax --> bfmax. */ case 3272: return NULL; /* bfmax --> NULL. */ - case 1528: value = 3282; break; /* fsub --> bfsub. */ - case 3282: return NULL; /* bfsub --> NULL. */ + case 1528: value = 3279; break; /* fsub --> bfsub. */ + case 3279: return NULL; /* bfsub --> NULL. */ case 1488: value = 3275; break; /* fminnm --> bfminnm. */ case 3275: return NULL; /* bfminnm --> NULL. */ case 1486: value = 3274; break; /* fmin --> bfmin. */ --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -6331,18 +6331,18 @@ const struct aarch64_opcode aarch64_opco D128_THE_INSN("rcwsswppl", 0x5960a000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0), /* BFloat16 SVE Instructions. */ - B16B16_INSNC("bfadd", 0x65008000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 0), - B16B16_INSNC("bfmax", 0x65068000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 0), - B16B16_INSNC("bfmaxnm", 0x65048000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 0), - B16B16_INSNC("bfmin", 0x65078000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 0), - B16B16_INSNC("bfminnm", 0x65058000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 0), + B16B16_INSNC("bfadd", 0x65008000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), + B16B16_INSNC("bfmax", 0x65068000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), + B16B16_INSNC("bfmaxnm", 0x65048000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), + B16B16_INSNC("bfmin", 0x65078000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), + B16B16_INSNC("bfminnm", 0x65058000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), B16B16_INSNC("bfmla", 0x65200000, 0xffe0e000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zn, SVE_Zm_16), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 0), B16B16_INSNC("bfmls", 0x65202000, 0xffe0e000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zn, SVE_Zm_16), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 0), + B16B16_INSNC("bfmul", 0x65028000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), + B16B16_INSNC("bfsub", 0x65018000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), B16B16_INSN("bfadd", 0x65000000, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_HHH, 0, 0), B16B16_INSN("bfclamp", 0x64202400, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_HHH, 0, 0), - B16B16_INSNC("bfmul", 0x65028000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 0), B16B16_INSN("bfmul", 0x65000800, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_HHH, 0, 0), - B16B16_INSNC("bfsub", 0x65018000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 0), B16B16_INSN("bfsub", 0x65000400, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_HHH, 0, 0), B16B16_INSN("bfmla", 0x64200800, 0xffa0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_22_INDEX), OP_SVE_VVV_H, 0, 0), B16B16_INSN("bfmls", 0x64200c00, 0xffa0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_22_INDEX), OP_SVE_VVV_H, 0, 0),