diff options
Diffstat (limited to 'mlir/test/Dialect/LLVMIR/rocdl.mlir')
| -rw-r--r-- | mlir/test/Dialect/LLVMIR/rocdl.mlir | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/mlir/test/Dialect/LLVMIR/rocdl.mlir b/mlir/test/Dialect/LLVMIR/rocdl.mlir index 5186e43398f0..1bcc1ce74fd8 100644 --- a/mlir/test/Dialect/LLVMIR/rocdl.mlir +++ b/mlir/test/Dialect/LLVMIR/rocdl.mlir @@ -754,23 +754,49 @@ llvm.func @rocdl_8bit_floats(%source: i32, %stoch: i32) -> i32 { // CHECK-LABEL: @rocdl_8bit_floats // CHECK: rocdl.cvt.f32.bf8 // CHECK: rocdl.cvt.f32.fp8 +// CHECK: rocdl.cvt.scalef32.f32.bf8 +// CHECK: rocdl.cvt.scalef32.f32.fp8 // CHECK: rocdl.cvt.pk.bf8.f32 // CHECK: rocdl.cvt.pk.fp8.f32 // CHECK: rocdl.cvt.sr.bf8.f32 // CHECK: rocdl.cvt.sr.fp8.f32 +// CHECK: rocdl.cvt.scalef32.sr.fp8.f32 +// CHECK: rocdl.cvt.sr.bf8.f32 +// CHECK: rocdl.cvt.scalef32.sr.bf8.f32 +// CHECK: rocdl.cvt.scalef32.pk.f32.fp8 +// CHECK: rocdl.cvt.scalef32.pk.f32.bf8 %c0 = llvm.mlir.constant(0 : i32) : i32 %c2 = llvm.mlir.constant(2 : i32) : i32 %c3 = llvm.mlir.constant(3 : i32) : i32 + %c4 = llvm.mlir.constant(1.0 : f32) : f32 %false = llvm.mlir.constant(false) : i1 %v1 = rocdl.cvt.f32.bf8 %source[%c0] : f32 %v2 = rocdl.cvt.f32.fp8 %source[%c0] : f32 + %v1_scaled = rocdl.cvt.scalef32.f32.bf8 %source[%c0], %c4 : f32 + %v2_scaled = rocdl.cvt.scalef32.f32.fp8 %source[%c0], %c4 : f32 %source2 = rocdl.cvt.pk.bf8.f32 %v1, %v2 -> %source[%false] : i32 %source3 = rocdl.cvt.pk.fp8.f32 %v1, %v2 -> %source2[%false] : i32 %source4 = rocdl.cvt.sr.bf8.f32 %v1, %stoch -> %source3[%c2] : i32 %source5 = rocdl.cvt.sr.fp8.f32 %v2, %stoch -> %source4[%c3] : i32 + %source5_scaled = rocdl.cvt.scalef32.sr.fp8.f32 %v2, %stoch, %c4 -> %source4[%c3] : i32 + %source6 = rocdl.cvt.sr.bf8.f32 %v1, %stoch -> %source3[%c3] : i32 + %source6_scaled = rocdl.cvt.scalef32.sr.bf8.f32 %v2, %stoch, %c4 -> %source3[%c3] : i32 + %source7_scaled = rocdl.cvt.scalef32.pk.f32.fp8 %source[%false], %c4 : f32 + %source8_scaled = rocdl.cvt.scalef32.pk.f32.bf8 %source[%false], %c4 : f32 llvm.return %source5 : i32 } +llvm.func @rocdl_8bit_packed_v2i16(%sourceA: f32, %sourceB: f32, %old: vector<2xi16>) -> vector<2xi16> { +// CHECK-LABEL: @rocdl_8bit_packed_v2i16 +// CHECK: rocdl.cvt.scalef32.pk.fp8.f32 + %c0 = llvm.mlir.constant(1.0 : f32) : f32 + %false = llvm.mlir.constant(false) : i1 + %source_scaled = rocdl.cvt.scalef32.pk.fp8.f32 %sourceA, %sourceB, %c0 -> %old[%false] : vector<2xi16> + %source2_scaled = rocdl.cvt.scalef32.pk.bf8.f32 %sourceA, %sourceB, %c0 -> %old[%false] : vector<2xi16> + llvm.return %source_scaled : vector<2xi16> +} + + llvm.func @rocdl.waitcnt() { // CHECK-LABEL: rocdl.waitcnt // CHECK: rocdl.waitcnt 0 |
