@@ -872,6 +872,20 @@ llvm.func @rocdl.make.buffer.rsrc.p7.p1(%ptr : !llvm.ptr<1>,
872872 llvm.return %rsrc : !llvm.ptr <7 >
873873}
874874
875+ llvm.func @rocdl.permlanex16 (%src0 : f32 , %src1 : i32 , %src2 : vector <2 x f32 >, %src3 : vector <2 x i32 >) -> f32 {
876+ %cst0 = llvm.mlir.constant (-1 : i32 ) : i32
877+ // CHECK-LABEL: rocdl.permlanex16
878+ // CHECK: call float @llvm.amdgcn.permlanex16.f32(float %{{.*}}, float %{{.*}}, i32 -1, i32 -1, i1 false, i1 true)
879+ %ret0 = rocdl.permlanex16 %src0 , %src0 , %cst0 , %cst0 , 0 , -1 : f32 , i32
880+ // CHECK: call i32 @llvm.amdgcn.permlanex16.i32(i32 %{{.*}}, i32 %{{.*}}, i32 -1, i32 -1, i1 false, i1 true)
881+ %ret1 = rocdl.permlanex16 %src1 , %src1 , %cst0 , %cst0 , 0 , -1 : i32 , i32
882+ // CHECK: call <2 x float> @llvm.amdgcn.permlanex16.v2f32(<2 x float> %{{.*}}, <2 x float> %{{.*}}, i32 -1, i32 -1, i1 false, i1 true)
883+ %ret2 = rocdl.permlanex16 %src2 , %src2 , %cst0 , %cst0 , 0 , -1 : vector <2 x f32 >, i32
884+ // CHECK: call <2 x i32> @llvm.amdgcn.permlanex16.v2i32(<2 x i32> %{{.*}}, <2 x i32> %{{.*}}, i32 -1, i32 -1, i1 false, i1 true)
885+ %ret3 = rocdl.permlanex16 %src3 , %src3 , %cst0 , %cst0 , 0 , -1 : vector <2 x i32 >, i32
886+ llvm.return %ret0 : f32
887+ }
888+
875889llvm.func @rocdl.wmma.fp8 (%arg0 : vector <2 x i32 >, %arg1 : vector <8 xf32 >) -> vector <8 xf32 > {
876890 // CHECK: call <8 x float> @llvm.amdgcn.wmma.f32.16x16x16.fp8.fp8.v8f32.v2i32(<2 x i32> %{{.*}}, <2 x i32> %{{.*}}, <8 x float> %{{.*}})
877891 %r0 = rocdl.wmma.f32.16x16x16.fp8_fp8 %arg0 , %arg0 , %arg1: (vector <2 xi32 >, vector <2 xi32 >, vector <8 xf32 >) -> vector <8 xf32 >
0 commit comments