@@ -144,8 +144,28 @@ entry:
144
144
ret <6 x double > %mul
145
145
}
146
146
147
+ define void @test_remove_entries_from_shape_map (<3 x float > %a , <2 x float > %b , <6 x float > %c , ptr %dst ) {
148
+ ; CHECK-LABEL: define void @test_remove_entries_from_shape_map(
149
+ ; CHECK-SAME: <3 x float> [[A:%.*]], <2 x float> [[B:%.*]], <6 x float> [[C:%.*]], ptr [[DST:%.*]]) {
150
+ ; CHECK-NEXT: [[ENTRY:.*:]]
151
+ ; CHECK-NEXT: [[TMP0:%.*]] = call <6 x float> @llvm.matrix.multiply.v6f32.v3f32.v2f32(<3 x float> [[A]], <2 x float> [[B]], i32 3, i32 1, i32 2)
152
+ ; CHECK-NEXT: [[MFADD:%.*]] = fadd <6 x float> [[C]], [[TMP0]]
153
+ ; CHECK-NEXT: [[MFADD_T:%.*]] = call <6 x float> @llvm.matrix.transpose.v6f32(<6 x float> [[MFADD]], i32 3, i32 2)
154
+ ; CHECK-NEXT: store <6 x float> [[MFADD_T]], ptr [[DST]], align 4
155
+ ; CHECK-NEXT: ret void
156
+ ;
157
+ entry:
158
+ %m = tail call <6 x float > @llvm.matrix.multiply.v6f32.v3f32.v2f32 (<3 x float > %a , <2 x float > %b , i32 3 , i32 1 , i32 2 )
159
+ %add = fadd <6 x float > %c , %m
160
+ %t = tail call <6 x float > @llvm.matrix.transpose.v6f32 (<6 x float > %add , i32 3 , i32 2 )
161
+ store <6 x float > %t , ptr %dst , align 4
162
+ ret void
163
+ }
164
+
147
165
declare <6 x double > @llvm.matrix.transpose.v6f64.v6f64 (<6 x double >, i32 , i32 )
148
166
declare <4 x double > @llvm.matrix.transpose.v4f64.v4f64 (<4 x double >, i32 , i32 )
149
167
declare <9 x double > @llvm.matrix.multiply.v9f64.v6f64 (<6 x double >, <6 x double >, i32 , i32 , i32 )
150
168
declare <6 x double > @llvm.matrix.multiply.v6f64.v6f64.v4f64 (<6 x double >, <4 x double >, i32 , i32 , i32 )
151
169
declare <6 x double > @llvm.matrix.multiply.v6f64.v6f64.v6f64 (<6 x double >, <4 x double >, i32 , i32 , i32 )
170
+ declare <6 x float > @llvm.matrix.transpose.v6f32 (<6 x float >, i32 immarg, i32 immarg)
171
+ declare <6 x float > @llvm.matrix.multiply.v6f32.v3f32.v2f32 (<3 x float >, <2 x float >, i32 immarg, i32 immarg, i32 immarg)
0 commit comments