Note that the other instructions in loop() especially digitalwrite() also consumes time.
have a look at - Arduino Reference - Arduino Reference - for faster writing.
(especially if you prepare the bitmasks in advance).
And I would remove the constrain from the switch and use only 2 if statements.
partially patched - not tested
void loop() {
if (irrecv.decode(&results))
{
switch (results.value)
{
case UP : if (BLDC_us < 1500) BLDC_us++;
break;
case DOWN : if (BLDC_us > 750) BLDC_us--;
break;
case POWER : BLDC_us=1125;
break;
default: break;
}
irrecv.resume(); //Prepare to receive the next value
}
//digitalWrite(BLDC, HIGH);
PORTB = highmask;
delayMicroseconds(BLDC_us);
// digitalWrite(BLDC, LOW);
PORTB = lowmask;
delayMicroseconds(BLDC_us);
}