; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes='lower-matrix-intrinsics' -S < %s | FileCheck %s

define <9 x float> @strided_load_3x3(ptr %in, i64 %stride) {
; CHECK-LABEL: @strided_load_3x3(
; CHECK-NEXT:  entry:
; CHECK-NEXT:    [[VEC_START:%.*]] = mul i64 0, [[STRIDE:%.*]]
; CHECK-NEXT:    [[VEC_GEP:%.*]] = getelementptr float, ptr [[IN:%.*]], i64 [[VEC_START]]
; CHECK-NEXT:    [[COL_LOAD:%.*]] = load <3 x float>, ptr [[VEC_GEP]], align 4
; CHECK-NEXT:    [[VEC_START1:%.*]] = mul i64 1, [[STRIDE]]
; CHECK-NEXT:    [[VEC_GEP2:%.*]] = getelementptr float, ptr [[IN]], i64 [[VEC_START1]]
; CHECK-NEXT:    [[COL_LOAD4:%.*]] = load <3 x float>, ptr [[VEC_GEP2]], align 4
; CHECK-NEXT:    [[VEC_START5:%.*]] = mul i64 2, [[STRIDE]]
; CHECK-NEXT:    [[VEC_GEP6:%.*]] = getelementptr float, ptr [[IN]], i64 [[VEC_START5]]
; CHECK-NEXT:    [[COL_LOAD8:%.*]] = load <3 x float>, ptr [[VEC_GEP6]], align 4
; CHECK-NEXT:    [[TMP0:%.*]] = shufflevector <3 x float> [[COL_LOAD]], <3 x float> [[COL_LOAD4]], <6 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5>
; CHECK-NEXT:    [[TMP1:%.*]] = shufflevector <3 x float> [[COL_LOAD8]], <3 x float> poison, <6 x i32> <i32 0, i32 1, i32 2, i32 poison, i32 poison, i32 poison>
; CHECK-NEXT:    [[TMP2:%.*]] = shufflevector <6 x float> [[TMP0]], <6 x float> [[TMP1]], <9 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8>
; CHECK-NEXT:    ret <9 x float> [[TMP2]]
;
entry:
  %load = call <9 x float> @llvm.matrix.column.major.load(ptr %in, i64 %stride, i1 false, i32 3, i32 3)
  ret <9 x float> %load
}

declare <9 x float> @llvm.matrix.column.major.load(ptr, i64, i1, i32, i32)

define <9 x float> @strided_load_9x1(ptr %in, i64 %stride) {
; CHECK-LABEL: @strided_load_9x1(
; CHECK-NEXT:  entry:
; CHECK-NEXT:    [[VEC_START:%.*]] = mul i64 0, [[STRIDE:%.*]]
; CHECK-NEXT:    [[VEC_GEP:%.*]] = getelementptr float, ptr [[IN:%.*]], i64 [[VEC_START]]
; CHECK-NEXT:    [[COL_LOAD:%.*]] = load <9 x float>, ptr [[VEC_GEP]], align 4
; CHECK-NEXT:    ret <9 x float> [[COL_LOAD]]
;
entry:
  %load = call <9 x float> @llvm.matrix.column.major.load(ptr %in, i64 %stride, i1 false, i32 9, i32 1)
  ret <9 x float> %load
}

declare <8 x float> @llvm.matrix.column.major.load.v8f32(ptr, i64, i1, i32, i32)

define <8 x float> @strided_load_4x2(ptr %in, i64 %stride) {
; CHECK-LABEL: @strided_load_4x2(
; CHECK-NEXT:  entry:
; CHECK-NEXT:    [[VEC_START:%.*]] = mul i64 0, [[STRIDE:%.*]]
; CHECK-NEXT:    [[VEC_GEP:%.*]] = getelementptr float, ptr [[IN:%.*]], i64 [[VEC_START]]
; CHECK-NEXT:    [[COL_LOAD:%.*]] = load <4 x float>, ptr [[VEC_GEP]], align 4
; CHECK-NEXT:    [[VEC_START1:%.*]] = mul i64 1, [[STRIDE]]
; CHECK-NEXT:    [[VEC_GEP2:%.*]] = getelementptr float, ptr [[IN]], i64 [[VEC_START1]]
; CHECK-NEXT:    [[COL_LOAD4:%.*]] = load <4 x float>, ptr [[VEC_GEP2]], align 4
; CHECK-NEXT:    [[TMP0:%.*]] = shufflevector <4 x float> [[COL_LOAD]], <4 x float> [[COL_LOAD4]], <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
; CHECK-NEXT:    ret <8 x float> [[TMP0]]
;
entry:
  %load = call <8 x float> @llvm.matrix.column.major.load.v8f32(ptr %in, i64 %stride, i1 false, i32 4, i32 2)
  ret <8 x float> %load
}
