}
 }
 
+/* Opcodes with ROUNDS are the base (rte/0) type so we can just add */
+
+static void
+mir_lower_roundmode(midgard_instruction *ins)
+{
+        if (alu_opcode_props[ins->alu.op].props & MIDGARD_ROUNDS) {
+                assert(ins->roundmode <= 0x3);
+                ins->alu.op += ins->roundmode;
+        }
+}
+
 static void
 emit_alu_bundle(compiler_context *ctx,
                 midgard_bundle *bundle,
                 /* In case we demote to a scalar */
                 midgard_scalar_alu scalarized;
 
-                if (!ins->compact_branch)
+                if (!ins->compact_branch) {
                         mir_lower_inverts(ins);
+                        mir_lower_roundmode(ins);
+                }
 
                 if (ins->unit & UNITS_ANY_VECTOR) {
                         mir_pack_mask_alu(ins);