
Currently Changed is not updated properly when transposes are optimized, causing missing analysis invalidation. Update optimizeTransposes to indicate if changes have been made.
18 lines
835 B
LLVM
18 lines
835 B
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
|
|
; RUN: opt -p lower-matrix-intrinsics -verify-analysis-invalidation -S %s | FileCheck %s
|
|
|
|
define <3 x float> @splat_transpose(<3 x float> %in) {
|
|
; CHECK-LABEL: define <3 x float> @splat_transpose(
|
|
; CHECK-SAME: <3 x float> [[IN:%.*]]) {
|
|
; CHECK-NEXT: [[ENTRY:.*:]]
|
|
; CHECK-NEXT: [[SPLAT:%.*]] = shufflevector <3 x float> [[IN]], <3 x float> zeroinitializer, <3 x i32> zeroinitializer
|
|
; CHECK-NEXT: ret <3 x float> [[SPLAT]]
|
|
;
|
|
entry:
|
|
%splat = shufflevector <3 x float> %in, <3 x float> zeroinitializer, <3 x i32> zeroinitializer
|
|
%r = tail call <3 x float> @llvm.matrix.transpose.v3f32(<3 x float> %splat, i32 3, i32 1)
|
|
ret <3 x float> %r
|
|
}
|
|
|
|
declare <3 x float> @llvm.matrix.transpose.v3f32(<3 x float>, i32 immarg, i32 immarg)
|