(tgt $l, $r)>;
def : BinaryOpPattern<AddFOp, SPV_FAddOp>;
+def : BinaryOpPattern<DivFOp, SPV_FDivOp>;
def : BinaryOpPattern<MulFOp, SPV_FMulOp>;
+def : BinaryOpPattern<RemFOp, SPV_FRemOp>;
+def : BinaryOpPattern<SubFOp, SPV_FSubOp>;
// Constant Op
// TODO(ravishankarm): Handle lowering other constant types.
return
}
+// CHECK-LABEL: @fadd_scalar
+func @fadd_scalar(%arg: f32) -> f32 {
+ // CHECK: spv.FAdd
+ %0 = addf %arg, %arg : f32
+ return %0 : f32
+}
+
+// CHECK-LABEL: @fdiv_scalar
+func @fdiv_scalar(%arg: f32) -> f32 {
+ // CHECK: spv.FDiv
+ %0 = divf %arg, %arg : f32
+ return %0 : f32
+}
+
// CHECK-LABEL: @fmul_scalar
func @fmul_scalar(%arg: f32) -> f32 {
// CHECK: spv.FMul
return %0 : tensor<4xf32>
}
+// CHECK-LABEL: @frem_scalar
+func @frem_scalar(%arg: f32) -> f32 {
+ // CHECK: spv.FRem
+ %0 = remf %arg, %arg : f32
+ return %0 : f32
+}
+
+// CHECK-LABEL: @fsub_scalar
+func @fsub_scalar(%arg: f32) -> f32 {
+ // CHECK: spv.FSub
+ %0 = subf %arg, %arg : f32
+ return %0 : f32
+}
+
// CHECK-LABEL: @div_rem
func @div_rem(%arg0 : i32, %arg1 : i32) {
// CHECK: spv.SDiv