diff --git a/.pick_status.json b/.pick_status.json index 60d66a956ce..9627e5e5a4f 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -474,7 +474,7 @@ "description": "vtn/opencl: Handle OpenCLstd_F{Min,Max}_common", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/compiler/spirv/vtn_opencl.c b/src/compiler/spirv/vtn_opencl.c index a824f4b3a14..a5cfd34a60d 100644 --- a/src/compiler/spirv/vtn_opencl.c +++ b/src/compiler/spirv/vtn_opencl.c @@ -267,6 +267,9 @@ nir_alu_op_for_opencl_opcode(struct vtn_builder *b, case OpenCLstd_Half_recip: return nir_op_frcp; /* uhm... */ case OpenCLstd_UAbs: return nir_op_mov; + // we could do better + case OpenCLstd_FMin_common: return nir_op_fmin; + case OpenCLstd_FMax_common: return nir_op_fmax; default: vtn_fail("No NIR equivalent"); } @@ -968,6 +971,8 @@ vtn_handle_opencl_instruction(struct vtn_builder *b, SpvOp ext_opcode, case OpenCLstd_Rint: case OpenCLstd_Half_divide: case OpenCLstd_Half_recip: + case OpenCLstd_FMin_common: + case OpenCLstd_FMax_common: handle_instr(b, ext_opcode, w + 5, count - 5, w + 1, handle_alu); return true; case OpenCLstd_SAbs_diff: