@@ -19847,6 +19847,7 @@ aarch64_conditional_register_usage (void)
{
fixed_regs[i] = 1;
call_used_regs[i] = 1;
+ CLEAR_HARD_REG_BIT (operand_reg_set, i);
}
}
if (!TARGET_SVE)
new file mode 100644
@@ -0,0 +1,19 @@
+/* { dg-options "" } */
+
+#pragma GCC target "+nothing+nofp"
+
+void
+test (void)
+{
+ register int q0 asm ("q0"); // { dg-error "not general enough" }
+ register int q1 asm ("q1"); // { dg-error "not general enough" }
+ asm volatile ("" : "=w" (q0));
+ q1 = q0;
+ asm volatile ("" :: "w" (q1));
+}
+
+void
+ok (void)
+{
+ asm volatile ("" ::: "q0");
+}