This patch is the first step towards ensuring MergeConsecutiveStores correctly handles non-temporal stores:
1 - When merging load\stores we must ensure that they all have the same non-temporal flag. This is unlikely to occur, but can in strange cases where we're storing at the end of one page and the beginning of another.
2 - The merged load\store node must retain the non-temporal flag.
After this I need to improve alignment handling - in most cases we shouldn't merge nt-ops unless they are naturally aligned - either we just prevent it in all cases or we refactor canMergeStoresTo\allowsMemoryAccess to include access to the alignment and MMO flags as well?
Looks like we were erroneously transferring dereferencable from load to store on merge before. I think we need to do a store version of the isDereferencable calculation or we'll only preserve it on truncstores.