Hi Richard, > I was worried that reusing "dest" for intermediate results would > prevent CSE for cases like: > > void g (long long, long long); > void > f (long long *ptr) > { > g (0xee11ee22ee11ee22LL, 0xdc23dc44ee11ee22LL); > }
Note that aarch64_internal_mov_immediate may be called after reload, so it would end up even more complex. This should be done as a dedicated mid-end optimization similar to TARGET_CONST_ANCHOR. However the number of 3/4-instruction immediates is so small that sharable cases would be very rare, so I don't believe it is worth it. Cheers, Wilco