fixes https://github.com/llvm/llvm-project/issues/179859 For matrix types we need to check the language mode so we can change the matrix memory layout to arrays of vectors. To make this play nice with how the rest of clang treats matrices we need to modify the MaybeConvertMatrixAddress and the CreateMemTemp function to know how to reconstruct a flattened vector. Rest of changes is just test updates.