On 01.10.20 17:26, Richard Henderson wrote: > On 9/30/20 9:55 AM, David Hildenbrand wrote: >> + /* Multipy both even elements from v2 and v3 */ >> + read_vec_element_i64(l1, get_field(s, v2), 0, ES_64); >> + read_vec_element_i64(h1, get_field(s, v3), 0, ES_64); >> + tcg_gen_mulu2_i64(l1, h1, l1, h1); >> + /* Shift result left by one bit if requested */ >> + if (extract32(get_field(s, m6), 3, 1)) { >> + tcg_gen_extract2_i64(h1, l1, h1, 63); >> + tcg_gen_shli_i64(l1, l1, 1); >> + } > > Not a bug, but some hosts require 3 insns for extract2 (so 4 total for this > sequence). > > This doubling can also be had via add2: > > tcg_gen_add2_i64(l1, h1, l1, h1, l1, h1);
Took me longer than it should to realize this is really just doubling the value ... will use tcg_gen_add2_i64() and add a comment. Thanks! -- Thanks, David / dhildenb