+
+ for my $cp (map {$_->[0]} values %{$xorg}) {
+ next if (state $seen = {})->{$cp}++; # List::MoreUtils::uniq
+
+ # find multiple equivalent mnemonics
+ my @equiv = grep {$cp eq $_->[0]}
+ map {$xorg->{$_}} sort keys %{$xorg}; # values ordered by mnem.
+
+ # search for the most compatible match
+ my ($compat) = sort {
+ $equiv[$b]->[2] cmp $equiv[$a]->[2] # highest level
+ || $b <=> $a # fallback to last mnemonic
+ } 0 .. $#equiv;
+
+ # reclassify all but one as level 0 (omitted)
+ splice @equiv, $compat // -1, 1, ();
+ $_->[2] = 'l0 ex' for @equiv;
+ }
+