Hello, I have a 32-bit machine, but on top, it has a 64-bit move. For the latter, it groups 2 32-bit registers in one 64-bit register. Now, I have written a small test program : long long int mem_read( long long int *a) { return(a[1000]) ; } and the compiler (gcc 9.2.0) implements that as 2 32-bit reads. The "movdi" is defined, the optimizers are turned on, and in the rtl dump, I see the "split2" step is splitting the "DI" in 2x "SI". Any idea why this happens ?. Where should I look for this ?. Best Regards, Henri.