From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 980303858D28 for ; Fri, 22 Mar 2024 09:27:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 980303858D28 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 980303858D28 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=1711099633; cv=none; b=WP2LIPa1ug5zMUfNnO+7QFZuxQ3t/0u9l824jfyIO6R6YfZlP4cGd/RkugljU20jpHx0d0pOuKaxsN2xIovieTBlc96Wldq9tcBLk+XtepBSjCB5sY9bf+A5fmiFCISc72tUMtPVgX1rIaQkxuFp7nQ28o8vmF30l6TuTdvFsJM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711099633; c=relaxed/simple; bh=VbhKXEAGdYv82q7JiIby/cy6suxaqGRWz163k/kkWiI=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=G5vFwlIdRUnl0/Pb0JOgnRj96fIvkM9TC4wggQqYchRgcNVXnwwlLYa048u1Cq2Z/e2OwIPA5nqGrERAD0vVhE0B5foZJxfWwDqQYhRlr/zY0GnHhQI9eerNWWKGENUgfYQ0SUvc7z8J9OtQjOIhQqkcwomqLcLotNs/MyEw4Bw= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-a44665605f3so222169966b.2 for ; Fri, 22 Mar 2024 02:27:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1711099621; x=1711704421; 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=4wy4DhF8pCpj/FgD+Ihd5+9a/Pcu2Eg10BupcnKRVsE=; b=JC3icwj+OUbOB7YMwu6kvPBvalznGyX/0zT9VKyAEjv8qwYe6kO69L4vqRbM6lzD78 O2+KA9Sb3HW6AmdJCNnSKmBvTEJHHiEersAC7tzWt8UMtTVGjadQojx168clwv236ZDq OUI5F0uG/vNj4IVUaCr5JskStowywSQcXsZ8uEcH3gyEycdVMAroW4/GkALgIzVBVeyG /48JQd1MM6wTIEhRlihWCKzI2DXkAy40Rf3yx90GGzeNJHYB7CcYeGnxGZ1nMandXzM5 IK6xH1LMlKl0xIXerMGNdTBEwRk1ShJ4fYVzb/RbzrIBY4o11DxFIFfnHmre+nj5cEK7 MVLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711099621; x=1711704421; 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=4wy4DhF8pCpj/FgD+Ihd5+9a/Pcu2Eg10BupcnKRVsE=; b=G/rElCQFqnGcmWDdLd8ICw3576uYoSQ5gDW6CPv2JzAqoHSLCIWBiRczCkwXIf4f8g CrmNnDkMjnnyuJQf3ghLLqBxg3QvRAmvbjSz1riNOH4ASn5wnUVrsXKeBGfeCISJGlFU qZw/DkWxZDOfuAGsH6YU3Nry7CWYMIHwxv6XmYd7gb1mAy9xC1yjbI49dn2c9XJvkH4r cL7ye6Hc86EZ/G31m0HYcahVD7hKzvq+0BIAPQrhGmu6b8SPg1MulRWvQL3gdpM+FeFD i/EIPCZkN9AS4tXM0xn+v9IKNM4RzrTaeOJCxro+n7feXlojIBCCNU1jDFaW0I98ej7D C43A== X-Gm-Message-State: AOJu0Yzk927XeDfEDgq3/UTarB6HmuPuYhPt9u/3EMQULcJMKsUCw9qk ZHZS/D5ijIR4QbeZ+ie3Bugb0CreN+acnJH08hqapNka7AX5yFyK7IFJeVzi/XyCBYc5mDYOi9w = X-Google-Smtp-Source: AGHT+IG50ZSEq3lUmqJpekWahG5o8yagMVLVmJLOz6o2hBgc8oafQntPN95cLjDhfzeIhR3y5Jc4GQ== X-Received: by 2002:a17:906:fb98:b0:a47:34fd:9516 with SMTP id lr24-20020a170906fb9800b00a4734fd9516mr443029ejb.70.1711099621274; Fri, 22 Mar 2024 02:27:01 -0700 (PDT) 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 e2-20020a17090681c200b00a4735fc654fsm153528ejx.205.2024.03.22.02.27.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 22 Mar 2024 02:27:01 -0700 (PDT) Message-ID: <663e2e0c-b098-476d-aac7-9bda63187af4@suse.com> Date: Fri, 22 Mar 2024 10:27:00 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 1/5] x86/SSE2AVX: respect prefixes Content-Language: en-US From: Jan Beulich To: Binutils Cc: "H.J. Lu" , Lili Cui References: 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: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3025.2 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 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: 1) Without -msse2avx we unconditionally honor REX.W. Hence we ought to also do so with -msse2avx, converting to VEX.W. 2) {rex} doesn't prevent conversion to VEX encodings. Thus {rex2} shouldn't either. --- Further {evex} may better also be respected, but that'll be a bigger change. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -3885,7 +3885,7 @@ build_vex_prefix (const insn_template *t /* Check the REX.W bit and VEXW. */ if (i.tm.opcode_modifier.vexw == VEXWIG) w = (vexwig == vexw1 || (i.rex & REX_W)) ? 1 : 0; - else if (i.tm.opcode_modifier.vexw) + else if (i.tm.opcode_modifier.vexw && !(i.rex & REX_W)) w = i.tm.opcode_modifier.vexw == VEXW1 ? 1 : 0; else w = (flag_code == CODE_64BIT ? i.rex & REX_W : vexwig == vexw1) ? 1 : 0; @@ -8413,7 +8413,7 @@ check_EgprOperands (const insn_template } /* Check if pseudo prefix {rex2} is valid. */ - if (i.rex2_encoding) + if (i.rex2_encoding && !t->opcode_modifier.sse2avx) { i.error = invalid_pseudo_prefix; return true; @@ -10031,6 +10031,7 @@ process_operands (void) i.rex |= i.prefix[REX_PREFIX] & (REX_W | REX_R | REX_X | REX_B); i.prefix[REX_PREFIX] = 0; i.rex_encoding = 0; + i.rex2_encoding = 0; } /* ImmExt should be processed after SSE2AVX. */ else if (i.tm.opcode_modifier.immext) --- a/gas/testsuite/gas/i386/x86-64-sse2avx.s +++ b/gas/testsuite/gas/i386/x86-64-sse2avx.s @@ -841,6 +841,15 @@ _start: rex64 pcmpestri $0, %xmm0, %xmm0 rex64 pcmpestrm $0, %xmm0, %xmm0 + movd %xmm1, %eax + rex movd %xmm1, %eax + rex.b movd %xmm1, %eax + rex.r movd %xmm1, %eax + rex.x movd %xmm1, %eax + rex.w movd %xmm1, %eax + {rex} movd %xmm1, %eax + {rex2} movd %xmm1, %eax + {vex3} movd %xmm1, %eax .intel_syntax noprefix # Tests for op mem64 --- a/gas/testsuite/gas/i386/x86-64-sse2avx.d +++ b/gas/testsuite/gas/i386/x86-64-sse2avx.d @@ -740,6 +740,15 @@ Disassembly of section .text: [ ]*[a-f0-9]+: c4 e1 fa 2a 00 vcvtsi2ssq \(%rax\),%xmm0,%xmm0 [ ]*[a-f0-9]+: c4 e3 f9 61 c0 00 vpcmpestriq \$(0x)?0,%xmm0,%xmm0 [ ]*[a-f0-9]+: c4 e3 f9 60 c0 00 vpcmpestrmq \$(0x)?0,%xmm0,%xmm0 +[ ]*[a-f0-9]+: c5 f9 7e c8 vmovd %xmm1,%eax +[ ]*[a-f0-9]+: c5 f9 7e c8 vmovd %xmm1,%eax +[ ]*[a-f0-9]+: c4 c1 79 7e c8 vmovd %xmm1,%r8d +[ ]*[a-f0-9]+: c5 79 7e c8 vmovd %xmm9,%eax +[ ]*[a-f0-9]+: c4 a1 79 7e c8 vmovd %xmm1,%eax +[ ]*[a-f0-9]+: c4 e1 f9 7e c8 vmovq %xmm1,%rax +[ ]*[a-f0-9]+: c5 f9 7e c8 vmovd %xmm1,%eax +[ ]*[a-f0-9]+: c5 f9 7e c8 vmovd %xmm1,%eax +[ ]*[a-f0-9]+: c4 e1 79 7e c8 vmovd %xmm1,%eax [ ]*[a-f0-9]+: c5 f8 ae 11 vldmxcsr \(%rcx\) [ ]*[a-f0-9]+: c5 f8 ae 19 vstmxcsr \(%rcx\) [ ]*[a-f0-9]+: c5 f8 5b f4 vcvtdq2ps %xmm4,%xmm6