Naively, conditionally executed instructions seem like a great idea to me.
As I read more about ARM (and ARM-like) instruction sets (Thumb2, Unicore, AArch64) I find that they all lack the bits for conditional execution.
Why is conditional execution missing from each of these?
Was conditional execution a mistake at the time, or have subsequent changes made it an expensive waste of instruction bits?
General claim is modern systems have better branch predictors and compilers are much more advanced so their cost on instruction encoding space is not justified.
This is from ARMv8 Instruction Set Overview
And it continues
Another paper titled Trading Conditional Execution for More Registers on ARM Processors claims: