[PATCH 2/2] x86: fold F16C templates with their AVX512VL counterparts

Project / Subsystem

binutils / x86

Date

2026-07-17

Proposer

Jan Beulich <jbeulich@suse.com>

Source type

public_inbox

Consensus

Proposed

Sentiment

/10

Technical tradeoffs

  • Consolidating templates simplifies the assembler's internal representation but requires careful handling of feature dependencies.
  • Ensuring that explicit feature disabling (`.no{fma,f16c}`) continues to work correctly with new AVX512VL instructions adds complexity but maintains backward compatibility and avoids silent breaking changes.

All attributes

project
binutils
subsystem
x86
patch_id
discussion_id
1d918dc0-4b90-4093-b261-b91bdf372d39@suse.com
source_type
public_inbox
title
[PATCH 2/2] x86: fold F16C templates with their AVX512VL counterparts
headline
x86: fold F16C templates with their AVX512VL counterparts
tldr
Consolidates F16C instruction templates with AVX512VL counterparts and addresses issues with explicit feature disabling.
proposer
Jan Beulich <jbeulich@suse.com>
consensus
Proposed
outcome
proposed
sentiment_score
technical_tradeoffs
  • Consolidating templates simplifies the assembler's internal representation but requires careful handling of feature dependencies.
  • Ensuring that explicit feature disabling (`.no{fma,f16c}`) continues to work correctly with new AVX512VL instructions adds complexity but maintains backward compatibility and avoids silent breaking changes.
series_id
binutils:x86: fold f16c templates with their avx512vl counterparts
series_role
reply
series_parts
[]
tags
  • binutils
  • x86
  • AVX
  • F16C
  • performance
bugzilla_url
date
2026-07-17T00:00:00.000Z

[PATCH 2/2] x86: fold F16C templates with their AVX512VL counterparts

This patch folds F16C instruction templates with their AVX512VL counterparts, similar to how FMA instructions were handled previously. This consolidation is deemed conceptually straightforward. The changes also uncover and fix a flaw in FMA template handling where AVX512VL could be enabled even if FMA/F16C were explicitly disabled. A related issue is raised: code using .arch .no{fma,f16c} might assemble to AVX512VL EVEX forms when AVX512 support is added, breaking previous protection. The proposed solution is to reject AVX512VL forms if FMA/F16C are explicitly disabled.