diff --git a/Android.bp b/Android.bp
index 54371c6..ebf00ab 100644
--- a/Android.bp
+++ b/Android.bp
@@ -85,6 +85,7 @@
     defaults: ["vixl-common"],
     cppflags: [
         "-DVIXL_CODE_BUFFER_MALLOC",
+        "-DVIXL_INCLUDE_TARGET_T32",
         ],
     srcs: ["src/aarch32/*.cc"],
 }
@@ -95,6 +96,7 @@
     cppflags: [
         "-DVIXL_INCLUDE_SIMULATOR_AARCH64",
         "-DVIXL_CODE_BUFFER_MMAP",
+        "-DVIXL_INCLUDE_TARGET_A64",
         ],
     srcs: ["src/aarch64/*.cc"],
 }
diff --git a/benchmarks/aarch32/bench-branch-link-masm.cc b/benchmarks/aarch32/bench-branch-link-masm.cc
index f26027c..05f4afc 100644
--- a/benchmarks/aarch32/bench-branch-link-masm.cc
+++ b/benchmarks/aarch32/bench-branch-link-masm.cc
@@ -97,8 +97,12 @@
       exit(1);
   }
 
+#ifdef VIXL_INCLUDE_TARGET_A32
   benchmark(iterations, A32);
+#endif
+#ifdef VIXL_INCLUDE_TARGET_T32
   benchmark(iterations, T32);
+#endif
 
   return 0;
 }
diff --git a/benchmarks/aarch32/bench-branch-masm.cc b/benchmarks/aarch32/bench-branch-masm.cc
index ac48a39..aaeb65e 100644
--- a/benchmarks/aarch32/bench-branch-masm.cc
+++ b/benchmarks/aarch32/bench-branch-masm.cc
@@ -87,8 +87,12 @@
       exit(1);
   }
 
+#ifdef VIXL_INCLUDE_TARGET_A32
   benchmark(iterations, A32);
+#endif
+#ifdef VIXL_INCLUDE_TARGET_T32
   benchmark(iterations, T32);
+#endif
 
   return 0;
 }
diff --git a/benchmarks/aarch32/bench-dataop.cc b/benchmarks/aarch32/bench-dataop.cc
index 308f2d3..e5d31d1 100644
--- a/benchmarks/aarch32/bench-dataop.cc
+++ b/benchmarks/aarch32/bench-dataop.cc
@@ -82,8 +82,12 @@
       exit(1);
   }
 
+#ifdef VIXL_INCLUDE_TARGET_A32
   benchmark(instructions, A32);
+#endif
+#ifdef VIXL_INCLUDE_TARGET_T32
   benchmark(instructions, T32);
+#endif
 
   return 0;
 }
diff --git a/examples/aarch32/switch.cc b/examples/aarch32/switch.cc
deleted file mode 100644
index f4fef15..0000000
--- a/examples/aarch32/switch.cc
+++ /dev/null
@@ -1,103 +0,0 @@
-// Copyright 2016, VIXL authors
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-//   * Redistributions of source code must retain the above copyright notice,
-//     this list of conditions and the following disclaimer.
-//   * Redistributions in binary form must reproduce the above copyright notice,
-//     this list of conditions and the following disclaimer in the documentation
-//     and/or other materials provided with the distribution.
-//   * Neither the name of ARM Limited nor the names of its contributors may be
-//     used to endorse or promote products derived from this software without
-//     specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#include "examples.h"
-
-#define __ masm->
-
-void GenerateGradeComment(MacroAssembler* masm) {
-  // Given a grade 'A', 'B', 'C', 'D' or 'F', print a relevant
-  // comment.
-  // void GradeComment(char grade)
-  Label invalid_input;
-
-  __ Subs(r1, r0, 'A');
-  __ B(lt, &invalid_input);
-
-  Label break_switch;
-  // Manage the cases from 'A' to 'F' included.
-  // Switch/Case handles inputs from [0, n[
-  // and here n is 'F' - 'A' + 1 which is 6
-  // 'E' will be handled in default case.
-  JumpTable8bitOffset grade_comment('F' - 'A' + 1);
-  __ Switch(r1, &grade_comment);
-
-  __ Case(&grade_comment, 'A' - 'A');
-  __ Printf("Excellent!!\n");
-  __ Break(&grade_comment);
-
-  __ Case(&grade_comment, 'B' - 'A');
-  __ Printf("Good job!\n");
-  __ Break(&grade_comment);
-
-  __ Case(&grade_comment, 'C' - 'A');
-  __ Printf("You passed\n");
-  __ Break(&grade_comment);
-
-  __ Case(&grade_comment, 'D' - 'A');
-  __ Printf("Could do better\n");
-  __ Break(&grade_comment);
-
-  __ Case(&grade_comment, 'F' - 'A');
-  __ Printf("You failed!\n");
-  __ Break(&grade_comment);
-
-  __ Default(&grade_comment);
-  __ Bind(&invalid_input);
-  __ Printf("Invalid input: %c\n", r0);
-  __ EndSwitch(&grade_comment);
-
-  __ Bx(lr);
-}
-
-#ifndef TEST_EXAMPLES
-int main() {
-  MacroAssembler masm(T32);
-  // Generate the code for the example function.
-  Label entry_point;
-  masm.Bind(&entry_point);
-  GenerateGradeComment(&masm);
-  masm.FinalizeCode();
-#ifdef VIXL_INCLUDE_SIMULATOR_AARCH32
-  // There is no simulator defined for VIXL AArch32.
-  printf("This example cannot be simulated\n");
-#else
-  byte* code = masm.GetBuffer()->GetStartAddress<byte*>();
-  uint32_t code_size = masm.GetSizeOfCodeGenerated();
-  ExecutableMemory memory(code, code_size);
-  // Run the example function.
-  void (*comment_function)(char grade) =
-      memory.GetEntryPoint<void (*)(char)>(entry_point);
-  (*comment_function)('A');
-  (*comment_function)('B');
-  (*comment_function)('F');
-  (*comment_function)('E');
-  (*comment_function)('a');
-  (*comment_function)('G');
-#endif
-  return 0;
-}
-#endif  // TEST_EXAMPLES
diff --git a/examples/aarch64/literal.cc b/examples/aarch64/literal.cc
index 77607c7..f1c5b33 100644
--- a/examples/aarch64/literal.cc
+++ b/examples/aarch64/literal.cc
@@ -42,10 +42,9 @@
   Label start;
   masm.Bind(&start);
   {
-    CodeBufferCheckScope scope(&masm,
-                               kInstructionSize + sizeof(int64_t),
-                               CodeBufferCheckScope::kCheck,
-                               CodeBufferCheckScope::kExactSize);
+    ExactAssemblyScope scope(&masm,
+                             kInstructionSize + sizeof(int64_t),
+                             ExactAssemblyScope::kExactSize);
     Label over_literal;
     __ b(&over_literal);
     __ place(&manually_placed_literal);
diff --git a/src/aarch32/constants-aarch32.h b/src/aarch32/constants-aarch32.h
index c53c24e..1b23502 100644
--- a/src/aarch32/constants-aarch32.h
+++ b/src/aarch32/constants-aarch32.h
@@ -32,6 +32,8 @@
 #include <stdint.h>
 }
 
+#include "globals-vixl.h"
+
 
 namespace vixl {
 namespace aarch32 {
diff --git a/src/aarch32/disasm-aarch32.cc b/src/aarch32/disasm-aarch32.cc
index fe5386c..85c6b4f 100644
--- a/src/aarch32/disasm-aarch32.cc
+++ b/src/aarch32/disasm-aarch32.cc
@@ -8186,10 +8186,9 @@
                       }
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -8239,10 +8238,9 @@
                       revsh(CurrentCond(), Best, Register(rd), Register(rm));
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -8318,10 +8316,9 @@
                               UnimplementedT32_16("SEVL", instr);
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -9481,10 +9478,9 @@
                       }
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -9575,10 +9571,9 @@
                                                                   instr);
                                               break;
                                             }
-                                            default: {
+                                            default:
                                               UnallocatedT32(instr);
                                               break;
-                                            }
                                           }
                                           break;
                                         }
@@ -9587,10 +9582,9 @@
                                           UnimplementedT32_32("DBG", instr);
                                           break;
                                         }
-                                        default: {
+                                        default:
                                           UnallocatedT32(instr);
                                           break;
-                                        }
                                       }
                                       break;
                                     }
@@ -9631,10 +9625,9 @@
                                       UnimplementedT32_32("CPSID", instr);
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
@@ -9684,10 +9677,9 @@
                                       }
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
@@ -9781,10 +9773,9 @@
                                   UnimplementedT32_32("DCPS3", instr);
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -9817,17 +9808,15 @@
                                   }
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -10149,10 +10138,9 @@
                                          MemOperand(Register(rn), Offset));
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -10575,10 +10563,9 @@
                                   }
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -10998,10 +10985,9 @@
                               MemOperand(Register(rn), sign, offset, PreIndex));
                           break;
                         }
-                        default: {
+                        default:
                           UnallocatedT32(instr);
                           break;
-                        }
                       }
                       break;
                     }
@@ -11126,10 +11112,9 @@
                                           PreIndex));
                           break;
                         }
-                        default: {
+                        default:
                           UnallocatedT32(instr);
                           break;
-                        }
                       }
                       break;
                     }
@@ -11837,10 +11822,9 @@
                                                          PostIndex));
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -12442,10 +12426,9 @@
                                                          Offset));
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -13070,10 +13053,9 @@
                                                      PostIndex));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -13676,10 +13658,9 @@
                                                          PostIndex));
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -14273,10 +14254,9 @@
                                                          Offset));
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -14899,10 +14879,9 @@
                                                      PostIndex));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -16355,10 +16334,9 @@
                                   }
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -16968,10 +16946,9 @@
                                       }
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
@@ -17073,10 +17050,9 @@
                                                   PreIndex));
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -17154,10 +17130,9 @@
                                       }
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
@@ -17259,10 +17234,9 @@
                                                   PreIndex));
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -17554,10 +17528,9 @@
                                                      PreIndex));
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
@@ -17604,10 +17577,9 @@
                           }
                           break;
                         }
-                        default: {
+                        default:
                           UnallocatedT32(instr);
                           break;
-                        }
                       }
                       break;
                     }
@@ -17734,10 +17706,9 @@
                                           }
                                           break;
                                         }
-                                        default: {
+                                        default:
                                           UnallocatedT32(instr);
                                           break;
-                                        }
                                       }
                                       break;
                                     }
@@ -17844,10 +17815,9 @@
                                                        PreIndex));
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
@@ -18046,10 +18016,9 @@
                                                        PreIndex));
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
@@ -18082,10 +18051,9 @@
                       }
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -19284,17 +19252,15 @@
                           }
                           break;
                         }
-                        default: {
+                        default:
                           UnallocatedT32(instr);
                           break;
-                        }
                       }
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -19418,10 +19384,9 @@
                       }
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -19708,10 +19673,9 @@
                       }
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -20039,10 +20003,9 @@
                       }
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -20232,10 +20195,9 @@
                       }
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -20478,10 +20440,9 @@
                       }
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -20765,17 +20726,15 @@
                           }
                           break;
                         }
-                        default: {
+                        default:
                           UnallocatedT32(instr);
                           break;
-                        }
                       }
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -21060,17 +21019,15 @@
                           }
                           break;
                         }
-                        default: {
+                        default:
                           UnallocatedT32(instr);
                           break;
-                        }
                       }
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -21461,10 +21418,9 @@
                             Register(rm));
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -21741,10 +21697,9 @@
                               Register(rm));
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -21980,10 +21935,9 @@
                              Register(ra));
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -22305,10 +22259,9 @@
                       }
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -22469,10 +22422,9 @@
                             Register(rm));
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -22537,10 +22489,9 @@
                               Register(rm));
                       break;
                     }
-                    default: {
+                    default:
                       UnallocatedT32(instr);
                       break;
-                    }
                   }
                   break;
                 }
@@ -23041,10 +22992,9 @@
                               }
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -23254,10 +23204,9 @@
                               }
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -24593,10 +24542,9 @@
                               }
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -24884,10 +24832,9 @@
                                   vcvtm(dt, F32, SRegister(rd), SRegister(rm));
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -25014,17 +24961,15 @@
                                   vcvtm(dt, F64, SRegister(rd), DRegister(rm));
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -25168,10 +25113,9 @@
                                   }
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -25238,10 +25182,9 @@
                                   }
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -26105,10 +26048,9 @@
                               UnimplementedT32_32("SHA256SU1", instr);
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -26167,10 +26109,9 @@
                                    DRegister(rm));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -26252,10 +26193,9 @@
                                    QRegister(rm));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -26314,10 +26254,9 @@
                               }
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -26412,10 +26351,9 @@
                               }
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -26474,10 +26412,9 @@
                                     DRegister(rm));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -26534,17 +26471,15 @@
                                    QRegister(rm));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
-                        default: {
+                        default:
                           UnallocatedT32(instr);
                           break;
-                        }
                       }
                       break;
                     }
@@ -26933,10 +26868,9 @@
                                           }
                                           break;
                                         }
-                                        default: {
+                                        default:
                                           UnallocatedT32(instr);
                                           break;
-                                        }
                                       }
                                       break;
                                     }
@@ -27559,10 +27493,9 @@
                                                QRegister(rm));
                                           break;
                                         }
-                                        default: {
+                                        default:
                                           UnallocatedT32(instr);
                                           break;
-                                        }
                                       }
                                       break;
                                     }
@@ -28062,10 +27995,9 @@
                                                                   instr);
                                               break;
                                             }
-                                            default: {
+                                            default:
                                               UnallocatedT32(instr);
                                               break;
-                                            }
                                           }
                                           break;
                                         }
@@ -28133,10 +28065,9 @@
                                                      QRegister(rm));
                                               break;
                                             }
-                                            default: {
+                                            default:
                                               UnallocatedT32(instr);
                                               break;
-                                            }
                                           }
                                           break;
                                         }
@@ -28204,10 +28135,9 @@
                                                      QRegister(rm));
                                               break;
                                             }
-                                            default: {
+                                            default:
                                               UnallocatedT32(instr);
                                               break;
-                                            }
                                           }
                                           break;
                                         }
@@ -28264,10 +28194,9 @@
                                                     DRegister(rm));
                                               break;
                                             }
-                                            default: {
+                                            default:
                                               UnallocatedT32(instr);
                                               break;
-                                            }
                                           }
                                           break;
                                         }
@@ -28334,10 +28263,9 @@
                                                     QRegister(rm));
                                               break;
                                             }
-                                            default: {
+                                            default:
                                               UnallocatedT32(instr);
                                               break;
-                                            }
                                           }
                                           break;
                                         }
@@ -28643,10 +28571,9 @@
                                                QRegister(rm));
                                           break;
                                         }
-                                        default: {
+                                        default:
                                           UnallocatedT32(instr);
                                           break;
-                                        }
                                       }
                                       break;
                                     }
@@ -29971,10 +29898,9 @@
                                            DRegisterLane(rm, lane));
                                   break;
                                 }
-                                default: {
+                                default:
                                   UnallocatedT32(instr);
                                   break;
-                                }
                               }
                               break;
                             }
@@ -30385,10 +30311,9 @@
                                    DRegister(rm));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -30434,10 +30359,9 @@
                                    DRegister(rm));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -30470,10 +30394,9 @@
                                     DRegister(rm));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -30530,10 +30453,9 @@
                                      DRegister(rm));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -31142,10 +31064,9 @@
                                    QRegister(rm));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -31227,10 +31148,9 @@
                                    QRegister(rm));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -31287,10 +31207,9 @@
                                     QRegister(rm));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -31395,17 +31314,15 @@
                                      QRegister(rm));
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
-                        default: {
+                        default:
                           UnallocatedT32(instr);
                           break;
-                        }
                       }
                       break;
                     }
@@ -32311,10 +32228,9 @@
                                             imm);
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
@@ -32455,10 +32371,9 @@
                                             imm);
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
@@ -32599,10 +32514,9 @@
                                             imm);
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
@@ -32743,10 +32657,9 @@
                                             imm);
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
@@ -35413,10 +35326,9 @@
                                                     imm);
                                               break;
                                             }
-                                            default: {
+                                            default:
                                               UnallocatedT32(instr);
                                               break;
-                                            }
                                           }
                                           break;
                                         }
@@ -35460,20 +35372,18 @@
                                       }
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
                               }
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -36417,10 +36327,9 @@
                                                        imm);
                                                   break;
                                                 }
-                                                default: {
+                                                default:
                                                   UnallocatedT32(instr);
                                                   break;
-                                                }
                                               }
                                               break;
                                             }
@@ -36472,10 +36381,9 @@
                                       }
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
@@ -36519,10 +36427,9 @@
                               }
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -37516,20 +37423,18 @@
                                               imm);
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
                               }
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -38576,10 +38481,9 @@
                                                        imm);
                                                   break;
                                                 }
-                                                default: {
+                                                default:
                                                   UnallocatedT32(instr);
                                                   break;
-                                                }
                                               }
                                               break;
                                             }
@@ -38635,10 +38539,9 @@
                                       }
                                       break;
                                     }
-                                    default: {
+                                    default:
                                       UnallocatedT32(instr);
                                       break;
-                                    }
                                   }
                                   break;
                                 }
@@ -38690,10 +38593,9 @@
                               }
                               break;
                             }
-                            default: {
+                            default:
                               UnallocatedT32(instr);
                               break;
-                            }
                           }
                           break;
                         }
@@ -38762,10 +38664,9 @@
                 UnimplementedA32("CPSID", instr);
                 break;
               }
-              default: {
+              default:
                 UnallocatedA32(instr);
                 break;
-              }
             }
             break;
           }
@@ -38778,10 +38679,9 @@
             }
             break;
           }
-          default: {
+          default:
             UnallocatedA32(instr);
             break;
-          }
         }
         break;
       }
@@ -39472,10 +39372,9 @@
                     UnimplementedA32("SHA256SU1", instr);
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -39518,10 +39417,9 @@
                     vabd(al, F32, DRegister(rd), DRegister(rn), DRegister(rm));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -39591,10 +39489,9 @@
                     vabd(al, F32, QRegister(rd), QRegister(rn), QRegister(rm));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -39649,10 +39546,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -39743,10 +39639,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -39789,10 +39684,9 @@
                     vpmin(al, F32, DRegister(rd), DRegister(rn), DRegister(rm));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -39841,17 +39735,15 @@
                     vmin(al, F32, QRegister(rd), QRegister(rn), QRegister(rm));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
-              default: {
+              default:
                 UnallocatedA32(instr);
                 break;
-              }
             }
             break;
           }
@@ -40692,10 +40584,9 @@
                     vfms(al, F32, DRegister(rd), DRegister(rn), DRegister(rm));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -40744,10 +40635,9 @@
                     vfms(al, F32, QRegister(rd), QRegister(rn), QRegister(rm));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -40781,10 +40671,9 @@
                     vmul(al, F32, DRegister(rd), DRegister(rn), DRegister(rm));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -40854,10 +40743,9 @@
                     vmul(al, F32, QRegister(rd), QRegister(rn), QRegister(rm));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -40882,10 +40770,9 @@
                     vacgt(al, F32, DRegister(rd), DRegister(rn), DRegister(rm));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -40934,10 +40821,9 @@
                     vacgt(al, F32, QRegister(rd), QRegister(rn), QRegister(rm));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -40988,10 +40874,9 @@
                     vminnm(F32, DRegister(rd), DRegister(rn), DRegister(rm));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -41090,17 +40975,15 @@
                     vminnm(F32, QRegister(rd), QRegister(rn), QRegister(rm));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
-              default: {
+              default:
                 UnallocatedA32(instr);
                 break;
-              }
             }
             break;
           }
@@ -41427,10 +41310,9 @@
                                 }
                                 break;
                               }
-                              default: {
+                              default:
                                 UnallocatedA32(instr);
                                 break;
-                              }
                             }
                             break;
                           }
@@ -41960,10 +41842,9 @@
                                 vneg(al, dt, QRegister(rd), QRegister(rm));
                                 break;
                               }
-                              default: {
+                              default:
                                 UnallocatedA32(instr);
                                 break;
-                              }
                             }
                             break;
                           }
@@ -42382,10 +42263,9 @@
                                     UnimplementedA32("SHA256SU0", instr);
                                     break;
                                   }
-                                  default: {
+                                  default:
                                     UnallocatedA32(instr);
                                     break;
-                                  }
                                 }
                                 break;
                               }
@@ -42444,10 +42324,9 @@
                                            QRegister(rm));
                                     break;
                                   }
-                                  default: {
+                                  default:
                                     UnallocatedA32(instr);
                                     break;
-                                  }
                                 }
                                 break;
                               }
@@ -42506,10 +42385,9 @@
                                            QRegister(rm));
                                     break;
                                   }
-                                  default: {
+                                  default:
                                     UnallocatedA32(instr);
                                     break;
-                                  }
                                 }
                                 break;
                               }
@@ -42558,10 +42436,9 @@
                                           DRegister(rm));
                                     break;
                                   }
-                                  default: {
+                                  default:
                                     UnallocatedA32(instr);
                                     break;
-                                  }
                                 }
                                 break;
                               }
@@ -42620,10 +42497,9 @@
                                           QRegister(rm));
                                     break;
                                   }
-                                  default: {
+                                  default:
                                     UnallocatedA32(instr);
                                     break;
-                                  }
                                 }
                                 break;
                               }
@@ -42893,10 +42769,9 @@
                                      QRegister(rm));
                                 break;
                               }
-                              default: {
+                              default:
                                 UnallocatedA32(instr);
                                 break;
-                              }
                             }
                             break;
                           }
@@ -44099,10 +43974,9 @@
                                  DRegisterLane(rm, lane));
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -44884,10 +44758,9 @@
                                       imm);
                                 break;
                               }
-                              default: {
+                              default:
                                 UnallocatedA32(instr);
                                 break;
-                              }
                             }
                             break;
                           }
@@ -45020,10 +44893,9 @@
                                       imm);
                                 break;
                               }
-                              default: {
+                              default:
                                 UnallocatedA32(instr);
                                 break;
-                              }
                             }
                             break;
                           }
@@ -45156,10 +45028,9 @@
                                       imm);
                                 break;
                               }
-                              default: {
+                              default:
                                 UnallocatedA32(instr);
                                 break;
-                              }
                             }
                             break;
                           }
@@ -45292,10 +45163,9 @@
                                       imm);
                                 break;
                               }
-                              default: {
+                              default:
                                 UnallocatedA32(instr);
                                 break;
-                              }
                             }
                             break;
                           }
@@ -47405,10 +47275,9 @@
                                               imm);
                                         break;
                                       }
-                                      default: {
+                                      default:
                                         UnallocatedA32(instr);
                                         break;
-                                      }
                                     }
                                     break;
                                   }
@@ -47447,20 +47316,18 @@
                                 }
                                 break;
                               }
-                              default: {
+                              default:
                                 UnallocatedA32(instr);
                                 break;
-                              }
                             }
                             break;
                           }
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -48119,10 +47986,9 @@
                                             vmov(al, dt, DRegister(rd), imm);
                                             break;
                                           }
-                                          default: {
+                                          default:
                                             UnallocatedA32(instr);
                                             break;
-                                          }
                                         }
                                         break;
                                       }
@@ -48162,10 +48028,9 @@
                                 }
                                 break;
                               }
-                              default: {
+                              default:
                                 UnallocatedA32(instr);
                                 break;
-                              }
                             }
                             break;
                           }
@@ -48205,10 +48070,9 @@
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -49071,20 +48935,18 @@
                                         imm);
                                 break;
                               }
-                              default: {
+                              default:
                                 UnallocatedA32(instr);
                                 break;
-                              }
                             }
                             break;
                           }
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -49827,10 +49689,9 @@
                                             vmov(al, dt, QRegister(rd), imm);
                                             break;
                                           }
-                                          default: {
+                                          default:
                                             UnallocatedA32(instr);
                                             break;
-                                          }
                                         }
                                         break;
                                       }
@@ -49874,10 +49735,9 @@
                                 }
                                 break;
                               }
-                              default: {
+                              default:
                                 UnallocatedA32(instr);
                                 break;
-                              }
                             }
                             break;
                           }
@@ -49925,10 +49785,9 @@
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -50522,10 +50381,9 @@
                                                    PostIndex));
                             break;
                           }
-                          default: {
+                          default:
                             UnallocatedA32(instr);
                             break;
-                          }
                         }
                         break;
                       }
@@ -51098,10 +50956,9 @@
                                                    Offset));
                             break;
                           }
-                          default: {
+                          default:
                             UnallocatedA32(instr);
                             break;
-                          }
                         }
                         break;
                       }
@@ -51708,10 +51565,9 @@
                                                PostIndex));
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -52398,10 +52254,9 @@
                 }
                 break;
               }
-              default: {
+              default:
                 UnallocatedA32(instr);
                 break;
-              }
             }
             break;
           }
@@ -52975,10 +52830,9 @@
                                                    PostIndex));
                             break;
                           }
-                          default: {
+                          default:
                             UnallocatedA32(instr);
                             break;
-                          }
                         }
                         break;
                       }
@@ -53543,10 +53397,9 @@
                                                    Offset));
                             break;
                           }
-                          default: {
+                          default:
                             UnallocatedA32(instr);
                             break;
-                          }
                         }
                         break;
                       }
@@ -54151,10 +54004,9 @@
                                                PostIndex));
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -54893,10 +54745,9 @@
                             }
                             break;
                           }
-                          default: {
+                          default:
                             UnallocatedA32(instr);
                             break;
-                          }
                         }
                         break;
                       }
@@ -55440,17 +55291,15 @@
                 }
                 break;
               }
-              default: {
+              default:
                 UnallocatedA32(instr);
                 break;
-              }
             }
             break;
           }
-          default: {
+          default:
             UnallocatedA32(instr);
             break;
-          }
         }
         break;
       }
@@ -55616,10 +55465,9 @@
             }
             break;
           }
-          default: {
+          default:
             UnallocatedA32(instr);
             break;
-          }
         }
         break;
       }
@@ -55666,10 +55514,9 @@
             UnimplementedA32("SRSIB", instr);
             break;
           }
-          default: {
+          default:
             UnallocatedA32(instr);
             break;
-          }
         }
         break;
       }
@@ -56070,10 +55917,9 @@
                         vcvtm(dt, F32, SRegister(rd), SRegister(rm));
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -56180,17 +56026,15 @@
                         vcvtm(dt, F64, SRegister(rd), DRegister(rm));
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -56229,10 +56073,9 @@
             }
             break;
           }
-          default: {
+          default:
             UnallocatedA32(instr);
             break;
-          }
         }
         break;
       }
@@ -57031,10 +56874,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -57129,10 +56971,9 @@
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -57748,10 +57589,9 @@
                         hlt(al, imm);
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -58169,10 +58009,9 @@
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -58296,10 +58135,9 @@
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -58378,10 +58216,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -58501,10 +58338,9 @@
                         hvc(al, imm);
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -58556,10 +58392,9 @@
                         UnimplementedA32("SMC", instr);
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -58750,10 +58585,9 @@
                             }
                             break;
                           }
-                          default: {
+                          default:
                             UnallocatedA32(instr);
                             break;
-                          }
                         }
                         break;
                       }
@@ -58818,17 +58652,15 @@
                             }
                             break;
                           }
-                          default: {
+                          default:
                             UnallocatedA32(instr);
                             break;
-                          }
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -58998,10 +58830,9 @@
                                             PreIndex));
                             break;
                           }
-                          default: {
+                          default:
                             UnallocatedA32(instr);
                             break;
-                          }
                         }
                         break;
                       }
@@ -59065,10 +58896,9 @@
                              MemOperand(Register(rn), sign, offset, PreIndex));
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -60486,10 +60316,9 @@
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -60609,10 +60438,9 @@
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -60963,10 +60791,9 @@
                             }
                             break;
                           }
-                          default: {
+                          default:
                             UnallocatedA32(instr);
                             break;
-                          }
                         }
                         break;
                       }
@@ -61027,17 +60854,15 @@
                             }
                             break;
                           }
-                          default: {
+                          default:
                             UnallocatedA32(instr);
                             break;
-                          }
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -62093,10 +61918,9 @@
                         UnimplementedA32("SEVL", instr);
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -62109,10 +61933,9 @@
                     UnimplementedA32("DBG", instr);
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -63086,17 +62909,15 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
-              default: {
+              default:
                 UnallocatedA32(instr);
                 break;
-              }
             }
             break;
           }
@@ -63241,10 +63062,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -63285,10 +63105,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -63439,10 +63258,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -63562,10 +63380,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -63787,10 +63604,9 @@
                 }
                 break;
               }
-              default: {
+              default:
                 UnallocatedA32(instr);
                 break;
-              }
             }
             break;
           }
@@ -63938,10 +63754,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -63982,10 +63797,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -64139,10 +63953,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -64262,10 +64075,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -64553,10 +64365,9 @@
                 }
                 break;
               }
-              default: {
+              default:
                 UnallocatedA32(instr);
                 break;
-              }
             }
             break;
           }
@@ -64666,10 +64477,9 @@
                 sbfx(condition, Register(rd), Register(rn), lsb, width);
                 break;
               }
-              default: {
+              default:
                 UnallocatedA32(instr);
                 break;
-              }
             }
             break;
           }
@@ -64806,10 +64616,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -64877,10 +64686,9 @@
                     }
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -64925,10 +64733,9 @@
                           Register(ra));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -64973,10 +64780,9 @@
                            Register(ra));
                     break;
                   }
-                  default: {
+                  default:
                     UnallocatedA32(instr);
                     break;
-                  }
                 }
                 break;
               }
@@ -65017,10 +64823,9 @@
                 }
                 break;
               }
-              default: {
+              default:
                 UnallocatedA32(instr);
                 break;
-              }
             }
             break;
           }
@@ -65120,10 +64925,9 @@
                 }
                 break;
               }
-              default: {
+              default:
                 UnallocatedA32(instr);
                 break;
-              }
             }
             break;
           }
@@ -65928,10 +65732,9 @@
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -66169,10 +65972,9 @@
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -67613,10 +67415,9 @@
                         }
                         break;
                       }
-                      default: {
+                      default:
                         UnallocatedA32(instr);
                         break;
-                      }
                     }
                     break;
                   }
@@ -67780,10 +67581,9 @@
                                 }
                                 break;
                               }
-                              default: {
+                              default:
                                 UnallocatedA32(instr);
                                 break;
-                              }
                             }
                             break;
                           }
@@ -67858,10 +67658,9 @@
                                 }
                                 break;
                               }
-                              default: {
+                              default:
                                 UnallocatedA32(instr);
                                 break;
-                              }
                             }
                             break;
                           }
diff --git a/src/aarch32/instructions-aarch32.h b/src/aarch32/instructions-aarch32.h
index 18292a8..7c2fc44 100644
--- a/src/aarch32/instructions-aarch32.h
+++ b/src/aarch32/instructions-aarch32.h
@@ -285,11 +285,13 @@
   DataTypeValue value_;
 
  public:
-  DataType(DataTypeValue value) : value_(value) {}  // NOLINT(runtime/explicit)
-  DataType(uint32_t size)                           // NOLINT(runtime/explicit)
+  explicit DataType(uint32_t size)
       : value_(static_cast<DataTypeValue>(kDataTypeUntyped | size)) {
     VIXL_ASSERT((size == 8) || (size == 16) || (size == 32) || (size == 64));
   }
+  // Users should be able to use "S8", "S6" and so forth to instantiate this
+  // class.
+  DataType(DataTypeValue value) : value_(value) {}  // NOLINT(runtime/explicit)
   DataTypeValue GetValue() const { return value_; }
   DataTypeType GetType() const {
     return static_cast<DataTypeType>(value_ & kDataTypeTypeMask);
@@ -1002,6 +1004,8 @@
   explicit Condition(uint32_t condition) : condition_(condition) {
     VIXL_ASSERT(condition <= kNone);
   }
+  // Users should be able to use "eq", "ne" and so forth to instantiate this
+  // class.
   Condition(ConditionType condition)  // NOLINT(runtime/explicit)
       : condition_(condition) {}
   uint32_t GetCondition() const { return condition_ & kMask; }
diff --git a/src/aarch32/macro-assembler-aarch32.cc b/src/aarch32/macro-assembler-aarch32.cc
index 1e7a6b5..d7492f8 100644
--- a/src/aarch32/macro-assembler-aarch32.cc
+++ b/src/aarch32/macro-assembler-aarch32.cc
@@ -302,6 +302,7 @@
 
 
 void VeneerPoolManager::EmitLabel(Label* label, Label::Offset emitted_target) {
+  VIXL_ASSERT(!IsBlocked());
   // Define the veneer.
   Label veneer;
   masm_->Bind(&veneer);
@@ -419,7 +420,7 @@
       generate_veneers = true;
     }
   }
-  if (generate_veneers) {
+  if (!IsVeneerPoolBlocked() && generate_veneers) {
     {
       ExactAssemblyScopeWithoutPoolsCheck
           guard(this,
@@ -433,7 +434,8 @@
   // Check if the macro-assembler's internal literal pool should be emitted
   // to avoid any overflow. If we already generated the veneers, we can
   // emit the pool (the branch is already done).
-  if ((target > literal_target) || (option == kNoBranchRequired)) {
+  if (!IsLiteralPoolBlocked() &&
+      ((target > literal_target) || (option == kNoBranchRequired))) {
     EmitLiteralPool(option);
   }
   BindHelper(&after_pools);
@@ -458,6 +460,7 @@
 
 void MacroAssembler::EmitLiteralPool(LiteralPool* const literal_pool,
                                      EmitOption option) {
+  VIXL_ASSERT(!IsLiteralPoolBlocked());
   if (literal_pool->GetSize() > 0) {
 #ifdef VIXL_DEBUG
     for (LiteralPool::RawLiteralListIterator literal_it =
@@ -494,148 +497,6 @@
 }
 
 
-void MacroAssembler::Switch(Register reg, JumpTableBase* table) {
-  // 32-bit table A32:
-  // adr ip, table
-  // add ip, r1, lsl 2
-  // ldr ip, [ip]
-  // jmp: add pc, pc, ip, lsl 2
-  // table:
-  // .int (case_0 - (jmp + 8)) >> 2
-  // .int (case_1 - (jmp + 8)) >> 2
-  // .int (case_2 - (jmp + 8)) >> 2
-
-  // 16-bit table T32:
-  // adr ip, table
-  // jmp: tbh ip, r1
-  // table:
-  // .short (case_0 - (jmp + 4)) >> 1
-  // .short (case_1 - (jmp + 4)) >> 1
-  // .short (case_2 - (jmp + 4)) >> 1
-  // case_0:
-  //   ...
-  //   b end_switch
-  // case_1:
-  //   ...
-  //   b end_switch
-  // ...
-  // end_switch:
-  Label jump_table;
-  UseScratchRegisterScope temps(this);
-  Register scratch = temps.Acquire();
-  int table_size = AlignUp(table->GetTableSizeInBytes(), 4);
-
-  // Jump to default if reg is not in [0, table->GetLength()[
-  Cmp(reg, table->GetLength());
-  B(ge, table->GetDefaultLabel());
-
-  Adr(scratch, &jump_table);
-  if (IsUsingA32()) {
-    Add(scratch, scratch, Operand(reg, LSL, table->GetOffsetShift()));
-    switch (table->GetOffsetShift()) {
-      case 0:
-        Ldrb(scratch, MemOperand(scratch));
-        break;
-      case 1:
-        Ldrh(scratch, MemOperand(scratch));
-        break;
-      case 2:
-        Ldr(scratch, MemOperand(scratch));
-        break;
-      default:
-        VIXL_ABORT_WITH_MSG("Unsupported jump table size.\n");
-    }
-    // Emit whatever needs to be emitted if we want to
-    // correctly record the position of the branch instruction
-    uint32_t branch_location = GetCursorOffset();
-    table->SetBranchLocation(branch_location + GetArchitectureStatePCOffset());
-    ExactAssemblyScope scope(this,
-                             table_size + kA32InstructionSizeInBytes,
-                             ExactAssemblyScope::kMaximumSize);
-    add(pc, pc, Operand(scratch, LSL, 2));
-    VIXL_ASSERT((GetCursorOffset() - branch_location) == 4);
-    bind(&jump_table);
-    GenerateSwitchTable(table, table_size);
-  } else {
-    // Thumb mode - We have tbb and tbh to do this for 8 or 16bit offsets.
-    //  But for 32bit offsets, we use the same coding as for A32
-    if (table->GetOffsetShift() == 2) {
-      // 32bit offsets
-      Add(scratch, scratch, Operand(reg, LSL, 2));
-      Ldr(scratch, MemOperand(scratch));
-      // Cannot use add pc, pc, r lsl 1 as this is unpredictable in T32,
-      // so let's do the shift before
-      Lsl(scratch, scratch, 1);
-      // Emit whatever needs to be emitted if we want to
-      // correctly record the position of the branch instruction
-      uint32_t branch_location = GetCursorOffset();
-      table->SetBranchLocation(branch_location +
-                               GetArchitectureStatePCOffset());
-      ExactAssemblyScope scope(this,
-                               table_size + kMaxInstructionSizeInBytes,
-                               ExactAssemblyScope::kMaximumSize);
-      add(pc, pc, scratch);
-      // add pc, pc, rm fits in 16bit T2 (except for rm = sp)
-      VIXL_ASSERT((GetCursorOffset() - branch_location) == 2);
-      bind(&jump_table);
-      GenerateSwitchTable(table, table_size);
-    } else {
-      VIXL_ASSERT((table->GetOffsetShift() == 0) ||
-                  (table->GetOffsetShift() == 1));
-      // Emit whatever needs to be emitted if we want to
-      // correctly record the position of the branch instruction
-      uint32_t branch_location = GetCursorOffset();
-      table->SetBranchLocation(branch_location +
-                               GetArchitectureStatePCOffset());
-      ExactAssemblyScope scope(this,
-                               table_size + kMaxInstructionSizeInBytes,
-                               ExactAssemblyScope::kMaximumSize);
-      if (table->GetOffsetShift() == 0) {
-        // 8bit offsets
-        tbb(scratch, reg);
-      } else {
-        // 16bit offsets
-        tbh(scratch, reg);
-      }
-      // tbb/tbh is a 32bit instruction
-      VIXL_ASSERT((GetCursorOffset() - branch_location) == 4);
-      bind(&jump_table);
-      GenerateSwitchTable(table, table_size);
-    }
-  }
-}
-
-
-void MacroAssembler::GenerateSwitchTable(JumpTableBase* table, int table_size) {
-  table->BindTable(GetCursorOffset());
-  for (int i = 0; i < table_size / 4; i++) {
-    GetBuffer()->Emit32(0);
-  }
-}
-
-
-// switch/case/default : case
-// case_index is assumed to be < table->GetLength()
-// which is checked in JumpTable::Link and Table::SetPresenceBit
-void MacroAssembler::Case(JumpTableBase* table, int case_index) {
-  table->Link(this, case_index, GetCursorOffset());
-  table->SetPresenceBitForCase(case_index);
-}
-
-// switch/case/default : default
-void MacroAssembler::Default(JumpTableBase* table) {
-  Bind(table->GetDefaultLabel());
-}
-
-// switch/case/default : break
-void MacroAssembler::Break(JumpTableBase* table) { B(table->GetEndLabel()); }
-
-// switch/case/default : finalize
-// Manage the default path, mosstly. All empty offsets in the jumptable
-// will point to default.
-// All values not in [0, table->GetLength()[ are already pointing here anyway.
-void MacroAssembler::EndSwitch(JumpTableBase* table) { table->Finalize(this); }
-
 void MacroAssembler::HandleOutOfBoundsImmediate(Condition cond,
                                                 Register tmp,
                                                 uint32_t imm) {
diff --git a/src/aarch32/macro-assembler-aarch32.h b/src/aarch32/macro-assembler-aarch32.h
index 706b5a5..2bdf809 100644
--- a/src/aarch32/macro-assembler-aarch32.h
+++ b/src/aarch32/macro-assembler-aarch32.h
@@ -39,7 +39,6 @@
 namespace vixl {
 namespace aarch32 {
 
-class JumpTableBase;
 class UseScratchRegisterScope;
 
 enum FlagsUpdate { LeaveFlags = 0, SetFlags = 1, DontCare = 2 };
@@ -124,19 +123,8 @@
     return this;
   }
 
-  virtual void BlockPools() VIXL_OVERRIDE {
-    literal_pool_manager_.Block();
-    veneer_pool_manager_.Block();
-  }
-  virtual void ReleasePools() VIXL_OVERRIDE {
-    literal_pool_manager_.Release();
-    veneer_pool_manager_.Release();
-  }
-  virtual void EnsureEmitPoolsFor(size_t size) VIXL_OVERRIDE {
-    // TODO: Optimise this. It also checks that there is space in the buffer,
-    // which we do not need to do here.
-    VIXL_ASSERT(IsUint32(size));
-    EnsureEmitFor(static_cast<uint32_t>(size));
+  virtual bool ArePoolsBlocked() const VIXL_OVERRIDE {
+    return IsLiteralPoolBlocked() && IsVeneerPoolBlocked();
   }
 
  private:
@@ -414,6 +402,37 @@
   void PerformEnsureEmit(Label::Offset target, uint32_t extra_size);
 
  protected:
+  virtual void BlockPools() VIXL_OVERRIDE {
+    BlockLiteralPool();
+    BlockVeneerPool();
+  }
+  virtual void ReleasePools() VIXL_OVERRIDE {
+    ReleaseLiteralPool();
+    ReleaseVeneerPool();
+  }
+  virtual void EnsureEmitPoolsFor(size_t size) VIXL_OVERRIDE {
+    // TODO: Optimise this. It also checks that there is space in the buffer,
+    // which we do not need to do here.
+    VIXL_ASSERT(IsUint32(size));
+    EnsureEmitFor(static_cast<uint32_t>(size));
+  }
+
+  // Tell whether any of the macro instruction can be used. When false the
+  // MacroAssembler will assert if a method which can emit a variable number
+  // of instructions is called.
+  virtual void SetAllowMacroInstructions(bool value) VIXL_OVERRIDE {
+    allow_macro_instructions_ = value;
+  }
+
+  void BlockLiteralPool() { literal_pool_manager_.Block(); }
+  void ReleaseLiteralPool() { literal_pool_manager_.Release(); }
+  bool IsLiteralPoolBlocked() const {
+    return literal_pool_manager_.IsBlocked();
+  }
+  void BlockVeneerPool() { veneer_pool_manager_.Block(); }
+  void ReleaseVeneerPool() { veneer_pool_manager_.Release(); }
+  bool IsVeneerPoolBlocked() const { return veneer_pool_manager_.IsBlocked(); }
+
   void HandleOutOfBoundsImmediate(Condition cond, Register tmp, uint32_t imm);
   void PadToMinimumBranchRange(Label* label);
 
@@ -435,7 +454,8 @@
       ITScope it_scope(this, &c);
       instr_callback.emit(this, c, literal);
     }
-    if (!literal->IsManuallyPlaced() && !literal->IsBound()) {
+    if (!literal->IsManuallyPlaced() && !literal->IsBound() &&
+        !IsLiteralPoolBlocked()) {
       if (WasInsertedTooFar(literal)) {
         // The instruction's data is too far: revert the emission
         GetBuffer()->Rewind(cursor);
@@ -500,12 +520,6 @@
 
   bool GenerateSimulatorCode() const { return generate_simulator_code_; }
 
-  // Tell whether any of the macro instruction can be used. When false the
-  // MacroAssembler will assert if a method which can emit a variable number
-  // of instructions is called.
-  virtual void SetAllowMacroInstructions(bool value) VIXL_OVERRIDE {
-    allow_macro_instructions_ = value;
-  }
   virtual bool AllowMacroInstructions() const VIXL_OVERRIDE {
     return allow_macro_instructions_;
   }
@@ -720,7 +734,7 @@
   // delete'd.
   void EmitLiteralPool(LiteralPool* const literal_pool, EmitOption option);
   void EmitLiteralPool(EmitOption option = kBranchRequired) {
-    VIXL_ASSERT(!literal_pool_manager_.IsBlocked());
+    VIXL_ASSERT(!IsLiteralPoolBlocked());
     EmitLiteralPool(literal_pool_manager_.GetLiteralPool(), option);
     literal_pool_manager_.ResetCheckpoint();
     ComputeCheckpoint();
@@ -892,13 +906,6 @@
   void Vmov(Condition cond, SRegister rt, float v) { Vmov(cond, F32, rt, v); }
   void Vmov(SRegister rt, float v) { Vmov(al, F32, rt, v); }
 
-  void Switch(Register reg, JumpTableBase* table);
-  void GenerateSwitchTable(JumpTableBase* table, int table_size);
-  void Case(JumpTableBase* table, int case_index);
-  void Break(JumpTableBase* table);
-  void Default(JumpTableBase* table);
-  void EndSwitch(JumpTableBase* table);
-
   // Claim memory on the stack.
   // Note that the Claim, Drop, and Peek helpers below ensure that offsets used
   // are multiples of 32 bits to help maintain 32-bit SP alignment.
@@ -1232,16 +1239,6 @@
     Adds(al, rd, rn, operand);
   }
 
-  void Adr(Condition cond, Register rd, Label* label) {
-    VIXL_ASSERT(!AliasesAvailableScratchRegister(rd));
-    VIXL_ASSERT(allow_macro_instructions_);
-    VIXL_ASSERT(OutsideITBlock());
-    MacroEmissionCheckScope guard(this);
-    ITScope it_scope(this, &cond);
-    adr(cond, rd, label);
-  }
-  void Adr(Register rd, Label* label) { Adr(al, rd, label); }
-
   void And(Condition cond, Register rd, Register rn, const Operand& operand) {
     VIXL_ASSERT(!AliasesAvailableScratchRegister(rd));
     VIXL_ASSERT(!AliasesAvailableScratchRegister(rn));
@@ -2150,15 +2147,6 @@
   }
   void Ldr(Register rt, const MemOperand& operand) { Ldr(al, rt, operand); }
 
-  void Ldr(Condition cond, Register rt, Label* label) {
-    VIXL_ASSERT(!AliasesAvailableScratchRegister(rt));
-    VIXL_ASSERT(allow_macro_instructions_);
-    VIXL_ASSERT(OutsideITBlock());
-    MacroEmissionCheckScope guard(this);
-    ITScope it_scope(this, &cond);
-    ldr(cond, rt, label);
-  }
-  void Ldr(Register rt, Label* label) { Ldr(al, rt, label); }
 
   void Ldrb(Condition cond, Register rt, const MemOperand& operand) {
     VIXL_ASSERT(!AliasesAvailableScratchRegister(rt));
@@ -2182,15 +2170,6 @@
   }
   void Ldrb(Register rt, const MemOperand& operand) { Ldrb(al, rt, operand); }
 
-  void Ldrb(Condition cond, Register rt, Label* label) {
-    VIXL_ASSERT(!AliasesAvailableScratchRegister(rt));
-    VIXL_ASSERT(allow_macro_instructions_);
-    VIXL_ASSERT(OutsideITBlock());
-    MacroEmissionCheckScope guard(this);
-    ITScope it_scope(this, &cond);
-    ldrb(cond, rt, label);
-  }
-  void Ldrb(Register rt, Label* label) { Ldrb(al, rt, label); }
 
   void Ldrd(Condition cond,
             Register rt,
@@ -2209,18 +2188,6 @@
     Ldrd(al, rt, rt2, operand);
   }
 
-  void Ldrd(Condition cond, Register rt, Register rt2, Label* label) {
-    VIXL_ASSERT(!AliasesAvailableScratchRegister(rt));
-    VIXL_ASSERT(!AliasesAvailableScratchRegister(rt2));
-    VIXL_ASSERT(allow_macro_instructions_);
-    VIXL_ASSERT(OutsideITBlock());
-    MacroEmissionCheckScope guard(this);
-    ITScope it_scope(this, &cond);
-    ldrd(cond, rt, rt2, label);
-  }
-  void Ldrd(Register rt, Register rt2, Label* label) {
-    Ldrd(al, rt, rt2, label);
-  }
 
   void Ldrex(Condition cond, Register rt, const MemOperand& operand) {
     VIXL_ASSERT(!AliasesAvailableScratchRegister(rt));
@@ -2298,15 +2265,6 @@
   }
   void Ldrh(Register rt, const MemOperand& operand) { Ldrh(al, rt, operand); }
 
-  void Ldrh(Condition cond, Register rt, Label* label) {
-    VIXL_ASSERT(!AliasesAvailableScratchRegister(rt));
-    VIXL_ASSERT(allow_macro_instructions_);
-    VIXL_ASSERT(OutsideITBlock());
-    MacroEmissionCheckScope guard(this);
-    ITScope it_scope(this, &cond);
-    ldrh(cond, rt, label);
-  }
-  void Ldrh(Register rt, Label* label) { Ldrh(al, rt, label); }
 
   void Ldrsb(Condition cond, Register rt, const MemOperand& operand) {
     VIXL_ASSERT(!AliasesAvailableScratchRegister(rt));
@@ -2325,15 +2283,6 @@
   }
   void Ldrsb(Register rt, const MemOperand& operand) { Ldrsb(al, rt, operand); }
 
-  void Ldrsb(Condition cond, Register rt, Label* label) {
-    VIXL_ASSERT(!AliasesAvailableScratchRegister(rt));
-    VIXL_ASSERT(allow_macro_instructions_);
-    VIXL_ASSERT(OutsideITBlock());
-    MacroEmissionCheckScope guard(this);
-    ITScope it_scope(this, &cond);
-    ldrsb(cond, rt, label);
-  }
-  void Ldrsb(Register rt, Label* label) { Ldrsb(al, rt, label); }
 
   void Ldrsh(Condition cond, Register rt, const MemOperand& operand) {
     VIXL_ASSERT(!AliasesAvailableScratchRegister(rt));
@@ -2352,15 +2301,6 @@
   }
   void Ldrsh(Register rt, const MemOperand& operand) { Ldrsh(al, rt, operand); }
 
-  void Ldrsh(Condition cond, Register rt, Label* label) {
-    VIXL_ASSERT(!AliasesAvailableScratchRegister(rt));
-    VIXL_ASSERT(allow_macro_instructions_);
-    VIXL_ASSERT(OutsideITBlock());
-    MacroEmissionCheckScope guard(this);
-    ITScope it_scope(this, &cond);
-    ldrsh(cond, rt, label);
-  }
-  void Ldrsh(Register rt, Label* label) { Ldrsh(al, rt, label); }
 
   void Lsl(Condition cond, Register rd, Register rm, const Operand& operand) {
     VIXL_ASSERT(!AliasesAvailableScratchRegister(rd));
@@ -7483,21 +7423,6 @@
     Vldmia(al, kDataTypeValueNone, rn, write_back, sreglist);
   }
 
-  void Vldr(Condition cond, DataType dt, DRegister rd, Label* label) {
-    VIXL_ASSERT(!AliasesAvailableScratchRegister(rd));
-    VIXL_ASSERT(allow_macro_instructions_);
-    VIXL_ASSERT(OutsideITBlock());
-    MacroEmissionCheckScope guard(this);
-    ITScope it_scope(this, &cond);
-    vldr(cond, dt, rd, label);
-  }
-  void Vldr(DataType dt, DRegister rd, Label* label) {
-    Vldr(al, dt, rd, label);
-  }
-  void Vldr(Condition cond, DRegister rd, Label* label) {
-    Vldr(cond, Untyped64, rd, label);
-  }
-  void Vldr(DRegister rd, Label* label) { Vldr(al, Untyped64, rd, label); }
 
   void Vldr(Condition cond,
             DataType dt,
@@ -7521,21 +7446,6 @@
     Vldr(al, Untyped64, rd, operand);
   }
 
-  void Vldr(Condition cond, DataType dt, SRegister rd, Label* label) {
-    VIXL_ASSERT(!AliasesAvailableScratchRegister(rd));
-    VIXL_ASSERT(allow_macro_instructions_);
-    VIXL_ASSERT(OutsideITBlock());
-    MacroEmissionCheckScope guard(this);
-    ITScope it_scope(this, &cond);
-    vldr(cond, dt, rd, label);
-  }
-  void Vldr(DataType dt, SRegister rd, Label* label) {
-    Vldr(al, dt, rd, label);
-  }
-  void Vldr(Condition cond, SRegister rd, Label* label) {
-    Vldr(cond, Untyped32, rd, label);
-  }
-  void Vldr(SRegister rd, Label* label) { Vldr(al, Untyped32, rd, label); }
 
   void Vldr(Condition cond,
             DataType dt,
@@ -11084,111 +10994,6 @@
   }
 };
 
-class JumpTableBase {
- protected:
-  JumpTableBase(int len, int offset_size)
-      : table_location_(Label::kMaxOffset),
-        branch_location_(Label::kMaxOffset),
-        length_(len),
-        offset_shift_(WhichPowerOf2(offset_size)),
-        presence_(length_) {
-    VIXL_ASSERT((length_ >= 0) && (offset_size <= 4));
-  }
-  virtual ~JumpTableBase() {}
-
- public:
-  int GetTableSizeInBytes() const { return length_ * (1 << offset_shift_); }
-  int GetOffsetShift() const { return offset_shift_; }
-  int GetLength() const { return length_; }
-  Label* GetDefaultLabel() { return &default_; }
-  Label* GetEndLabel() { return &end_; }
-  void SetBranchLocation(uint32_t branch_location) {
-    branch_location_ = branch_location;
-  }
-  uint32_t GetBranchLocation() const { return branch_location_; }
-  void BindTable(uint32_t location) { table_location_ = location; }
-  virtual void Link(MacroAssembler* masm,
-                    int case_index,
-                    uint32_t location) = 0;
-
-  uint32_t GetLocationForCase(int i) {
-    VIXL_ASSERT((i >= 0) && (i < length_));
-    return table_location_ + (i * (1 << offset_shift_));
-  }
-  void SetPresenceBitForCase(int i) {
-    VIXL_ASSERT((i >= 0) && (i < length_));
-    presence_.Set(i);
-  }
-
-  void Finalize(MacroAssembler* masm) {
-    if (!default_.IsBound()) {
-      masm->Bind(&default_);
-    }
-    masm->Bind(&end_);
-
-    presence_.ForEachBitNotSet(LinkIt(this, masm, default_.GetLocation()));
-  }
-
- private:
-  uint32_t table_location_;
-  uint32_t branch_location_;
-  const int length_;
-  const int offset_shift_;
-  BitField presence_;
-  Label default_;
-  Label end_;
-  struct LinkIt {
-    JumpTableBase* table_;
-    MacroAssembler* const masm_;
-    const uint32_t location_;
-    LinkIt(JumpTableBase* table, MacroAssembler* const masm, uint32_t location)
-        : table_(table), masm_(masm), location_(location) {}
-    bool execute(int id) const {
-      VIXL_ASSERT(id < table_->GetLength());
-      table_->Link(masm_, static_cast<int>(id), location_);
-      return true;
-    }
-  };
-};
-
-// JumpTable<T>(len): Helper to describe a jump table
-// len here describes the number of possible case. Values in [0, n[ can have a
-// jump offset. Any other value will assert.
-template <typename T>
-class JumpTable : public JumpTableBase {
- protected:
-  explicit JumpTable(int length) : JumpTableBase(length, sizeof(T)) {}
-
- public:
-  virtual void Link(MacroAssembler* masm,
-                    int case_index,
-                    uint32_t location) VIXL_OVERRIDE {
-    uint32_t position_in_table = GetLocationForCase(case_index);
-    uint32_t from = GetBranchLocation();
-    int offset = location - from;
-    T* case_offset = masm->GetBuffer()->GetOffsetAddress<T*>(position_in_table);
-    if (masm->IsUsingT32()) {
-      *case_offset = offset >> 1;
-    } else {
-      *case_offset = offset >> 2;
-    }
-  }
-};
-
-class JumpTable8bitOffset : public JumpTable<uint8_t> {
- public:
-  explicit JumpTable8bitOffset(int length) : JumpTable<uint8_t>(length) {}
-};
-
-class JumpTable16bitOffset : public JumpTable<uint16_t> {
- public:
-  explicit JumpTable16bitOffset(int length) : JumpTable<uint16_t>(length) {}
-};
-
-class JumpTable32bitOffset : public JumpTable<uint32_t> {
- public:
-  explicit JumpTable32bitOffset(int length) : JumpTable<uint32_t>(length) {}
-};
 
 }  // namespace aarch32
 }  // namespace vixl
diff --git a/src/aarch64/assembler-aarch64.h b/src/aarch64/assembler-aarch64.h
index ab07d7a..4817eef 100644
--- a/src/aarch64/assembler-aarch64.h
+++ b/src/aarch64/assembler-aarch64.h
@@ -400,7 +400,7 @@
 
 
 // Assembler.
-class Assembler : public internal::AssemblerBase {
+class Assembler : public vixl::internal::AssemblerBase {
  public:
   explicit Assembler(
       PositionIndependentCodeOption pic = PositionIndependentCode)
@@ -3081,8 +3081,8 @@
            (GetPic() == PositionDependentCode);
   }
 
-  static const Register& AppropriateZeroRegFor(const CPURegister& reg) {
-    return reg.Is64Bits() ? xzr : wzr;
+  static Register AppropriateZeroRegFor(const CPURegister& reg) {
+    return reg.Is64Bits() ? Register(xzr) : Register(wzr);
   }
 
  protected:
diff --git a/src/aarch64/macro-assembler-aarch64.h b/src/aarch64/macro-assembler-aarch64.h
index 6c626c7..eec1ae8 100644
--- a/src/aarch64/macro-assembler-aarch64.h
+++ b/src/aarch64/macro-assembler-aarch64.h
@@ -576,7 +576,7 @@
                  PositionIndependentCodeOption pic = PositionIndependentCode);
   ~MacroAssembler();
 
-  virtual internal::AssemblerBase* AsAssemblerBase() VIXL_OVERRIDE {
+  virtual vixl::internal::AssemblerBase* AsAssemblerBase() VIXL_OVERRIDE {
     return this;
   }
 
@@ -1304,7 +1304,7 @@
     SingleEmissionCheckScope guard(this);
     fminnm(vd, vn, vm);
   }
-  void Fmov(VRegister vd, VRegister vn) {
+  void Fmov(const VRegister& vd, const VRegister& vn) {
     VIXL_ASSERT(allow_macro_instructions_);
     SingleEmissionCheckScope guard(this);
     // Only emit an instruction if vd and vn are different, and they are both D
@@ -1315,12 +1315,18 @@
       fmov(vd, vn);
     }
   }
-  void Fmov(VRegister vd, Register rn) {
+  void Fmov(const VRegister& vd, const Register& rn) {
     VIXL_ASSERT(allow_macro_instructions_);
     VIXL_ASSERT(!rn.IsZero());
     SingleEmissionCheckScope guard(this);
     fmov(vd, rn);
   }
+  void Fmov(const VRegister& vd, const XRegister& xn) {
+    Fmov(vd, Register(xn));
+  }
+  void Fmov(const VRegister& vd, const WRegister& wn) {
+    Fmov(vd, Register(wn));
+  }
   void Fmov(const VRegister& vd, int index, const Register& rn) {
     VIXL_ASSERT(allow_macro_instructions_);
     SingleEmissionCheckScope guard(this);
@@ -2833,37 +2839,20 @@
   // one instruction. Refer to the implementation for details.
   void BumpSystemStackPointer(const Operand& space);
 
-  virtual void SetAllowMacroInstructions(bool value) VIXL_OVERRIDE {
-    allow_macro_instructions_ = value;
-  }
-
   virtual bool AllowMacroInstructions() const VIXL_OVERRIDE {
     return allow_macro_instructions_;
   }
 
+  virtual bool ArePoolsBlocked() const VIXL_OVERRIDE {
+    return IsLiteralPoolBlocked() && IsVeneerPoolBlocked();
+  }
+
   void SetGenerateSimulatorCode(bool value) {
     generate_simulator_code_ = value;
   }
 
   bool GenerateSimulatorCode() const { return generate_simulator_code_; }
 
-  void BlockLiteralPool() { literal_pool_.Block(); }
-  void ReleaseLiteralPool() { literal_pool_.Release(); }
-  bool IsLiteralPoolBlocked() const { return literal_pool_.IsBlocked(); }
-  void BlockVeneerPool() { veneer_pool_.Block(); }
-  void ReleaseVeneerPool() { veneer_pool_.Release(); }
-  bool IsVeneerPoolBlocked() const { return veneer_pool_.IsBlocked(); }
-
-  virtual void BlockPools() VIXL_OVERRIDE {
-    BlockLiteralPool();
-    BlockVeneerPool();
-  }
-
-  virtual void ReleasePools() VIXL_OVERRIDE {
-    ReleaseLiteralPool();
-    ReleaseVeneerPool();
-  }
-
   size_t GetLiteralPoolSize() const { return literal_pool_.GetSize(); }
   VIXL_DEPRECATED("GetLiteralPoolSize", size_t LiteralPoolSize() const) {
     return GetLiteralPoolSize();
@@ -3037,6 +3026,34 @@
 #endif  // #ifdef VIXL_HAS_MACROASSEMBLER_RUNTIME_CALL_SUPPORT
 
  protected:
+  void BlockLiteralPool() { literal_pool_.Block(); }
+  void ReleaseLiteralPool() { literal_pool_.Release(); }
+  bool IsLiteralPoolBlocked() const { return literal_pool_.IsBlocked(); }
+  void BlockVeneerPool() { veneer_pool_.Block(); }
+  void ReleaseVeneerPool() { veneer_pool_.Release(); }
+  bool IsVeneerPoolBlocked() const { return veneer_pool_.IsBlocked(); }
+
+  virtual void BlockPools() VIXL_OVERRIDE {
+    BlockLiteralPool();
+    BlockVeneerPool();
+  }
+
+  virtual void ReleasePools() VIXL_OVERRIDE {
+    ReleaseLiteralPool();
+    ReleaseVeneerPool();
+  }
+
+  // The scopes below need to able to block and release a particular pool.
+  // TODO: Consider removing those scopes or move them to
+  // code-generation-scopes-vixl.h.
+  friend class BlockPoolsScope;
+  friend class BlockLiteralPoolScope;
+  friend class BlockVeneerPoolScope;
+
+  virtual void SetAllowMacroInstructions(bool value) VIXL_OVERRIDE {
+    allow_macro_instructions_ = value;
+  }
+
   // Helper used to query information about code generation and to generate
   // code for `csel`.
   // Here and for the related helpers below:
diff --git a/src/aarch64/operands-aarch64.h b/src/aarch64/operands-aarch64.h
index 90c6f59..dff7379 100644
--- a/src/aarch64/operands-aarch64.h
+++ b/src/aarch64/operands-aarch64.h
@@ -266,6 +266,38 @@
 };
 
 
+namespace internal {
+
+template <int size_in_bits>
+class FixedSizeRegister : public Register {
+ public:
+  FixedSizeRegister() : Register() {}
+  explicit FixedSizeRegister(unsigned code) : Register(code, size_in_bits) {
+    VIXL_ASSERT(IsValidRegister());
+  }
+  explicit FixedSizeRegister(const Register& other)
+      : Register(other.GetCode(), size_in_bits) {
+    VIXL_ASSERT(other.GetSizeInBits() == size_in_bits);
+    VIXL_ASSERT(IsValidRegister());
+  }
+  explicit FixedSizeRegister(const CPURegister& other)
+      : Register(other.GetCode(), other.GetSizeInBits()) {
+    VIXL_ASSERT(other.GetType() == kRegister);
+    VIXL_ASSERT(other.GetSizeInBits() == size_in_bits);
+    VIXL_ASSERT(IsValidRegister());
+  }
+
+  bool IsValid() const {
+    return Register::IsValid() && (GetSizeInBits() == size_in_bits);
+  }
+};
+
+}  // namespace internal
+
+typedef internal::FixedSizeRegister<kXRegSize> XRegister;
+typedef internal::FixedSizeRegister<kWRegSize> WRegister;
+
+
 class VRegister : public CPURegister {
  public:
   VRegister() : CPURegister(), lanes_(1) {}
@@ -409,13 +441,13 @@
 const CPURegister NoCPUReg;
 
 
-#define DEFINE_REGISTERS(N)          \
-  const Register w##N(N, kWRegSize); \
-  const Register x##N(N, kXRegSize);
+#define DEFINE_REGISTERS(N) \
+  const WRegister w##N(N);  \
+  const XRegister x##N(N);
 AARCH64_REGISTER_CODE_LIST(DEFINE_REGISTERS)
 #undef DEFINE_REGISTERS
-const Register wsp(kSPRegInternalCode, kWRegSize);
-const Register sp(kSPRegInternalCode, kXRegSize);
+const WRegister wsp(kSPRegInternalCode);
+const XRegister sp(kSPRegInternalCode);
 
 
 #define DEFINE_VREGISTERS(N)          \
@@ -429,12 +461,12 @@
 #undef DEFINE_VREGISTERS
 
 
-// Registers aliases.
-const Register ip0 = x16;
-const Register ip1 = x17;
-const Register lr = x30;
-const Register xzr = x31;
-const Register wzr = w31;
+// Register aliases.
+const XRegister ip0 = x16;
+const XRegister ip1 = x17;
+const XRegister lr = x30;
+const XRegister xzr = x31;
+const WRegister wzr = w31;
 
 
 // AreAliased returns true if any of the named registers overlap. Arguments
diff --git a/src/assembler-base-vixl.h b/src/assembler-base-vixl.h
index 5b838d8..ee54dcb 100644
--- a/src/assembler-base-vixl.h
+++ b/src/assembler-base-vixl.h
@@ -30,6 +30,9 @@
 #include "code-buffer-vixl.h"
 
 namespace vixl {
+
+class CodeBufferCheckScope;
+
 namespace internal {
 
 class AssemblerBase {
@@ -61,9 +64,13 @@
   CodeBuffer* GetBuffer() { return &buffer_; }
   const CodeBuffer& GetBuffer() const { return buffer_; }
   bool AllowAssembler() const { return allow_assembler_; }
-  void SetAllowAssembler(bool allow) { allow_assembler_ = allow; }
 
  protected:
+  void SetAllowAssembler(bool allow) { allow_assembler_ = allow; }
+
+  // CodeBufferCheckScope must be able to temporarily allow the assembler.
+  friend class vixl::CodeBufferCheckScope;
+
   // Buffer where the code is emitted.
   CodeBuffer buffer_;
 
diff --git a/src/code-generation-scopes-vixl.h b/src/code-generation-scopes-vixl.h
index 7e47d5e..b7ea2d9 100644
--- a/src/code-generation-scopes-vixl.h
+++ b/src/code-generation-scopes-vixl.h
@@ -163,12 +163,21 @@
 
   virtual ~EmissionCheckScope() { Close(); }
 
-  enum PoolPolicy { kIgnorePools, kCheckPools };
+  enum PoolPolicy {
+    // Do not forbid pool emission inside the scope. Pools will not be emitted
+    // on `Open` either.
+    kIgnorePools,
+    // Force pools to be generated on `Open` if necessary and block their
+    // emission inside the scope.
+    kBlockPools,
+    // Deprecated, but kept for backward compatibility.
+    kCheckPools = kBlockPools
+  };
 
   void Open(MacroAssemblerInterface* masm,
             size_t size,
             SizePolicy size_policy = kMaximumSize) {
-    Open(masm, size, size_policy, kCheckPools);
+    Open(masm, size, size_policy, kBlockPools);
   }
 
   void Close() {
@@ -183,7 +192,7 @@
     //   - Check the code generation limit was not exceeded.
     //   - Release the pools.
     CodeBufferCheckScope::Close();
-    if (pool_policy_ == kCheckPools) {
+    if (pool_policy_ == kBlockPools) {
       masm_->ReleasePools();
     }
     VIXL_ASSERT(!initialised_);
@@ -202,7 +211,7 @@
     }
     masm_ = masm;
     pool_policy_ = pool_policy;
-    if (pool_policy_ == kCheckPools) {
+    if (pool_policy_ == kBlockPools) {
       // To avoid duplicating the work to check that enough space is available
       // in the buffer, do not use the more generic `EnsureEmitFor()`. It is
       // done below when opening `CodeBufferCheckScope`.
@@ -241,15 +250,8 @@
   // constructed.
   ExactAssemblyScope(MacroAssemblerInterface* masm,
                      size_t size,
-                     SizePolicy assert_policy = kExactSize)
-      : EmissionCheckScope(masm, size, assert_policy) {
-    VIXL_ASSERT(assert_policy != kNoAssert);
-#ifdef VIXL_DEBUG
-    previous_allow_macro_assembler_ = masm->AllowMacroInstructions();
-    masm->SetAllowMacroInstructions(false);
-#else
-    USE(previous_allow_macro_assembler_);
-#endif
+                     SizePolicy size_policy = kExactSize) {
+    Open(masm, size, size_policy);
   }
 
   // This constructor does not implicitly initialise the scope. Instead, the
@@ -257,10 +259,28 @@
   // scope.
   ExactAssemblyScope() {}
 
-  virtual ~ExactAssemblyScope() {
+  virtual ~ExactAssemblyScope() { Close(); }
+
+  void Open(MacroAssemblerInterface* masm,
+            size_t size,
+            SizePolicy size_policy = kExactSize) {
+    Open(masm, size, size_policy, kBlockPools);
+  }
+
+  void Close() {
+    if (!initialised_) {
+      return;
+    }
+    if (masm_ == NULL) {
+      // Nothing to do.
+      return;
+    }
 #ifdef VIXL_DEBUG
     masm_->SetAllowMacroInstructions(previous_allow_macro_assembler_);
+#else
+    USE(previous_allow_macro_assembler_);
 #endif
+    EmissionCheckScope::Close();
   }
 
  protected:
@@ -270,9 +290,22 @@
   ExactAssemblyScope(MacroAssemblerInterface* masm,
                      size_t size,
                      SizePolicy assert_policy,
-                     PoolPolicy pool_policy)
-      : EmissionCheckScope(masm, size, assert_policy, pool_policy) {
-    VIXL_ASSERT(assert_policy != kNoAssert);
+                     PoolPolicy pool_policy) {
+    Open(masm, size, assert_policy, pool_policy);
+  }
+
+  void Open(MacroAssemblerInterface* masm,
+            size_t size,
+            SizePolicy size_policy,
+            PoolPolicy pool_policy) {
+    VIXL_ASSERT(size_policy != kNoAssert);
+    if (masm == NULL) {
+      // Nothing to do.
+      return;
+    }
+    // Rely on EmissionCheckScope::Open to initialise `masm_` and
+    // `pool_policy_`.
+    EmissionCheckScope::Open(masm, size, size_policy, pool_policy);
 #ifdef VIXL_DEBUG
     previous_allow_macro_assembler_ = masm->AllowMacroInstructions();
     masm->SetAllowMacroInstructions(false);
diff --git a/src/macro-assembler-interface.h b/src/macro-assembler-interface.h
index e1b1cca..0d4d078 100644
--- a/src/macro-assembler-interface.h
+++ b/src/macro-assembler-interface.h
@@ -38,11 +38,19 @@
   virtual ~MacroAssemblerInterface() {}
 
   virtual bool AllowMacroInstructions() const = 0;
+  virtual bool ArePoolsBlocked() const = 0;
+
+ protected:
   virtual void SetAllowMacroInstructions(bool allow) = 0;
 
   virtual void BlockPools() = 0;
   virtual void ReleasePools() = 0;
   virtual void EnsureEmitPoolsFor(size_t size) = 0;
+
+  // The following scopes need access to the above method in order to implement
+  // pool blocking and temporarily disable the macro-assembler.
+  friend class ExactAssemblyScope;
+  friend class EmissionCheckScope;
 };
 
 }  // namespace vixl
diff --git a/test/aarch32/test-assembler-aarch32.cc b/test/aarch32/test-assembler-aarch32.cc
index f344ab5..3eef924 100644
--- a/test/aarch32/test-assembler-aarch32.cc
+++ b/test/aarch32/test-assembler-aarch32.cc
@@ -41,139 +41,133 @@
 #define STRINGIFY(x) #x
 
 #ifdef VIXL_INCLUDE_TARGET_A32_ONLY
-#define TEST_T32(Name)                                            \
-void Test##Name##Impl(InstructionSet isa __attribute__((unused)))
+#define TEST_T32(Name) \
+  void Test##Name##Impl(InstructionSet isa __attribute__((unused)))
 #else
 // Tests declared with this macro will only target T32.
-#define TEST_T32(Name)                                            \
-void Test##Name##Impl(InstructionSet isa);                        \
-void Test##Name() {                                               \
-  Test##Name##Impl(T32);                                          \
-}                                                                 \
-Test test_##Name(STRINGIFY(AARCH32_T32_##Name), &Test##Name);     \
-void Test##Name##Impl(InstructionSet isa __attribute__((unused)))
+#define TEST_T32(Name)                                          \
+  void Test##Name##Impl(InstructionSet isa);                    \
+  void Test##Name() { Test##Name##Impl(T32); }                  \
+  Test test_##Name(STRINGIFY(AARCH32_T32_##Name), &Test##Name); \
+  void Test##Name##Impl(InstructionSet isa __attribute__((unused)))
 #endif
 
 #ifdef VIXL_INCLUDE_TARGET_T32_ONLY
-#define TEST_A32(Name)                                            \
-void Test##Name##Impl(InstructionSet isa __attribute__((unused)))
+#define TEST_A32(Name) \
+  void Test##Name##Impl(InstructionSet isa __attribute__((unused)))
 #else
 // Test declared with this macro will only target A32.
-#define TEST_A32(Name)                                            \
-void Test##Name##Impl(InstructionSet isa);                        \
-void Test##Name() {                                               \
-  Test##Name##Impl(A32);                                          \
-}                                                                 \
-Test test_##Name(STRINGIFY(AARCH32_A32_##Name), &Test##Name);     \
-void Test##Name##Impl(InstructionSet isa __attribute__((unused)))
+#define TEST_A32(Name)                                          \
+  void Test##Name##Impl(InstructionSet isa);                    \
+  void Test##Name() { Test##Name##Impl(A32); }                  \
+  Test test_##Name(STRINGIFY(AARCH32_A32_##Name), &Test##Name); \
+  void Test##Name##Impl(InstructionSet isa __attribute__((unused)))
 #endif
 
 // Tests declared with this macro will be run twice: once targeting A32 and
 // once targeting T32.
 #if defined(VIXL_INCLUDE_TARGET_A32_ONLY)
-#define TEST(Name)  TEST_A32(Name)
+#define TEST(Name) TEST_A32(Name)
 #elif defined(VIXL_INCLUDE_TARGET_T32_ONLY)
-#define TEST(Name)  TEST_T32(Name)
+#define TEST(Name) TEST_T32(Name)
 #else
-#define TEST(Name)                                                \
-void Test##Name##Impl(InstructionSet isa);                        \
-void Test##Name() {                                               \
-  Test##Name##Impl(A32);                                          \
-  printf(" > A32 done\n");                                        \
-  Test##Name##Impl(T32);                                          \
-  printf(" > T32 done\n");                                        \
-}                                                                 \
-Test test_##Name(STRINGIFY(AARCH32_ASM_##Name), &Test##Name);     \
-void Test##Name##Impl(InstructionSet isa __attribute__((unused)))
+#define TEST(Name)                                              \
+  void Test##Name##Impl(InstructionSet isa);                    \
+  void Test##Name() {                                           \
+    Test##Name##Impl(A32);                                      \
+    printf(" > A32 done\n");                                    \
+    Test##Name##Impl(T32);                                      \
+    printf(" > T32 done\n");                                    \
+  }                                                             \
+  Test test_##Name(STRINGIFY(AARCH32_ASM_##Name), &Test##Name); \
+  void Test##Name##Impl(InstructionSet isa __attribute__((unused)))
 #endif
 
 // Tests declared with this macro are not expected to use any provided test
 // helpers such as SETUP, RUN, etc.
-#define TEST_NOASM(Name)                                   \
-void Test##Name();                                         \
-Test test_##Name(STRINGIFY(AARCH32_##Name), &Test##Name);  \
-void Test##Name()
+#define TEST_NOASM(Name)                                    \
+  void Test##Name();                                        \
+  Test test_##Name(STRINGIFY(AARCH32_##Name), &Test##Name); \
+  void Test##Name()
 
 #define __ masm.
 #define BUF_SIZE (4096)
 
-#define ASSERT_LITERAL_POOL_SIZE(size) \
-    do { VIXL_CHECK(__ GetLiteralPoolSize() == size); } while (false)
+#define ASSERT_LITERAL_POOL_SIZE(size)           \
+  do {                                           \
+    VIXL_CHECK(__ GetLiteralPoolSize() == size); \
+  } while (false)
 
 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH32
 // No simulator yet.
 
-#define SETUP()                                             \
-  MacroAssembler masm(BUF_SIZE, isa);                       \
+#define SETUP() MacroAssembler masm(BUF_SIZE, isa);
 
-#define START() \
-  masm.GetBuffer()->Reset();
+#define START() masm.GetBuffer()->Reset();
 
-#define END()                                                                  \
-  __ Hlt(0);                                                                   \
+#define END() \
+  __ Hlt(0);  \
   __ FinalizeCode();
 
-#define RUN()                                                                  \
-  DISASSEMBLE();
+#define RUN() DISASSEMBLE();
 
 #define TEARDOWN()
 
 #else  // ifdef VIXL_INCLUDE_SIMULATOR_AARCH32.
 
-#define SETUP()                                                                \
-  RegisterDump core;                                                           \
-  MacroAssembler masm(BUF_SIZE, isa);                                          \
-  UseScratchRegisterScope harness_scratch(&masm);                              \
+#define SETUP()                                   \
+  RegisterDump core;                              \
+  MacroAssembler masm(BUF_SIZE, isa);             \
+  UseScratchRegisterScope harness_scratch(&masm); \
   harness_scratch.ExcludeAll();
 
-#define START()                                                                \
-  masm.GetBuffer()->Reset();                                                   \
-  __ Push(r4);                                                                 \
-  __ Push(r5);                                                                 \
-  __ Push(r6);                                                                 \
-  __ Push(r7);                                                                 \
-  __ Push(r8);                                                                 \
-  __ Push(r9);                                                                 \
-  __ Push(r10);                                                                \
-  __ Push(r11);                                                                \
-  __ Push(ip);                                                                 \
-  __ Push(lr);                                                                 \
-  __ Mov(r0, 0);                                                               \
-  __ Msr(APSR_nzcvq, r0);                                                      \
+#define START()              \
+  masm.GetBuffer()->Reset(); \
+  __ Push(r4);               \
+  __ Push(r5);               \
+  __ Push(r6);               \
+  __ Push(r7);               \
+  __ Push(r8);               \
+  __ Push(r9);               \
+  __ Push(r10);              \
+  __ Push(r11);              \
+  __ Push(ip);               \
+  __ Push(lr);               \
+  __ Mov(r0, 0);             \
+  __ Msr(APSR_nzcvq, r0);    \
   harness_scratch.Include(ip);
 
-#define END()                                                                  \
-  harness_scratch.Exclude(ip);                                                 \
-  core.Dump(&masm);                                                            \
-  __ Pop(lr);                                                                  \
-  __ Pop(ip);                                                                  \
-  __ Pop(r11);                                                                 \
-  __ Pop(r10);                                                                 \
-  __ Pop(r9);                                                                  \
-  __ Pop(r8);                                                                  \
-  __ Pop(r7);                                                                  \
-  __ Pop(r6);                                                                  \
-  __ Pop(r5);                                                                  \
-  __ Pop(r4);                                                                  \
-  __ Bx(lr);                                                                   \
+#define END()                  \
+  harness_scratch.Exclude(ip); \
+  core.Dump(&masm);            \
+  __ Pop(lr);                  \
+  __ Pop(ip);                  \
+  __ Pop(r11);                 \
+  __ Pop(r10);                 \
+  __ Pop(r9);                  \
+  __ Pop(r8);                  \
+  __ Pop(r7);                  \
+  __ Pop(r6);                  \
+  __ Pop(r5);                  \
+  __ Pop(r4);                  \
+  __ Bx(lr);                   \
   __ FinalizeCode();
 
 // Execute the generated code from the MacroAssembler's automatic code buffer.
 // Note the offset for ExecuteMemory since the PCS requires that
 // the address be odd in the case of branching to T32 code.
-#define RUN()                                                                  \
-  DISASSEMBLE();                                                               \
-  {                                                                            \
-    int pcs_offset = masm.IsUsingT32() ? 1 : 0;                                \
-    masm.GetBuffer()->SetExecutable();                                         \
-    ExecuteMemory(masm.GetBuffer()->GetStartAddress<byte*>(),                  \
-                  masm.GetSizeOfCodeGenerated(),                               \
-                  pcs_offset);                                                 \
-    masm.GetBuffer()->SetWritable();                                           \
+#define RUN()                                                 \
+  DISASSEMBLE();                                              \
+  {                                                           \
+    int pcs_offset = masm.IsUsingT32() ? 1 : 0;               \
+    masm.GetBuffer()->SetExecutable();                        \
+    ExecuteMemory(masm.GetBuffer()->GetStartAddress<byte*>(), \
+                  masm.GetSizeOfCodeGenerated(),              \
+                  pcs_offset);                                \
+    masm.GetBuffer()->SetWritable();                          \
   }
 
-#define TEARDOWN() \
-  harness_scratch.Close();
+#define TEARDOWN() harness_scratch.Close();
 
 #endif  // ifdef VIXL_INCLUDE_SIMULATOR_AARCH32
 
@@ -194,27 +188,27 @@
 
 #else
 
-#define ASSERT_EQUAL_32(expected, result)                                      \
+#define ASSERT_EQUAL_32(expected, result) \
   VIXL_CHECK(Equal32(expected, &core, result))
 
-#define ASSERT_EQUAL_64(expected, result)                                      \
+#define ASSERT_EQUAL_64(expected, result) \
   VIXL_CHECK(Equal64(expected, &core, result))
 
-#define ASSERT_EQUAL_128(expected_h, expected_l, result)                       \
+#define ASSERT_EQUAL_128(expected_h, expected_l, result) \
   VIXL_CHECK(Equal128(expected_h, expected_l, &core, result))
 
-#define ASSERT_EQUAL_FP32(expected, result)                                    \
+#define ASSERT_EQUAL_FP32(expected, result) \
   VIXL_CHECK(EqualFP32(expected, &core, result))
 
-#define ASSERT_EQUAL_FP64(expected, result)                                    \
+#define ASSERT_EQUAL_FP64(expected, result) \
   VIXL_CHECK(EqualFP64(expected, &core, result))
 
-#define ASSERT_EQUAL_NZCV(expected)                                            \
+#define ASSERT_EQUAL_NZCV(expected) \
   VIXL_CHECK(EqualNzcv(expected, core.flags_nzcv()))
 
 #endif
 
-#define DISASSEMBLE() \
+#define DISASSEMBLE()                                                          \
   if (Test::disassemble()) {                                                   \
     PrintDisassembler dis(std::cout, 0);                                       \
     if (masm.IsUsingT32()) {                                                   \
@@ -673,41 +667,67 @@
 }
 
 
-// TODO: fix this test in T32.
-TEST_A32(adr) {
+TEST(adr_in_range) {
   SETUP();
 
   Label label_1, label_2, label_3, label_4;
 
   START();
-  __ Mov(r0, 0x0);
-  __ Adr(r1, &label_3);   // Set to zero to indicate success.
+  {
+    size_t size_of_generated_code;
+    if (masm.IsUsingA32()) {
+      size_of_generated_code = 18 * kA32InstructionSizeInBytes;
+    } else {
+      size_of_generated_code = 18 * k32BitT32InstructionSizeInBytes +
+                               3 * k16BitT32InstructionSizeInBytes;
+    }
+    ExactAssemblyScope scope(&masm,
+                             size_of_generated_code,
+                             ExactAssemblyScope::kExactSize);
 
-  __ Adr(r2, &label_1);   // Multiple forward references to the same label.
-  __ Adr(r3, &label_1);
-  __ Adr(r4, &label_1);
+    __ mov(r0, 0x0);  // Set to zero to indicate success.
+    __ adr(r1, &label_3);
 
-  __ Bind(&label_2);
-  __ Eor(r5, r2, r3);  // Ensure that r2,r3 and r4 are identical.
-  __ Eor(r6, r2, r4);
-  __ Mov(r0, r5);
-  __ Mov(r0, r6);
-  __ Bx(r2);  // label_1, label_3
+    __ adr(r2, &label_1);  // Multiple forward references to the same label.
+    __ adr(r3, &label_1);
+    __ adr(r4, &label_1);
 
-  __ Bind(&label_3);
-  __ Adr(r2, &label_3);   // Self-reference (offset 0).
-  __ Eor(r1, r1, r2);
-  __ Adr(r2, &label_4);   // Simple forward reference.
-  __ Bx(r2);  // label_4
+    __ bind(&label_2);
+    __ eor(r5, r2, r3);  // Ensure that r2, r3 and r4 are identical.
+    __ eor(r6, r2, r4);
+    __ orr(r0, r5, r6);
+    if (masm.IsUsingT32()) {
+      // The jump target needs to have its least significant bit set to indicate
+      // that we are jumping into thumb mode.
+      __ orr(r2, r2, 1);
+    }
+    __ bx(r2);  // label_1, label_3
 
-  __ Bind(&label_1);
-  __ Adr(r2, &label_3);   // Multiple reverse references to the same label.
-  __ Adr(r3, &label_3);
-  __ Adr(r4, &label_3);
-  __ Adr(r5, &label_2);   // Simple reverse reference.
-  __ Bx(r5);  // label_2
+    __ bind(&label_3);
+    __ adr(r2, &label_3);  // Self-reference (offset 0).
+    __ eor(r1, r1, r2);
+    __ adr(r2, &label_4);  // Simple forward reference.
+    if (masm.IsUsingT32()) {
+      // The jump target needs to have its least significant bit set to indicate
+      // that we are jumping into thumb mode.
+      __ orr(r2, r2, 1);
+    }
+    __ bx(r2);  // label_4
 
-  __ Bind(&label_4);
+    __ bind(&label_1);
+    __ adr(r2, &label_3);  // Multiple reverse references to the same label.
+    __ adr(r3, &label_3);
+    __ adr(r4, &label_3);
+    __ adr(r5, &label_2);  // Simple reverse reference.
+    if (masm.IsUsingT32()) {
+      // The jump target needs to have its least significant bit set to indicate
+      // that we are jumping into thumb mode.
+      __ orr(r5, r5, 1);
+    }
+    __ bx(r5);  // label_2
+
+    __ bind(&label_4);
+  }
   END();
 
   RUN();
@@ -1219,9 +1239,12 @@
 
 
 void EmitReusedLoadLiteralStressTest(InstructionSet isa, bool conditional) {
-  // This test stresses loading a literal that is already in the literal pool, for
-  // various positionings on the existing load from that literal. We try to exercise
-  // cases where the two loads result in similar checkpoints for the literal pool.
+  // This test stresses loading a literal that is already in the literal pool,
+  // for
+  // various positionings on the existing load from that literal. We try to
+  // exercise
+  // cases where the two loads result in similar checkpoints for the literal
+  // pool.
   SETUP();
 
   const int ldrd_range = masm.IsUsingA32() ? 255 : 1020;
@@ -1253,9 +1276,12 @@
     Literal<uint64_t> l1(0xcafebeefdeadbaba);
     __ Ldr(r0, &l1);
 
-    // Generate nops, in order to bring the checkpoints of the Ldr and Ldrd closer.
+    // Generate nops, in order to bring the checkpoints of the Ldr and Ldrd
+    // closer.
     {
-      ExactAssemblyScope scope(&masm, n * nop_size, ExactAssemblyScope::kExactSize);
+      ExactAssemblyScope scope(&masm,
+                               n * nop_size,
+                               ExactAssemblyScope::kExactSize);
       for (int i = 0; i < n; ++i) {
         __ nop();
       }
@@ -1310,7 +1336,7 @@
   Literal<uint64_t> l0(0xcafebeefdeadbaba);
   __ Ldrd(r0, r1, &l0);
   for (int i = 0; i < 10000; ++i) {
-    __ Add (r2, r2, i);
+    __ Add(r2, r2, i);
     __ Ldrd(r4, r5, &l0);
   }
 
@@ -1332,8 +1358,6 @@
 }
 
 
-
-
 // Make sure calling a macro-assembler instruction will generate literal pools
 // if needed.
 TEST_T32(literal_pool_generated_by_macro_instruction) {
@@ -1434,20 +1458,20 @@
   const int ldrd_range = masm->IsUsingA32() ? 255 : 1020;
   // We want to emit code up to the maximum literal load range and ensure the
   // pool has not been emitted. Compute the limit (end).
-  ptrdiff_t end =
-      AlignDown(
-          // Align down the PC to 4 bytes as the instruction does when it's
-          // executed.
-          // The PC will be the cursor offset plus the architecture state PC
-          // offset.
-          AlignDown(masm->GetBuffer()->GetCursorOffset() +
-                    masm->GetArchitectureStatePCOffset(), 4) +
+  ptrdiff_t end = AlignDown(
+      // Align down the PC to 4 bytes as the instruction does when it's
+      // executed.
+      // The PC will be the cursor offset plus the architecture state PC
+      // offset.
+      AlignDown(masm->GetBuffer()->GetCursorOffset() +
+                    masm->GetArchitectureStatePCOffset(),
+                4) +
           // Maximum range allowed to access the constant.
           ldrd_range -
           // The literal pool has a two instruction margin.
           2 * kMaxInstructionSizeInBytes,
-          // AlignDown to 4 byte as the literals will be 4 byte aligned.
-          4);
+      // AlignDown to 4 byte as the literals will be 4 byte aligned.
+      4);
 
   // Create one literal pool entry.
   __ Ldrd(r0, r1, 0x1234567890abcdef);
@@ -1577,7 +1601,8 @@
 // sizes close to the maximum supported offset will produce code that executes
 // correctly. As the Ldrd might or might not be rewinded, we do not assert on
 // the size of the literal pool in this test.
-void EmitLdrdLiteralStressTest(InstructionSet isa, bool unaligned,
+void EmitLdrdLiteralStressTest(InstructionSet isa,
+                               bool unaligned,
                                LiteralStressTestMode test_mode) {
   SETUP();
 
@@ -1733,7 +1758,8 @@
   const int ldrd_padding = ldrd_range - 2 * kA32InstructionSizeInBytes;
   const int ldr_range = 4095;
   // We need to take into account the ldrd padding and the ldrd instruction.
-  const int ldr_padding = ldr_range - ldrd_padding - 2 * kA32InstructionSizeInBytes;
+  const int ldr_padding =
+      ldr_range - ldrd_padding - 2 * kA32InstructionSizeInBytes;
 
   __ Ldr(r1, 0x12121212);
   ASSERT_LITERAL_POOL_SIZE(4);
@@ -1884,13 +1910,12 @@
 };
 
 
-const LdrLiteralRangeTest kLdrLiteralRangeTestData[] = {
-  {&MacroAssembler::Ldr, r1, 4095, 4095, 0x12345678, 0x12345678 },
-  {&MacroAssembler::Ldrh, r2, 255, 4095, 0xabcdefff, 0x0000efff },
-  {&MacroAssembler::Ldrsh, r3, 255, 4095, 0x00008765, 0xffff8765 },
-  {&MacroAssembler::Ldrb, r4, 4095, 4095, 0x12345678, 0x00000078 },
-  {&MacroAssembler::Ldrsb, r5, 255, 4095, 0x00000087, 0xffffff87 }
-};
+const LdrLiteralRangeTest kLdrLiteralRangeTestData[] =
+    {{&MacroAssembler::Ldr, r1, 4095, 4095, 0x12345678, 0x12345678},
+     {&MacroAssembler::Ldrh, r2, 255, 4095, 0xabcdefff, 0x0000efff},
+     {&MacroAssembler::Ldrsh, r3, 255, 4095, 0x00008765, 0xffff8765},
+     {&MacroAssembler::Ldrb, r4, 4095, 4095, 0x12345678, 0x00000078},
+     {&MacroAssembler::Ldrsb, r5, 255, 4095, 0x00000087, 0xffffff87}};
 
 
 void GenerateLdrLiteralTriggerPoolEmission(InstructionSet isa,
@@ -1930,7 +1955,9 @@
     int end = masm.GetCursorOffset() + space;
     {
       // Generate nops precisely to fill the buffer.
-      ExactAssemblyScope accurate_scope(&masm, space); // This should not trigger emission of the pool.
+      ExactAssemblyScope accurate_scope(&masm, space);  // This should not
+                                                        // trigger emission of
+                                                        // the pool.
       VIXL_CHECK(!masm.LiteralPoolIsEmpty());
       while (masm.GetCursorOffset() < end) {
         __ nop();
@@ -1991,9 +2018,8 @@
 
     // Generate enough instruction so that we go out of range for the load
     // literal we just emitted.
-    ptrdiff_t end =
-        masm.GetBuffer()->GetCursorOffset() +
-        ((masm.IsUsingA32()) ? test.a32_range : test.t32_range);
+    ptrdiff_t end = masm.GetBuffer()->GetCursorOffset() +
+                    ((masm.IsUsingA32()) ? test.a32_range : test.t32_range);
     while (masm.GetBuffer()->GetCursorOffset() < end) {
       __ Mov(r0, 0);
     }
@@ -2013,9 +2039,7 @@
 }
 
 
-TEST(ldr_literal_range) {
-  GenerateLdrLiteralRangeTest(isa, false);
-}
+TEST(ldr_literal_range) { GenerateLdrLiteralRangeTest(isa, false); }
 
 
 TEST_T32(ldr_literal_range_unaligned) {
@@ -2102,7 +2126,7 @@
 
   Literal<uint64_t> l0(0xcafebeefdeadbaba, RawLiteral::kManuallyPlaced);
   Literal<int32_t> l1(0x12345678, RawLiteral::kManuallyPlaced);
-  Literal<uint16_t>l2(4567, RawLiteral::kManuallyPlaced);
+  Literal<uint16_t> l2(4567, RawLiteral::kManuallyPlaced);
   Literal<int16_t> l3(-4567, RawLiteral::kManuallyPlaced);
   Literal<uint8_t> l4(123, RawLiteral::kManuallyPlaced);
   Literal<int8_t> l5(-123, RawLiteral::kManuallyPlaced);
@@ -2196,7 +2220,7 @@
     VIXL_CHECK(before.IsBound());
     VIXL_CHECK(!after.IsBound());
 
-  // Load the entries several times to test that literals can be shared.
+    // Load the entries several times to test that literals can be shared.
     for (int i = 0; i < 20; i++) {
       (masm.*test.instruction)(r0, &before);
       (masm.*test.instruction)(r1, &after);
@@ -2704,7 +2728,6 @@
 }
 
 
-
 // This test check that we can update a Literal after usage.
 TEST(literal_update) {
   SETUP();
@@ -2714,16 +2737,16 @@
   Literal<uint32_t>* a32 =
       new Literal<uint32_t>(0xabcdef01, RawLiteral::kDeletedOnPoolDestruction);
   Literal<uint64_t>* a64 =
-      new Literal<uint64_t>(
-          UINT64_C(0xabcdef01abcdef01), RawLiteral::kDeletedOnPoolDestruction);
+      new Literal<uint64_t>(UINT64_C(0xabcdef01abcdef01),
+                            RawLiteral::kDeletedOnPoolDestruction);
   __ Ldr(r0, a32);
   __ Ldrd(r2, r3, a64);
   __ EmitLiteralPool();
   Literal<uint32_t>* b32 =
       new Literal<uint32_t>(0x10fedcba, RawLiteral::kDeletedOnPoolDestruction);
   Literal<uint64_t>* b64 =
-      new Literal<uint64_t>(
-          UINT64_C(0x10fedcba10fedcba), RawLiteral::kDeletedOnPoolDestruction);
+      new Literal<uint64_t>(UINT64_C(0x10fedcba10fedcba),
+                            RawLiteral::kDeletedOnPoolDestruction);
   __ Ldr(r1, b32);
   __ Ldrd(r4, r5, b64);
   // Update literals' values. "a32" and "a64" are already emitted. "b32" and
@@ -2745,101 +2768,6 @@
 }
 
 
-void SwitchCase(JumpTableBase* switch_, uint32_t case_index,
-                InstructionSet isa, bool bind_default = true) {
-  SETUP();
-
-  START();
-
-  __ Mov(r0, case_index);
-  __ Mov(r1, case_index);
-  __ Switch(r1, switch_);
-
-  __ Case(switch_, 0);
-  __ Mov(r0, 1);
-  __ Break(switch_);
-
-  __ Case(switch_, 1);
-  __ Mov(r0, 2);
-  __ Break(switch_);
-
-  __ Case(switch_, 2);
-  __ Mov(r0, 4);
-  __ Break(switch_);
-
-  __ Case(switch_, 3);
-  __ Mov(r0, 8);
-  __ Break(switch_);
-
-  if (bind_default) {
-    __ Default(switch_);
-    __ Mov(r0, -1);
-  }
-
-  __ EndSwitch(switch_);
-
-
-  END();
-
-  RUN();
-
-  if (case_index < 4) {
-    ASSERT_EQUAL_32(1 << case_index, r0);
-  } else if (bind_default) {
-    ASSERT_EQUAL_32(-1, r0);
-  } else {
-    ASSERT_EQUAL_32(case_index, r0);
-  }
-}
-
-
-TEST(switch_case_8) {
-  for (int i = 0; i < 5; i++) {
-    JumpTable8bitOffset switch_(5);
-    SwitchCase(&switch_, i, isa);
-  }
-}
-
-
-TEST(switch_case_16) {
-  for (int i = 0; i < 5; i++) {
-    JumpTable16bitOffset switch_(5);
-    SwitchCase(&switch_, i, isa);
-  }
-}
-
-
-TEST(switch_case_32) {
-  for (int i = 0; i < 5; i++) {
-    JumpTable32bitOffset switch_(5);
-    SwitchCase(&switch_, i, isa);
-  }
-}
-
-
-TEST(switch_case_8_omit_default) {
-  for (int i = 0; i < 5; i++) {
-    JumpTable8bitOffset switch_(5);
-    SwitchCase(&switch_, i, isa, false);
-  }
-}
-
-
-TEST(switch_case_16_omit_default) {
-  for (int i = 0; i < 5; i++) {
-    JumpTable16bitOffset switch_(5);
-    SwitchCase(&switch_, i, isa, false);
-  }
-}
-
-
-TEST(switch_case_32_omit_default) {
-  for (int i = 0; i < 5; i++) {
-    JumpTable32bitOffset switch_(5);
-    SwitchCase(&switch_, i, isa, false);
-  }
-}
-
 TEST(claim_peek_poke) {
   SETUP();
 
@@ -2941,7 +2869,7 @@
   __ Msr(APSR_nzcvqg, r0);
   __ Mov(r0, sp);
   __ Printf("sp=%x\n", r0);
-//  __ Printf("Hello world!\n");
+  //  __ Printf("Hello world!\n");
   __ Mov(r0, 0x1234);
   __ Mov(r1, 0x5678);
   StringLiteral literal("extra string");
@@ -3079,7 +3007,7 @@
 }
 
 
-template<typename T>
+template <typename T>
 void CheckInstructionSetA32(const T& assm) {
   VIXL_CHECK(assm.IsUsingA32());
   VIXL_CHECK(!assm.IsUsingT32());
@@ -3087,7 +3015,7 @@
 }
 
 
-template<typename T>
+template <typename T>
 void CheckInstructionSetT32(const T& assm) {
   VIXL_CHECK(assm.IsUsingT32());
   VIXL_CHECK(!assm.IsUsingA32());
@@ -3143,9 +3071,9 @@
 
 
 TEST_NOASM(set_isa_empty) {
-  // It is possible to change the instruction set if no instructions have yet
-  // been generated. This test only makes sense when both A32 and T32 are
-  // supported.
+// It is possible to change the instruction set if no instructions have yet
+// been generated. This test only makes sense when both A32 and T32 are
+// supported.
 #ifdef VIXL_INCLUDE_TARGET_AARCH32
   Assembler assm;
   CheckInstructionSetA32(assm);
@@ -3173,8 +3101,8 @@
 
 
 TEST_NOASM(set_isa_noop) {
-  // It is possible to call a no-op UseA32/T32 or UseInstructionSet even if
-  // one or more instructions have been generated.
+// It is possible to call a no-op UseA32/T32 or UseInstructionSet even if
+// one or more instructions have been generated.
 #ifdef VIXL_INCLUDE_TARGET_A32
   {
     Assembler assm(A32);
@@ -3315,8 +3243,8 @@
   {
     UseScratchRegisterScope temps(&masm);
     // 'ip' is a scratch register by default.
-    VIXL_CHECK(
-        masm.GetScratchRegisterList()->GetList() == (1u << ip.GetCode()));
+    VIXL_CHECK(masm.GetScratchRegisterList()->GetList() ==
+               (1u << ip.GetCode()));
     VIXL_CHECK(temps.IsAvailable(ip));
 
     // Integer registers have no complicated aliasing so
@@ -3546,7 +3474,6 @@
   // ratio in the sequence is fixed at 4:1 by the ratio of cases.
   for (int case_count = 6; case_count < 37; case_count++) {
     for (int iter = 0; iter < iterations; iter++) {
-
       // Reset local state.
       allbound = false;
       l = new Label[label_count];
@@ -3560,7 +3487,7 @@
         uint32_t label_index = static_cast<uint32_t>(mrand48()) % label_count;
 
         switch (inst_case) {
-          case 0: // Bind.
+          case 0:  // Bind.
             if (!l[label_index].IsBound()) {
               __ Bind(&l[label_index]);
 
@@ -3570,15 +3497,27 @@
               __ Add(r1, r1, 1);
             }
             break;
-          case 1: // Compare and branch if zero (untaken as r0 == 1).
-          case 2:
+          case 1:  // Compare and branch if zero (untaken as r0 == 1).
             __ Cbz(r0, &l[label_index]);
             break;
-          case 3: // Conditional branch (untaken as Z set) preferred near.
-          case 4:
-            __ BPreferNear(ne, &l[label_index]);
+          case 2: {  // Compare and branch if not zero.
+            Label past_branch;
+            __ B(eq, &past_branch, kNear);
+            __ Cbnz(r0, &l[label_index]);
+            __ Bind(&past_branch);
             break;
-          default: // Nop.
+          }
+          case 3: {  // Unconditional branch preferred near.
+            Label past_branch;
+            __ B(eq, &past_branch, kNear);
+            __ B(&l[label_index], kNear);
+            __ Bind(&past_branch);
+            break;
+          }
+          case 4:  // Conditional branch (untaken as Z set) preferred near.
+            __ B(ne, &l[label_index], kNear);
+            break;
+          default:  // Nop.
             __ Nop();
             break;
         }
@@ -3617,7 +3556,9 @@
 
   {
     // Fill the buffer with nops.
-    ExactAssemblyScope scope(&masm, kBaseBufferSize, ExactAssemblyScope::kExactSize);
+    ExactAssemblyScope scope(&masm,
+                             kBaseBufferSize,
+                             ExactAssemblyScope::kExactSize);
     for (int i = 0; i < kBaseBufferSize; i += k16BitT32InstructionSizeInBytes) {
       __ nop();
     }
@@ -3696,24 +3637,25 @@
   // Add enough nops to exceed the range of all loads.
   int space = 5000;
   {
-    ExactAssemblyScope scope(&masm,
-                             space,
-                             CodeBufferCheckScope::kExactSize);
+    ExactAssemblyScope scope(&masm, space, CodeBufferCheckScope::kExactSize);
     VIXL_ASSERT(masm.IsUsingT32());
     for (int i = 0; i < space; i += k16BitT32InstructionSizeInBytes) {
       __ nop();
     }
   }
 
-#define ENSURE_ALIGNED() do {                                                 \
-  if (!IsMultiple<k32BitT32InstructionSizeInBytes>(masm.GetCursorOffset())) { \
-    ExactAssemblyScope scope(&masm, k16BitT32InstructionSizeInBytes,          \
-                             ExactAssemblyScope::kExactSize);                 \
-    __ nop();                                                                 \
-  }                                                                           \
-  VIXL_ASSERT(IsMultiple<k32BitT32InstructionSizeInBytes>(                    \
-      masm.GetCursorOffset()));                                               \
-} while(0)
+#define ENSURE_ALIGNED()                                                      \
+  do {                                                                        \
+    if (!IsMultiple<k32BitT32InstructionSizeInBytes>(                         \
+            masm.GetCursorOffset())) {                                        \
+      ExactAssemblyScope scope(&masm,                                         \
+                               k16BitT32InstructionSizeInBytes,               \
+                               ExactAssemblyScope::kExactSize);               \
+      __ nop();                                                               \
+    }                                                                         \
+    VIXL_ASSERT(                                                              \
+        IsMultiple<k32BitT32InstructionSizeInBytes>(masm.GetCursorOffset())); \
+  } while (0)
 
   // The literal has already been emitted, and is out of range of all of these
   // instructions. The delegates must generate fix-up code.
@@ -3770,24 +3712,24 @@
   // to only a two-byte boundary.
   int space = 5002;
   {
-    ExactAssemblyScope scope(&masm,
-                             space,
-                             CodeBufferCheckScope::kExactSize);
+    ExactAssemblyScope scope(&masm, space, CodeBufferCheckScope::kExactSize);
     VIXL_ASSERT(masm.IsUsingT32());
     for (int i = 0; i < space; i += k16BitT32InstructionSizeInBytes) {
       __ nop();
     }
   }
 
-#define ENSURE_NOT_ALIGNED() do {                                            \
-  if (IsMultiple<k32BitT32InstructionSizeInBytes>(masm.GetCursorOffset())) { \
-    ExactAssemblyScope scope(&masm, k16BitT32InstructionSizeInBytes,         \
-                             ExactAssemblyScope::kExactSize);                \
-    __ nop();                                                                \
-  }                                                                          \
-  VIXL_ASSERT(!IsMultiple<k32BitT32InstructionSizeInBytes>(                  \
-      masm.GetCursorOffset()));                                              \
-} while(0)
+#define ENSURE_NOT_ALIGNED()                                                   \
+  do {                                                                         \
+    if (IsMultiple<k32BitT32InstructionSizeInBytes>(masm.GetCursorOffset())) { \
+      ExactAssemblyScope scope(&masm,                                          \
+                               k16BitT32InstructionSizeInBytes,                \
+                               ExactAssemblyScope::kExactSize);                \
+      __ nop();                                                                \
+    }                                                                          \
+    VIXL_ASSERT(                                                               \
+        !IsMultiple<k32BitT32InstructionSizeInBytes>(masm.GetCursorOffset())); \
+  } while (0)
 
   // The literal has already been emitted, and is out of range of all of these
   // instructions. The delegates must generate fix-up code.
@@ -3865,24 +3807,25 @@
   // be generated to read the PC.
   int space = 4000;
   {
-    ExactAssemblyScope scope(&masm,
-                             space,
-                             CodeBufferCheckScope::kExactSize);
+    ExactAssemblyScope scope(&masm, space, CodeBufferCheckScope::kExactSize);
     VIXL_ASSERT(masm.IsUsingT32());
     for (int i = 0; i < space; i += k16BitT32InstructionSizeInBytes) {
       __ nop();
     }
   }
 
-#define ENSURE_ALIGNED() do {                                                 \
-  if (!IsMultiple<k32BitT32InstructionSizeInBytes>(masm.GetCursorOffset())) { \
-    ExactAssemblyScope scope(&masm, k16BitT32InstructionSizeInBytes,          \
-                             ExactAssemblyScope::kExactSize);                 \
-    __ nop();                                                                 \
-  }                                                                           \
-  VIXL_ASSERT(IsMultiple<k32BitT32InstructionSizeInBytes>(                    \
-      masm.GetCursorOffset()));                                               \
-} while(0)
+#define ENSURE_ALIGNED()                                                      \
+  do {                                                                        \
+    if (!IsMultiple<k32BitT32InstructionSizeInBytes>(                         \
+            masm.GetCursorOffset())) {                                        \
+      ExactAssemblyScope scope(&masm,                                         \
+                               k16BitT32InstructionSizeInBytes,               \
+                               ExactAssemblyScope::kExactSize);               \
+      __ nop();                                                               \
+    }                                                                         \
+    VIXL_ASSERT(                                                              \
+        IsMultiple<k32BitT32InstructionSizeInBytes>(masm.GetCursorOffset())); \
+  } while (0)
 
   // The literal has already been emitted, and is out of range of all of these
   // instructions. The delegates must generate fix-up code.
@@ -3939,24 +3882,24 @@
   // be generated to read the PC.
   int space = 4000;
   {
-    ExactAssemblyScope scope(&masm,
-                             space,
-                             CodeBufferCheckScope::kExactSize);
+    ExactAssemblyScope scope(&masm, space, CodeBufferCheckScope::kExactSize);
     VIXL_ASSERT(masm.IsUsingT32());
     for (int i = 0; i < space; i += k16BitT32InstructionSizeInBytes) {
       __ nop();
     }
   }
 
-#define ENSURE_NOT_ALIGNED() do {                                            \
-  if (IsMultiple<k32BitT32InstructionSizeInBytes>(masm.GetCursorOffset())) { \
-    ExactAssemblyScope scope(&masm, k16BitT32InstructionSizeInBytes,         \
-                             ExactAssemblyScope::kExactSize);                \
-    __ nop();                                                                \
-  }                                                                          \
-  VIXL_ASSERT(!IsMultiple<k32BitT32InstructionSizeInBytes>(                  \
-      masm.GetCursorOffset()));                                              \
-} while(0)
+#define ENSURE_NOT_ALIGNED()                                                   \
+  do {                                                                         \
+    if (IsMultiple<k32BitT32InstructionSizeInBytes>(masm.GetCursorOffset())) { \
+      ExactAssemblyScope scope(&masm,                                          \
+                               k16BitT32InstructionSizeInBytes,                \
+                               ExactAssemblyScope::kExactSize);                \
+      __ nop();                                                                \
+    }                                                                          \
+    VIXL_ASSERT(                                                               \
+        !IsMultiple<k32BitT32InstructionSizeInBytes>(masm.GetCursorOffset())); \
+  } while (0)
 
   // The literal has already been emitted, and is out of range of all of these
   // instructions. The delegates must generate fix-up code.
@@ -4009,17 +3952,18 @@
   // Refer to the literal so that it is emitted early.
   __ Ldr(r0, literal);
 
-#define PAD_WITH_NOPS(space) do {                                      \
-  {                                                                    \
-    ExactAssemblyScope scope(&masm,                                    \
-                             space,                                    \
-                             CodeBufferCheckScope::kExactSize);        \
-    VIXL_ASSERT(masm.IsUsingT32());                                    \
-    for (int i = 0; i < space; i += k16BitT32InstructionSizeInBytes) { \
-      __ nop();                                                        \
-    }                                                                  \
-  }                                                                    \
-} while(0)
+#define PAD_WITH_NOPS(space)                                             \
+  do {                                                                   \
+    {                                                                    \
+      ExactAssemblyScope scope(&masm,                                    \
+                               space,                                    \
+                               CodeBufferCheckScope::kExactSize);        \
+      VIXL_ASSERT(masm.IsUsingT32());                                    \
+      for (int i = 0; i < space; i += k16BitT32InstructionSizeInBytes) { \
+        __ nop();                                                        \
+      }                                                                  \
+    }                                                                    \
+  } while (0)
 
   // Add enough nops to exceed the range of all loads.
   PAD_WITH_NOPS(5000);
@@ -4750,7 +4694,7 @@
   // However, as the literal emission would put veneers out of range.
   VIXL_ASSERT(masm.GetMarginBeforeVeneerEmission() <
               kTypicalMacroInstructionMaxSize +
-              static_cast<int32_t>(masm.GetLiteralPoolSize()));
+                  static_cast<int32_t>(masm.GetLiteralPoolSize()));
 
   // This extra Nop will generate the literal pool and before that the veneer
   // pool.
@@ -4839,7 +4783,9 @@
 
   uint32_t value = 0x1234567;
   Literal<uint32_t>* literal =
-      new Literal<uint32_t>(value, RawLiteral::kPlacedWhenUsed, RawLiteral::kDeletedOnPoolDestruction);
+      new Literal<uint32_t>(value,
+                            RawLiteral::kPlacedWhenUsed,
+                            RawLiteral::kDeletedOnPoolDestruction);
 
   __ Ldr(r11, literal);
 
@@ -4849,12 +4795,10 @@
   const int NUM_RANGE = 58;
 
   const int NUM1 = NUM_NOPS - NUM_RANGE;
-  const int NUM2 = NUM_RANGE ;
+  const int NUM2 = NUM_RANGE;
 
   {
-    ExactAssemblyScope aas(&masm,
-                           2 * NUM1,
-                           CodeBufferCheckScope::kMaximumSize);
+    ExactAssemblyScope aas(&masm, 2 * NUM1, CodeBufferCheckScope::kMaximumSize);
     for (int i = 0; i < NUM1; i++) {
       __ nop();
     }
@@ -4863,18 +4807,14 @@
   __ Cbz(r1, &end);
 
   {
-    ExactAssemblyScope aas(&masm,
-                           2 * NUM2,
-                           CodeBufferCheckScope::kMaximumSize);
+    ExactAssemblyScope aas(&masm, 2 * NUM2, CodeBufferCheckScope::kMaximumSize);
     for (int i = 0; i < NUM2; i++) {
       __ nop();
     }
   }
 
   {
-    ExactAssemblyScope aas(&masm,
-                           4,
-                           CodeBufferCheckScope::kMaximumSize);
+    ExactAssemblyScope aas(&masm, 4, CodeBufferCheckScope::kMaximumSize);
     __ add(r1, r1, 3);
   }
   __ Bind(&end);
@@ -4904,7 +4844,6 @@
   int first_test = 2000;
   // Test on both sizes of the Adr range which is 4095.
   for (int test = 0; test < kTestCount; test++) {
-
     const int string_size = 1000;  // A lot more than the cbz range.
     std::string test_string(string_size, 'x');
     StringLiteral big_literal(test_string.c_str());
@@ -4924,9 +4863,7 @@
     __ Cbz(r1, &labels[test]);
 
     {
-      ExactAssemblyScope aas(&masm,
-                             4,
-                             CodeBufferCheckScope::kMaximumSize);
+      ExactAssemblyScope aas(&masm, 4, CodeBufferCheckScope::kMaximumSize);
       __ add(r1, r1, 3);
     }
     __ Bind(&labels[test]);
@@ -4964,9 +4901,7 @@
   // order to reach the maximum range of ldrd and cbz at the same time.
   {
     int nop_size = kLdrdRange - kCbzCbnzRange - 5 * kSizeForCbz;
-    ExactAssemblyScope scope(&masm,
-                             nop_size,
-                             CodeBufferCheckScope::kExactSize);
+    ExactAssemblyScope scope(&masm, nop_size, CodeBufferCheckScope::kExactSize);
     for (int i = 0; i < nop_size; i += k16BitT32InstructionSizeInBytes) {
       __ nop();
     }
@@ -4988,9 +4923,7 @@
   // This scope will generate both veneers (they are both out of range).
   {
     int nop_size = kCbzCbnzRange;
-    ExactAssemblyScope scope(&masm,
-                             nop_size,
-                             CodeBufferCheckScope::kExactSize);
+    ExactAssemblyScope scope(&masm, nop_size, CodeBufferCheckScope::kExactSize);
     for (int i = 0; i < nop_size; i += k16BitT32InstructionSizeInBytes) {
       __ nop();
     }
@@ -5089,8 +5022,8 @@
   // for).
   const int32_t kTypicalMacroInstructionMaxSize =
       8 * kMaxInstructionSizeInBytes;
-  int32_t margin = masm.GetMarginBeforeLiteralEmission()
-                       - kTypicalMacroInstructionMaxSize;
+  int32_t margin =
+      masm.GetMarginBeforeLiteralEmission() - kTypicalMacroInstructionMaxSize;
   int32_t end = masm.GetCursorOffset() + margin;
 
   {
@@ -5099,8 +5032,8 @@
       __ nop();
     }
   }
-  VIXL_CHECK(masm.GetMarginBeforeLiteralEmission()
-             == kTypicalMacroInstructionMaxSize);
+  VIXL_CHECK(masm.GetMarginBeforeLiteralEmission() ==
+             kTypicalMacroInstructionMaxSize);
 
   // We cannot use an IT block for this instruction, hence ITScope will
   // generate a branch over it.
@@ -5125,16 +5058,18 @@
 
   START();
 
-  const uint32_t src[4] = { 0x12345678, 0x09abcdef, 0xc001c0de, 0xdeadbeef };
-  uint32_t dst1[4] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000 };
-  uint32_t dst2[4] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000 };
+  const uint32_t src[4] = {0x12345678, 0x09abcdef, 0xc001c0de, 0xdeadbeef};
+  uint32_t dst1[4] = {0x00000000, 0x00000000, 0x00000000, 0x00000000};
+  uint32_t dst2[4] = {0x00000000, 0x00000000, 0x00000000, 0x00000000};
 
   __ Mov(r0, reinterpret_cast<uintptr_t>(src));
-  __ Ldm(r0, NO_WRITE_BACK, RegisterList(r1, r2, r3, r4));;
+  __ Ldm(r0, NO_WRITE_BACK, RegisterList(r1, r2, r3, r4));
+  ;
   __ Ldm(r0, NO_WRITE_BACK, RegisterList(r5, r6, r9, r11));
 
   __ Mov(r0, reinterpret_cast<uintptr_t>(dst1));
-  __ Stm(r0, NO_WRITE_BACK, RegisterList(r1, r2, r3, r4));;
+  __ Stm(r0, NO_WRITE_BACK, RegisterList(r1, r2, r3, r4));
+  ;
 
   __ Mov(r0, reinterpret_cast<uintptr_t>(dst2));
   __ Stm(r0, NO_WRITE_BACK, RegisterList(r5, r6, r9, r11));
@@ -5172,13 +5107,21 @@
 
   START();
 
-  const uint32_t src[4] = { 0x12345678, 0x09abcdef, 0xc001c0de, 0xdeadbeef };
-  uint32_t dst[8] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000,
-		      0x00000000, 0x00000000, 0x00000000, 0x00000000 };
+  const uint32_t src[4] = {0x12345678, 0x09abcdef, 0xc001c0de, 0xdeadbeef};
+  uint32_t dst[8] = {0x00000000,
+                     0x00000000,
+                     0x00000000,
+                     0x00000000,
+                     0x00000000,
+                     0x00000000,
+                     0x00000000,
+                     0x00000000};
 
   __ Mov(r0, reinterpret_cast<uintptr_t>(src));
-  __ Ldm(r0, WRITE_BACK, RegisterList(r2, r3));;
-  __ Ldm(r0, WRITE_BACK, RegisterList(r4, r5));;
+  __ Ldm(r0, WRITE_BACK, RegisterList(r2, r3));
+  ;
+  __ Ldm(r0, WRITE_BACK, RegisterList(r4, r5));
+  ;
 
   __ Mov(r1, reinterpret_cast<uintptr_t>(dst));
   __ Stm(r1, WRITE_BACK, RegisterList(r2, r3, r4, r5));
@@ -5214,11 +5157,11 @@
 
   START();
 
-  const uint32_t src1[4] = { 0x33333333, 0x44444444, 0x11111111, 0x22222222 };
-  const uint32_t src2[4] = { 0x11111111, 0x22222222, 0x33333333, 0x44444444 };
+  const uint32_t src1[4] = {0x33333333, 0x44444444, 0x11111111, 0x22222222};
+  const uint32_t src2[4] = {0x11111111, 0x22222222, 0x33333333, 0x44444444};
 
-  uint32_t dst1[4] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000 };
-  uint32_t dst2[4] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000 };
+  uint32_t dst1[4] = {0x00000000, 0x00000000, 0x00000000, 0x00000000};
+  uint32_t dst2[4] = {0x00000000, 0x00000000, 0x00000000, 0x00000000};
 
   __ Mov(r11, reinterpret_cast<uintptr_t>(src1 + 3));
   __ Ldmda(r11, WRITE_BACK, RegisterList(r0, r1));
@@ -5242,7 +5185,7 @@
   RUN();
 
   ASSERT_EQUAL_32(reinterpret_cast<uintptr_t>(src1 + 1), r11);
-  ASSERT_EQUAL_32(reinterpret_cast<uintptr_t>(src2  + 1), r10);
+  ASSERT_EQUAL_32(reinterpret_cast<uintptr_t>(src2 + 1), r10);
   ASSERT_EQUAL_32(reinterpret_cast<uintptr_t>(dst1 + 1), r9);
   ASSERT_EQUAL_32(reinterpret_cast<uintptr_t>(dst2 + 1), r8);
 
@@ -5275,12 +5218,11 @@
 
   START();
 
-  const uint32_t src[6] = { 0x55555555, 0x66666666,
-			    0x33333333, 0x44444444,
-			    0x11111111, 0x22222222 };
+  const uint32_t src[6] =
+      {0x55555555, 0x66666666, 0x33333333, 0x44444444, 0x11111111, 0x22222222};
 
-  uint32_t dst[6] = { 0x00000000, 0x00000000, 0x00000000,
-		      0x00000000, 0x00000000, 0x00000000 };
+  uint32_t dst[6] =
+      {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
 
   __ Mov(r11, reinterpret_cast<uintptr_t>(src + 6));
   __ Ldmdb(r11, WRITE_BACK, RegisterList(r1, r2));
@@ -5336,19 +5278,32 @@
   __ Bind(&func1);
   __ Mov(r0, 0x11111111);
   __ Push(lr);
-  __ Adr(r11, &func2);
-  if (masm.IsUsingT32()) {
-    // The jump target needs to have its least significant bit set to indicate
-    // that we are jumping into thumb mode.
-    __ Orr(r11, r11, 1);
-  }
-  __ Blx(r11);
-  __ Pop(lr);
-  __ Bx(lr);
+  {
+    size_t size_of_generated_code;
+    if (masm.IsUsingA32()) {
+      size_of_generated_code = 7 * kA32InstructionSizeInBytes;
+    } else {
+      size_of_generated_code = 5 * k32BitT32InstructionSizeInBytes +
+                               3 * k16BitT32InstructionSizeInBytes;
+    }
+    ExactAssemblyScope scope(&masm,
+                             size_of_generated_code,
+                             ExactAssemblyScope::kExactSize);
+    __ adr(r11, &func2);
+    if (masm.IsUsingT32()) {
+      // The jump target needs to have its least significant bit set to indicate
+      // that we are jumping into thumb mode.
+      __ orr(r11, r11, 1);
+    }
+    __ blx(r11);
+    __ pop(lr);
+    __ bx(lr);
 
-  __ Bind(&func2);
-  __ Mov(r1, 0x22222222);
-  __ Bx(lr);
+    __ bind(&func2);
+    __ movw(r1, 0x2222);
+    __ movt(r1, 0x2222);
+    __ bx(lr);
+  }
 
   __ Bind(&test_start);
   __ Mov(r0, 0xdeadc0de);
@@ -5678,51 +5633,55 @@
 }
 
 
-#define CHECK_SIZE_MATCH(ASM1, ASM2)                                  \
-  {                                                                   \
-    MacroAssembler masm1(BUF_SIZE);                                   \
-    masm1.UseInstructionSet(isa);                                     \
-    VIXL_ASSERT(masm1.GetCursorOffset() == 0);                        \
-    masm1.ASM1;                                                       \
-    masm1.FinalizeCode();                                             \
-    int size1 = masm1.GetCursorOffset();                              \
-                                                                      \
-    MacroAssembler masm2(BUF_SIZE);                                   \
-    masm2.UseInstructionSet(isa);                                     \
-    VIXL_ASSERT(masm2.GetCursorOffset() == 0);                        \
-    masm2.ASM2;                                                       \
-    masm2.FinalizeCode();                                             \
-    int size2 = masm2.GetCursorOffset();                              \
-                                                                      \
-    bool disassemble = Test::disassemble();                           \
-    if (size1 != size2) {                                             \
-      printf("Sizes did not match:\n");                               \
-      disassemble = true;                                             \
-    }                                                                 \
-    if (disassemble) {                                                \
-      PrintDisassembler dis(std::cout, 0);                            \
-      printf("// " #ASM1 "\n");                                       \
-      if (masm1.IsUsingT32()) {                                       \
-        dis.DisassembleT32Buffer(                                     \
-            masm1.GetBuffer()->GetStartAddress<uint16_t*>(), size1);  \
-      } else {                                                        \
-        dis.DisassembleA32Buffer(                                     \
-            masm1.GetBuffer()->GetStartAddress<uint32_t*>(), size1);  \
-      }                                                               \
-      printf("\n");                                                   \
-                                                                      \
-      dis.SetCodeAddress(0);                                          \
-      printf("// " #ASM2 "\n");                                       \
-      if (masm2.IsUsingT32()) {                                       \
-        dis.DisassembleT32Buffer(                                     \
-            masm2.GetBuffer()->GetStartAddress<uint16_t*>(), size2);  \
-      } else {                                                        \
-        dis.DisassembleA32Buffer(                                     \
-            masm2.GetBuffer()->GetStartAddress<uint32_t*>(), size2);  \
-      }                                                               \
-      printf("\n");                                                   \
-    }                                                                 \
-    VIXL_CHECK(size1 == size2);                                       \
+#define CHECK_SIZE_MATCH(ASM1, ASM2)                                 \
+  {                                                                  \
+    MacroAssembler masm1(BUF_SIZE);                                  \
+    masm1.UseInstructionSet(isa);                                    \
+    VIXL_ASSERT(masm1.GetCursorOffset() == 0);                       \
+    masm1.ASM1;                                                      \
+    masm1.FinalizeCode();                                            \
+    int size1 = masm1.GetCursorOffset();                             \
+                                                                     \
+    MacroAssembler masm2(BUF_SIZE);                                  \
+    masm2.UseInstructionSet(isa);                                    \
+    VIXL_ASSERT(masm2.GetCursorOffset() == 0);                       \
+    masm2.ASM2;                                                      \
+    masm2.FinalizeCode();                                            \
+    int size2 = masm2.GetCursorOffset();                             \
+                                                                     \
+    bool disassemble = Test::disassemble();                          \
+    if (size1 != size2) {                                            \
+      printf("Sizes did not match:\n");                              \
+      disassemble = true;                                            \
+    }                                                                \
+    if (disassemble) {                                               \
+      PrintDisassembler dis(std::cout, 0);                           \
+      printf("// " #ASM1 "\n");                                      \
+      if (masm1.IsUsingT32()) {                                      \
+        dis.DisassembleT32Buffer(masm1.GetBuffer()                   \
+                                     ->GetStartAddress<uint16_t*>(), \
+                                 size1);                             \
+      } else {                                                       \
+        dis.DisassembleA32Buffer(masm1.GetBuffer()                   \
+                                     ->GetStartAddress<uint32_t*>(), \
+                                 size1);                             \
+      }                                                              \
+      printf("\n");                                                  \
+                                                                     \
+      dis.SetCodeAddress(0);                                         \
+      printf("// " #ASM2 "\n");                                      \
+      if (masm2.IsUsingT32()) {                                      \
+        dis.DisassembleT32Buffer(masm2.GetBuffer()                   \
+                                     ->GetStartAddress<uint16_t*>(), \
+                                 size2);                             \
+      } else {                                                       \
+        dis.DisassembleA32Buffer(masm2.GetBuffer()                   \
+                                     ->GetStartAddress<uint32_t*>(), \
+                                 size2);                             \
+      }                                                              \
+      printf("\n");                                                  \
+    }                                                                \
+    VIXL_CHECK(size1 == size2);                                      \
   }
 
 
@@ -5739,8 +5698,7 @@
   // CHECK_SIZE_MATCH(Adc(DontCare, eq, r7, r6, r7),
   //                  Adc(DontCare, eq, r7, r7, r6));
 
-  CHECK_SIZE_MATCH(Add(DontCare, r1, r2, r7),
-                   Add(DontCare, r1, r7, r2));
+  CHECK_SIZE_MATCH(Add(DontCare, r1, r2, r7), Add(DontCare, r1, r7, r2));
 
   CHECK_SIZE_MATCH(Add(DontCare, lt, r1, r2, r7),
                    Add(DontCare, lt, r1, r7, r2));
@@ -5788,17 +5746,14 @@
   //                  Orr(DontCare, eq, r7, r6, r7));
 
 
-  CHECK_SIZE_MATCH(Adc(r7, r6, r7),
-                   Adc(r7, r7, r6));
+  CHECK_SIZE_MATCH(Adc(r7, r6, r7), Adc(r7, r7, r6));
 
   // CHECK_SIZE_MATCH(Adc(eq, r7, r6, r7),
   //                  Adc(eq, r7, r7, r6));
 
-  CHECK_SIZE_MATCH(Add(r1, r2, r7),
-                   Add(r1, r7, r2));
+  CHECK_SIZE_MATCH(Add(r1, r2, r7), Add(r1, r7, r2));
 
-  CHECK_SIZE_MATCH(Add(lt, r1, r2, r7),
-                   Add(lt, r1, r7, r2));
+  CHECK_SIZE_MATCH(Add(lt, r1, r2, r7), Add(lt, r1, r7, r2));
 
   // CHECK_SIZE_MATCH(Add(r4, r4, r10),
   //                  Add(r4, r10, r4));
@@ -5818,26 +5773,22 @@
   // CHECK_SIZE_MATCH(Add(eq, sp, sp, r10),
   //                  Add(eq, sp, r10, sp));
 
-  CHECK_SIZE_MATCH(And(r7, r7, r6),
-                   And(r7, r6, r7));
+  CHECK_SIZE_MATCH(And(r7, r7, r6), And(r7, r6, r7));
 
   // CHECK_SIZE_MATCH(And(eq, r7, r7, r6),
   //                  And(eq, r7, r6, r7));
 
-  CHECK_SIZE_MATCH(Eor(r7, r7, r6),
-                   Eor(r7, r6, r7));
+  CHECK_SIZE_MATCH(Eor(r7, r7, r6), Eor(r7, r6, r7));
 
   // CHECK_SIZE_MATCH(Eor(eq, r7, r7, r6),
   //                  Eor(eq, r7, r6, r7));
 
-  CHECK_SIZE_MATCH(Mul(r0, r1, r0),
-                   Mul(r0, r0, r1));
+  CHECK_SIZE_MATCH(Mul(r0, r1, r0), Mul(r0, r0, r1));
 
   // CHECK_SIZE_MATCH(Mul(eq, r0, r1, r0),
   //                  Mul(eq, r0, r0, r1));
 
-  CHECK_SIZE_MATCH(Orr(r7, r7, r6),
-                   Orr(r7, r6, r7));
+  CHECK_SIZE_MATCH(Orr(r7, r7, r6), Orr(r7, r6, r7));
 
   // CHECK_SIZE_MATCH(Orr(eq, r7, r7, r6),
   //                  Orr(eq, r7, r6, r7));
@@ -5849,29 +5800,21 @@
   // CHECK_SIZE_MATCH(Adcs(eq, r7, r6, r7),
   //                  Adcs(eq, r7, r7, r6));
 
-  CHECK_SIZE_MATCH(Adds(r1, r2, r7),
-                   Adds(r1, r7, r2));
+  CHECK_SIZE_MATCH(Adds(r1, r2, r7), Adds(r1, r7, r2));
 
-  CHECK_SIZE_MATCH(Adds(lt, r1, r2, r7),
-                   Adds(lt, r1, r7, r2));
+  CHECK_SIZE_MATCH(Adds(lt, r1, r2, r7), Adds(lt, r1, r7, r2));
 
-  CHECK_SIZE_MATCH(Adds(r4, r4, r10),
-                   Adds(r4, r10, r4));
+  CHECK_SIZE_MATCH(Adds(r4, r4, r10), Adds(r4, r10, r4));
 
-  CHECK_SIZE_MATCH(Adds(eq, r4, r4, r10),
-                   Adds(eq, r4, r10, r4));
+  CHECK_SIZE_MATCH(Adds(eq, r4, r4, r10), Adds(eq, r4, r10, r4));
 
-  CHECK_SIZE_MATCH(Adds(r7, sp, r7),
-                   Adds(r7, r7, sp));
+  CHECK_SIZE_MATCH(Adds(r7, sp, r7), Adds(r7, r7, sp));
 
-  CHECK_SIZE_MATCH(Adds(eq, r7, sp, r7),
-                   Adds(eq, r7, r7, sp));
+  CHECK_SIZE_MATCH(Adds(eq, r7, sp, r7), Adds(eq, r7, r7, sp));
 
-  CHECK_SIZE_MATCH(Adds(sp, sp, r10),
-                   Adds(sp, r10, sp));
+  CHECK_SIZE_MATCH(Adds(sp, sp, r10), Adds(sp, r10, sp));
 
-  CHECK_SIZE_MATCH(Adds(eq, sp, sp, r10),
-                   Adds(eq, sp, r10, sp));
+  CHECK_SIZE_MATCH(Adds(eq, sp, sp, r10), Adds(eq, sp, r10, sp));
 
   // CHECK_SIZE_MATCH(Ands(r7, r7, r6),
   //                  Ands(r7, r6, r7));
diff --git a/test/aarch32/test-assembler-cond-rd-operand-const-a32-can-use-pc.cc b/test/aarch32/test-assembler-cond-rd-operand-const-a32-can-use-pc.cc
index 5c19b43..fb5fb0d 100644
--- a/test/aarch32/test-assembler-cond-rd-operand-const-a32-can-use-pc.cc
+++ b/test/aarch32/test-assembler-cond-rd-operand-const-a32-can-use-pc.cc
@@ -94,703 +94,1471 @@
 };
 
 // Each element of this array produce one instruction encoding.
-const TestData kTests[] = {
-    {{ls, r10, 0x00ab0000}, false, al, "ls r10 0x00ab0000", "ls_r10_"
-                                                            "0x00ab0000"},
-    {{ls, r13, 0xf000000f}, false, al, "ls r13 0xf000000f", "ls_r13_"
-                                                            "0xf000000f"},
-    {{pl, r4, 0x00003fc0}, false, al, "pl r4 0x00003fc0", "pl_r4_0x00003fc0"},
-    {{ne, r15, 0x00ab0000}, false, al, "ne r15 0x00ab0000", "ne_r15_"
-                                                            "0x00ab0000"},
-    {{lt, r14, 0x002ac000}, false, al, "lt r14 0x002ac000", "lt_r14_"
-                                                            "0x002ac000"},
-    {{eq, r15, 0x000000ab}, false, al, "eq r15 0x000000ab", "eq_r15_"
-                                                            "0x000000ab"},
-    {{al, r6, 0x002ac000}, false, al, "al r6 0x002ac000", "al_r6_0x002ac000"},
-    {{pl, r2, 0x0002ac00}, false, al, "pl r2 0x0002ac00", "pl_r2_0x0002ac00"},
-    {{mi, r8, 0x00000000}, false, al, "mi r8 0x00000000", "mi_r8_0x00000000"},
-    {{pl, r13, 0x02ac0000}, false, al, "pl r13 0x02ac0000", "pl_r13_"
-                                                            "0x02ac0000"},
-    {{ge, r9, 0xac000002}, false, al, "ge r9 0xac000002", "ge_r9_0xac000002"},
-    {{ne, r3, 0x000003fc}, false, al, "ne r3 0x000003fc", "ne_r3_0x000003fc"},
-    {{pl, r10, 0xf000000f}, false, al, "pl r10 0xf000000f", "pl_r10_"
-                                                            "0xf000000f"},
-    {{cc, r0, 0x00003fc0}, false, al, "cc r0 0x00003fc0", "cc_r0_0x00003fc0"},
-    {{gt, r6, 0x002ac000}, false, al, "gt r6 0x002ac000", "gt_r6_0x002ac000"},
-    {{cs, r1, 0x00ff0000}, false, al, "cs r1 0x00ff0000", "cs_r1_0x00ff0000"},
-    {{lt, r8, 0x000002ac}, false, al, "lt r8 0x000002ac", "lt_r8_0x000002ac"},
-    {{vc, r4, 0x2ac00000}, false, al, "vc r4 0x2ac00000", "vc_r4_0x2ac00000"},
-    {{al, r11, 0x00003fc0}, false, al, "al r11 0x00003fc0", "al_r11_"
-                                                            "0x00003fc0"},
-    {{lt, r9, 0x000000ab}, false, al, "lt r9 0x000000ab", "lt_r9_0x000000ab"},
-    {{le, r15, 0x0000ff00}, false, al, "le r15 0x0000ff00", "le_r15_"
-                                                            "0x0000ff00"},
-    {{vc, r9, 0xff000000}, false, al, "vc r9 0xff000000", "vc_r9_0xff000000"},
-    {{ge, r0, 0x0ff00000}, false, al, "ge r0 0x0ff00000", "ge_r0_0x0ff00000"},
-    {{vc, r1, 0x00ff0000}, false, al, "vc r1 0x00ff0000", "vc_r1_0x00ff0000"},
-    {{vs, r12, 0x00000ff0}, false, al, "vs r12 0x00000ff0", "vs_r12_"
-                                                            "0x00000ff0"},
-    {{pl, r13, 0x003fc000}, false, al, "pl r13 0x003fc000", "pl_r13_"
-                                                            "0x003fc000"},
-    {{eq, r4, 0xff000000}, false, al, "eq r4 0xff000000", "eq_r4_0xff000000"},
-    {{eq, r12, 0xac000002}, false, al, "eq r12 0xac000002", "eq_r12_"
-                                                            "0xac000002"},
-    {{al, r11, 0x000000ab}, false, al, "al r11 0x000000ab", "al_r11_"
-                                                            "0x000000ab"},
-    {{ge, r10, 0x00ff0000}, false, al, "ge r10 0x00ff0000", "ge_r10_"
-                                                            "0x00ff0000"},
-    {{vs, r7, 0x0002ac00}, false, al, "vs r7 0x0002ac00", "vs_r7_0x0002ac00"},
-    {{le, r7, 0x002ac000}, false, al, "le r7 0x002ac000", "le_r7_0x002ac000"},
-    {{vc, r9, 0x000003fc}, false, al, "vc r9 0x000003fc", "vc_r9_0x000003fc"},
-    {{vs, r14, 0x002ac000}, false, al, "vs r14 0x002ac000", "vs_r14_"
-                                                            "0x002ac000"},
-    {{vs, r1, 0x000003fc}, false, al, "vs r1 0x000003fc", "vs_r1_0x000003fc"},
-    {{le, r13, 0x3fc00000}, false, al, "le r13 0x3fc00000", "le_r13_"
-                                                            "0x3fc00000"},
-    {{ne, r9, 0x0002ac00}, false, al, "ne r9 0x0002ac00", "ne_r9_0x0002ac00"},
-    {{al, r0, 0x00ab0000}, false, al, "al r0 0x00ab0000", "al_r0_0x00ab0000"},
-    {{hi, r5, 0xff000000}, false, al, "hi r5 0xff000000", "hi_r5_0xff000000"},
-    {{hi, r14, 0x000000ab}, false, al, "hi r14 0x000000ab", "hi_r14_"
-                                                            "0x000000ab"},
-    {{hi, r14, 0x000003fc}, false, al, "hi r14 0x000003fc", "hi_r14_"
-                                                            "0x000003fc"},
-    {{mi, r14, 0x03fc0000}, false, al, "mi r14 0x03fc0000", "mi_r14_"
-                                                            "0x03fc0000"},
-    {{mi, r8, 0x000000ff}, false, al, "mi r8 0x000000ff", "mi_r8_0x000000ff"},
-    {{gt, r6, 0x000ab000}, false, al, "gt r6 0x000ab000", "gt_r6_0x000ab000"},
-    {{mi, r12, 0x0ff00000}, false, al, "mi r12 0x0ff00000", "mi_r12_"
-                                                            "0x0ff00000"},
-    {{vs, r3, 0xff000000}, false, al, "vs r3 0xff000000", "vs_r3_0xff000000"},
-    {{vc, r7, 0x00ab0000}, false, al, "vc r7 0x00ab0000", "vc_r7_0x00ab0000"},
-    {{hi, r6, 0x03fc0000}, false, al, "hi r6 0x03fc0000", "hi_r6_0x03fc0000"},
-    {{ls, r5, 0x00ab0000}, false, al, "ls r5 0x00ab0000", "ls_r5_0x00ab0000"},
-    {{ls, r4, 0x000002ac}, false, al, "ls r4 0x000002ac", "ls_r4_0x000002ac"},
-    {{le, r13, 0x03fc0000}, false, al, "le r13 0x03fc0000", "le_r13_"
-                                                            "0x03fc0000"},
-    {{le, r15, 0x002ac000}, false, al, "le r15 0x002ac000", "le_r15_"
-                                                            "0x002ac000"},
-    {{pl, r6, 0xff000000}, false, al, "pl r6 0xff000000", "pl_r6_0xff000000"},
-    {{gt, r7, 0x00000ab0}, false, al, "gt r7 0x00000ab0", "gt_r7_0x00000ab0"},
-    {{hi, r3, 0x2ac00000}, false, al, "hi r3 0x2ac00000", "hi_r3_0x2ac00000"},
-    {{gt, r15, 0x00000000}, false, al, "gt r15 0x00000000", "gt_r15_"
-                                                            "0x00000000"},
-    {{gt, r1, 0x002ac000}, false, al, "gt r1 0x002ac000", "gt_r1_0x002ac000"},
-    {{hi, r2, 0x0000ff00}, false, al, "hi r2 0x0000ff00", "hi_r2_0x0000ff00"},
-    {{pl, r10, 0x03fc0000}, false, al, "pl r10 0x03fc0000", "pl_r10_"
-                                                            "0x03fc0000"},
-    {{gt, r10, 0xb000000a}, false, al, "gt r10 0xb000000a", "gt_r10_"
-                                                            "0xb000000a"},
-    {{ge, r10, 0x002ac000}, false, al, "ge r10 0x002ac000", "ge_r10_"
-                                                            "0x002ac000"},
-    {{al, r4, 0x0ab00000}, false, al, "al r4 0x0ab00000", "al_r4_0x0ab00000"},
-    {{ne, r12, 0x00000000}, false, al, "ne r12 0x00000000", "ne_r12_"
-                                                            "0x00000000"},
-    {{cs, r5, 0x00003fc0}, false, al, "cs r5 0x00003fc0", "cs_r5_0x00003fc0"},
-    {{cc, r6, 0x000000ff}, false, al, "cc r6 0x000000ff", "cc_r6_0x000000ff"},
-    {{hi, r14, 0x03fc0000}, false, al, "hi r14 0x03fc0000", "hi_r14_"
-                                                            "0x03fc0000"},
-    {{hi, r3, 0xab000000}, false, al, "hi r3 0xab000000", "hi_r3_0xab000000"},
-    {{lt, r2, 0x000ff000}, false, al, "lt r2 0x000ff000", "lt_r2_0x000ff000"},
-    {{gt, r3, 0x00ff0000}, false, al, "gt r3 0x00ff0000", "gt_r3_0x00ff0000"},
-    {{le, r14, 0x0ab00000}, false, al, "le r14 0x0ab00000", "le_r14_"
-                                                            "0x0ab00000"},
-    {{cc, r13, 0x03fc0000}, false, al, "cc r13 0x03fc0000", "cc_r13_"
-                                                            "0x03fc0000"},
-    {{gt, r6, 0xb000000a}, false, al, "gt r6 0xb000000a", "gt_r6_0xb000000a"},
-    {{pl, r3, 0x2ac00000}, false, al, "pl r3 0x2ac00000", "pl_r3_0x2ac00000"},
-    {{mi, r15, 0x000000ff}, false, al, "mi r15 0x000000ff", "mi_r15_"
-                                                            "0x000000ff"},
-    {{gt, r4, 0x00000ff0}, false, al, "gt r4 0x00000ff0", "gt_r4_0x00000ff0"},
-    {{ne, r4, 0x000003fc}, false, al, "ne r4 0x000003fc", "ne_r4_0x000003fc"},
-    {{ne, r5, 0x00ff0000}, false, al, "ne r5 0x00ff0000", "ne_r5_0x00ff0000"},
-    {{ge, r7, 0x000003fc}, false, al, "ge r7 0x000003fc", "ge_r7_0x000003fc"},
-    {{vs, r5, 0x00000000}, false, al, "vs r5 0x00000000", "vs_r5_0x00000000"},
-    {{vs, r6, 0x2ac00000}, false, al, "vs r6 0x2ac00000", "vs_r6_0x2ac00000"},
-    {{mi, r1, 0x3fc00000}, false, al, "mi r1 0x3fc00000", "mi_r1_0x3fc00000"},
-    {{gt, r8, 0xc000002a}, false, al, "gt r8 0xc000002a", "gt_r8_0xc000002a"},
-    {{pl, r10, 0x000000ab}, false, al, "pl r10 0x000000ab", "pl_r10_"
-                                                            "0x000000ab"},
-    {{mi, r6, 0xab000000}, false, al, "mi r6 0xab000000", "mi_r6_0xab000000"},
-    {{ls, r12, 0x3fc00000}, false, al, "ls r12 0x3fc00000", "ls_r12_"
-                                                            "0x3fc00000"},
-    {{vs, r13, 0x03fc0000}, false, al, "vs r13 0x03fc0000", "vs_r13_"
-                                                            "0x03fc0000"},
-    {{eq, r8, 0x00000ab0}, false, al, "eq r8 0x00000ab0", "eq_r8_0x00000ab0"},
-    {{gt, r6, 0x000000ff}, false, al, "gt r6 0x000000ff", "gt_r6_0x000000ff"},
-    {{vs, r5, 0x000ab000}, false, al, "vs r5 0x000ab000", "vs_r5_0x000ab000"},
-    {{mi, r1, 0x2ac00000}, false, al, "mi r1 0x2ac00000", "mi_r1_0x2ac00000"},
-    {{vs, r6, 0x00003fc0}, false, al, "vs r6 0x00003fc0", "vs_r6_0x00003fc0"},
-    {{gt, r6, 0x000002ac}, false, al, "gt r6 0x000002ac", "gt_r6_0x000002ac"},
-    {{eq, r2, 0x00000000}, false, al, "eq r2 0x00000000", "eq_r2_0x00000000"},
-    {{eq, r10, 0xc000003f}, false, al, "eq r10 0xc000003f", "eq_r10_"
-                                                            "0xc000003f"},
-    {{mi, r7, 0x00ab0000}, false, al, "mi r7 0x00ab0000", "mi_r7_0x00ab0000"},
-    {{cc, r7, 0x2ac00000}, false, al, "cc r7 0x2ac00000", "cc_r7_0x2ac00000"},
-    {{pl, r4, 0x00ab0000}, false, al, "pl r4 0x00ab0000", "pl_r4_0x00ab0000"},
-    {{ne, r15, 0x00000ff0}, false, al, "ne r15 0x00000ff0", "ne_r15_"
-                                                            "0x00000ff0"},
-    {{al, r6, 0x02ac0000}, false, al, "al r6 0x02ac0000", "al_r6_0x02ac0000"},
-    {{pl, r6, 0x000002ac}, false, al, "pl r6 0x000002ac", "pl_r6_0x000002ac"},
-    {{ne, r14, 0x00ff0000}, false, al, "ne r14 0x00ff0000", "ne_r14_"
-                                                            "0x00ff0000"},
-    {{ne, r5, 0x0003fc00}, false, al, "ne r5 0x0003fc00", "ne_r5_0x0003fc00"},
-    {{pl, r6, 0x00000ab0}, false, al, "pl r6 0x00000ab0", "pl_r6_0x00000ab0"},
-    {{eq, r10, 0x00002ac0}, false, al, "eq r10 0x00002ac0", "eq_r10_"
-                                                            "0x00002ac0"},
-    {{mi, r4, 0x00000ab0}, false, al, "mi r4 0x00000ab0", "mi_r4_0x00000ab0"},
-    {{vc, r5, 0x000ab000}, false, al, "vc r5 0x000ab000", "vc_r5_0x000ab000"},
-    {{ge, r0, 0x02ac0000}, false, al, "ge r0 0x02ac0000", "ge_r0_0x02ac0000"},
-    {{pl, r5, 0x000002ac}, false, al, "pl r5 0x000002ac", "pl_r5_0x000002ac"},
-    {{ge, r13, 0x00000ab0}, false, al, "ge r13 0x00000ab0", "ge_r13_"
-                                                            "0x00000ab0"},
-    {{eq, r2, 0x03fc0000}, false, al, "eq r2 0x03fc0000", "eq_r2_0x03fc0000"},
-    {{lt, r11, 0x00000ab0}, false, al, "lt r11 0x00000ab0", "lt_r11_"
-                                                            "0x00000ab0"},
-    {{ge, r6, 0x00000000}, false, al, "ge r6 0x00000000", "ge_r6_0x00000000"},
-    {{gt, r2, 0xac000002}, false, al, "gt r2 0xac000002", "gt_r2_0xac000002"},
-    {{le, r15, 0x000000ab}, false, al, "le r15 0x000000ab", "le_r15_"
-                                                            "0x000000ab"},
-    {{cc, r4, 0x00000ff0}, false, al, "cc r4 0x00000ff0", "cc_r4_0x00000ff0"},
-    {{pl, r10, 0x02ac0000}, false, al, "pl r10 0x02ac0000", "pl_r10_"
-                                                            "0x02ac0000"},
-    {{gt, r9, 0x00000000}, false, al, "gt r9 0x00000000", "gt_r9_0x00000000"},
-    {{vs, r8, 0x000000ff}, false, al, "vs r8 0x000000ff", "vs_r8_0x000000ff"},
-    {{gt, r14, 0x0002ac00}, false, al, "gt r14 0x0002ac00", "gt_r14_"
-                                                            "0x0002ac00"},
-    {{vs, r14, 0x00002ac0}, false, al, "vs r14 0x00002ac0", "vs_r14_"
-                                                            "0x00002ac0"},
-    {{ge, r12, 0x00000000}, false, al, "ge r12 0x00000000", "ge_r12_"
-                                                            "0x00000000"},
-    {{vc, r8, 0xf000000f}, false, al, "vc r8 0xf000000f", "vc_r8_0xf000000f"},
-    {{cs, r6, 0x00003fc0}, false, al, "cs r6 0x00003fc0", "cs_r6_0x00003fc0"},
-    {{le, r4, 0x000003fc}, false, al, "le r4 0x000003fc", "le_r4_0x000003fc"},
-    {{cs, r5, 0x000ff000}, false, al, "cs r5 0x000ff000", "cs_r5_0x000ff000"},
-    {{eq, r2, 0x0000ff00}, false, al, "eq r2 0x0000ff00", "eq_r2_0x0000ff00"},
-    {{pl, r10, 0x0ab00000}, false, al, "pl r10 0x0ab00000", "pl_r10_"
-                                                            "0x0ab00000"},
-    {{le, r11, 0xac000002}, false, al, "le r11 0xac000002", "le_r11_"
-                                                            "0xac000002"},
-    {{vs, r15, 0x00003fc0}, false, al, "vs r15 0x00003fc0", "vs_r15_"
-                                                            "0x00003fc0"},
-    {{lt, r2, 0x0002ac00}, false, al, "lt r2 0x0002ac00", "lt_r2_0x0002ac00"},
-    {{eq, r1, 0x00ab0000}, false, al, "eq r1 0x00ab0000", "eq_r1_0x00ab0000"},
-    {{cc, r7, 0x03fc0000}, false, al, "cc r7 0x03fc0000", "cc_r7_0x03fc0000"},
-    {{mi, r6, 0x00000ab0}, false, al, "mi r6 0x00000ab0", "mi_r6_0x00000ab0"},
-    {{eq, r4, 0x00000ab0}, false, al, "eq r4 0x00000ab0", "eq_r4_0x00000ab0"},
-    {{ls, r3, 0x0003fc00}, false, al, "ls r3 0x0003fc00", "ls_r3_0x0003fc00"},
-    {{mi, r6, 0x000ab000}, false, al, "mi r6 0x000ab000", "mi_r6_0x000ab000"},
-    {{ne, r12, 0x003fc000}, false, al, "ne r12 0x003fc000", "ne_r12_"
-                                                            "0x003fc000"},
-    {{eq, r11, 0x00ff0000}, false, al, "eq r11 0x00ff0000", "eq_r11_"
-                                                            "0x00ff0000"},
-    {{cs, r13, 0x00ab0000}, false, al, "cs r13 0x00ab0000", "cs_r13_"
-                                                            "0x00ab0000"},
-    {{eq, r5, 0x000003fc}, false, al, "eq r5 0x000003fc", "eq_r5_0x000003fc"},
-    {{vs, r6, 0x0003fc00}, false, al, "vs r6 0x0003fc00", "vs_r6_0x0003fc00"},
-    {{pl, r8, 0x0ff00000}, false, al, "pl r8 0x0ff00000", "pl_r8_0x0ff00000"},
-    {{pl, r11, 0x0000ab00}, false, al, "pl r11 0x0000ab00", "pl_r11_"
-                                                            "0x0000ab00"},
-    {{le, r2, 0xac000002}, false, al, "le r2 0xac000002", "le_r2_0xac000002"},
-    {{vc, r10, 0x000ff000}, false, al, "vc r10 0x000ff000", "vc_r10_"
-                                                            "0x000ff000"},
-    {{le, r4, 0x00000ff0}, false, al, "le r4 0x00000ff0", "le_r4_0x00000ff0"},
-    {{gt, r12, 0x00000ff0}, false, al, "gt r12 0x00000ff0", "gt_r12_"
-                                                            "0x00000ff0"},
-    {{le, r5, 0x0002ac00}, false, al, "le r5 0x0002ac00", "le_r5_0x0002ac00"},
-    {{le, r0, 0xac000002}, false, al, "le r0 0xac000002", "le_r0_0xac000002"},
-    {{vs, r11, 0x0ff00000}, false, al, "vs r11 0x0ff00000", "vs_r11_"
-                                                            "0x0ff00000"},
-    {{ls, r0, 0x000ab000}, false, al, "ls r0 0x000ab000", "ls_r0_0x000ab000"},
-    {{ls, r2, 0xf000000f}, false, al, "ls r2 0xf000000f", "ls_r2_0xf000000f"},
-    {{cs, r3, 0x0ff00000}, false, al, "cs r3 0x0ff00000", "cs_r3_0x0ff00000"},
-    {{hi, r8, 0x0ff00000}, false, al, "hi r8 0x0ff00000", "hi_r8_0x0ff00000"},
-    {{gt, r3, 0x00002ac0}, false, al, "gt r3 0x00002ac0", "gt_r3_0x00002ac0"},
-    {{al, r15, 0xab000000}, false, al, "al r15 0xab000000", "al_r15_"
-                                                            "0xab000000"},
-    {{eq, r13, 0x000000ab}, false, al, "eq r13 0x000000ab", "eq_r13_"
-                                                            "0x000000ab"},
-    {{al, r2, 0xc000002a}, false, al, "al r2 0xc000002a", "al_r2_0xc000002a"},
-    {{eq, r13, 0x03fc0000}, false, al, "eq r13 0x03fc0000", "eq_r13_"
-                                                            "0x03fc0000"},
-    {{eq, r3, 0x00000ff0}, false, al, "eq r3 0x00000ff0", "eq_r3_0x00000ff0"},
-    {{hi, r12, 0x00002ac0}, false, al, "hi r12 0x00002ac0", "hi_r12_"
-                                                            "0x00002ac0"},
-    {{mi, r2, 0x0ff00000}, false, al, "mi r2 0x0ff00000", "mi_r2_0x0ff00000"},
-    {{ne, r9, 0x003fc000}, false, al, "ne r9 0x003fc000", "ne_r9_0x003fc000"},
-    {{eq, r14, 0x03fc0000}, false, al, "eq r14 0x03fc0000", "eq_r14_"
-                                                            "0x03fc0000"},
-    {{cc, r0, 0x002ac000}, false, al, "cc r0 0x002ac000", "cc_r0_0x002ac000"},
-    {{vc, r14, 0x00000ab0}, false, al, "vc r14 0x00000ab0", "vc_r14_"
-                                                            "0x00000ab0"},
-    {{mi, r15, 0xf000000f}, false, al, "mi r15 0xf000000f", "mi_r15_"
-                                                            "0xf000000f"},
-    {{ge, r9, 0x000003fc}, false, al, "ge r9 0x000003fc", "ge_r9_0x000003fc"},
-    {{vs, r13, 0xac000002}, false, al, "vs r13 0xac000002", "vs_r13_"
-                                                            "0xac000002"},
-    {{vs, r1, 0x3fc00000}, false, al, "vs r1 0x3fc00000", "vs_r1_0x3fc00000"},
-    {{eq, r12, 0x00003fc0}, false, al, "eq r12 0x00003fc0", "eq_r12_"
-                                                            "0x00003fc0"},
-    {{mi, r6, 0xff000000}, false, al, "mi r6 0xff000000", "mi_r6_0xff000000"},
-    {{ne, r5, 0x000003fc}, false, al, "ne r5 0x000003fc", "ne_r5_0x000003fc"},
-    {{lt, r8, 0x0ff00000}, false, al, "lt r8 0x0ff00000", "lt_r8_0x0ff00000"},
-    {{hi, r7, 0x3fc00000}, false, al, "hi r7 0x3fc00000", "hi_r7_0x3fc00000"},
-    {{ge, r10, 0xac000002}, false, al, "ge r10 0xac000002", "ge_r10_"
-                                                            "0xac000002"},
-    {{vs, r2, 0x0000ff00}, false, al, "vs r2 0x0000ff00", "vs_r2_0x0000ff00"},
-    {{al, r6, 0x000000ab}, false, al, "al r6 0x000000ab", "al_r6_0x000000ab"},
-    {{ge, r7, 0x00ff0000}, false, al, "ge r7 0x00ff0000", "ge_r7_0x00ff0000"},
-    {{ne, r0, 0x000ff000}, false, al, "ne r0 0x000ff000", "ne_r0_0x000ff000"},
-    {{mi, r6, 0x000000ab}, false, al, "mi r6 0x000000ab", "mi_r6_0x000000ab"},
-    {{hi, r1, 0xf000000f}, false, al, "hi r1 0xf000000f", "hi_r1_0xf000000f"},
-    {{mi, r6, 0x2ac00000}, false, al, "mi r6 0x2ac00000", "mi_r6_0x2ac00000"},
-    {{vc, r11, 0x000000ff}, false, al, "vc r11 0x000000ff", "vc_r11_"
-                                                            "0x000000ff"},
-    {{ls, r14, 0x02ac0000}, false, al, "ls r14 0x02ac0000", "ls_r14_"
-                                                            "0x02ac0000"},
-    {{ge, r5, 0x003fc000}, false, al, "ge r5 0x003fc000", "ge_r5_0x003fc000"},
-    {{ls, r12, 0x0000ab00}, false, al, "ls r12 0x0000ab00", "ls_r12_"
-                                                            "0x0000ab00"},
-    {{cc, r15, 0x00000ab0}, false, al, "cc r15 0x00000ab0", "cc_r15_"
-                                                            "0x00000ab0"},
-    {{vc, r12, 0x0000ab00}, false, al, "vc r12 0x0000ab00", "vc_r12_"
-                                                            "0x0000ab00"},
-    {{vs, r2, 0xc000002a}, false, al, "vs r2 0xc000002a", "vs_r2_0xc000002a"},
-    {{lt, r7, 0x0ab00000}, false, al, "lt r7 0x0ab00000", "lt_r7_0x0ab00000"},
-    {{ls, r6, 0x00000ff0}, false, al, "ls r6 0x00000ff0", "ls_r6_0x00000ff0"},
-    {{vc, r10, 0x000000ff}, false, al, "vc r10 0x000000ff", "vc_r10_"
-                                                            "0x000000ff"},
-    {{ls, r4, 0x0000ab00}, false, al, "ls r4 0x0000ab00", "ls_r4_0x0000ab00"},
-    {{mi, r10, 0x003fc000}, false, al, "mi r10 0x003fc000", "mi_r10_"
-                                                            "0x003fc000"},
-    {{ls, r1, 0x000002ac}, false, al, "ls r1 0x000002ac", "ls_r1_0x000002ac"},
-    {{ge, r7, 0xb000000a}, false, al, "ge r7 0xb000000a", "ge_r7_0xb000000a"},
-    {{gt, r4, 0xf000000f}, false, al, "gt r4 0xf000000f", "gt_r4_0xf000000f"},
-    {{vc, r8, 0x002ac000}, false, al, "vc r8 0x002ac000", "vc_r8_0x002ac000"},
-    {{eq, r5, 0x0ab00000}, false, al, "eq r5 0x0ab00000", "eq_r5_0x0ab00000"},
-    {{gt, r2, 0xf000000f}, false, al, "gt r2 0xf000000f", "gt_r2_0xf000000f"},
-    {{gt, r6, 0xff000000}, false, al, "gt r6 0xff000000", "gt_r6_0xff000000"},
-    {{ls, r8, 0x0ab00000}, false, al, "ls r8 0x0ab00000", "ls_r8_0x0ab00000"},
-    {{vc, r0, 0xb000000a}, false, al, "vc r0 0xb000000a", "vc_r0_0xb000000a"},
-    {{lt, r6, 0x03fc0000}, false, al, "lt r6 0x03fc0000", "lt_r6_0x03fc0000"},
-    {{ge, r10, 0x0000ab00}, false, al, "ge r10 0x0000ab00", "ge_r10_"
-                                                            "0x0000ab00"},
-    {{hi, r4, 0x000ab000}, false, al, "hi r4 0x000ab000", "hi_r4_0x000ab000"},
-    {{hi, r11, 0x3fc00000}, false, al, "hi r11 0x3fc00000", "hi_r11_"
-                                                            "0x3fc00000"},
-    {{vs, r12, 0xc000003f}, false, al, "vs r12 0xc000003f", "vs_r12_"
-                                                            "0xc000003f"},
-    {{gt, r12, 0xb000000a}, false, al, "gt r12 0xb000000a", "gt_r12_"
-                                                            "0xb000000a"},
-    {{eq, r11, 0x2ac00000}, false, al, "eq r11 0x2ac00000", "eq_r11_"
-                                                            "0x2ac00000"},
-    {{hi, r0, 0xc000003f}, false, al, "hi r0 0xc000003f", "hi_r0_0xc000003f"},
-    {{cs, r12, 0xac000002}, false, al, "cs r12 0xac000002", "cs_r12_"
-                                                            "0xac000002"},
-    {{hi, r9, 0x3fc00000}, false, al, "hi r9 0x3fc00000", "hi_r9_0x3fc00000"},
-    {{vs, r2, 0x00002ac0}, false, al, "vs r2 0x00002ac0", "vs_r2_0x00002ac0"},
-    {{al, r12, 0xb000000a}, false, al, "al r12 0xb000000a", "al_r12_"
-                                                            "0xb000000a"},
-    {{gt, r12, 0x3fc00000}, false, al, "gt r12 0x3fc00000", "gt_r12_"
-                                                            "0x3fc00000"},
-    {{gt, r6, 0xf000000f}, false, al, "gt r6 0xf000000f", "gt_r6_0xf000000f"},
-    {{vc, r14, 0x000000ff}, false, al, "vc r14 0x000000ff", "vc_r14_"
-                                                            "0x000000ff"},
-    {{pl, r7, 0x0002ac00}, false, al, "pl r7 0x0002ac00", "pl_r7_0x0002ac00"},
-    {{ge, r1, 0x03fc0000}, false, al, "ge r1 0x03fc0000", "ge_r1_0x03fc0000"},
-    {{hi, r10, 0x0002ac00}, false, al, "hi r10 0x0002ac00", "hi_r10_"
-                                                            "0x0002ac00"},
-    {{gt, r4, 0x002ac000}, false, al, "gt r4 0x002ac000", "gt_r4_0x002ac000"},
-    {{vc, r5, 0x000000ff}, false, al, "vc r5 0x000000ff", "vc_r5_0x000000ff"},
-    {{pl, r15, 0x0000ab00}, false, al, "pl r15 0x0000ab00", "pl_r15_"
-                                                            "0x0000ab00"},
-    {{cc, r4, 0x00ab0000}, false, al, "cc r4 0x00ab0000", "cc_r4_0x00ab0000"},
-    {{pl, r11, 0xff000000}, false, al, "pl r11 0xff000000", "pl_r11_"
-                                                            "0xff000000"},
-    {{pl, r2, 0xf000000f}, false, al, "pl r2 0xf000000f", "pl_r2_0xf000000f"},
-    {{cc, r8, 0xb000000a}, false, al, "cc r8 0xb000000a", "cc_r8_0xb000000a"},
-    {{al, r13, 0x000000ff}, false, al, "al r13 0x000000ff", "al_r13_"
-                                                            "0x000000ff"},
-    {{mi, r6, 0x000003fc}, false, al, "mi r6 0x000003fc", "mi_r6_0x000003fc"},
-    {{vs, r13, 0x02ac0000}, false, al, "vs r13 0x02ac0000", "vs_r13_"
-                                                            "0x02ac0000"},
-    {{mi, r4, 0x00ff0000}, false, al, "mi r4 0x00ff0000", "mi_r4_0x00ff0000"},
-    {{cs, r3, 0x000003fc}, false, al, "cs r3 0x000003fc", "cs_r3_0x000003fc"},
-    {{pl, r13, 0xab000000}, false, al, "pl r13 0xab000000", "pl_r13_"
-                                                            "0xab000000"},
-    {{ls, r9, 0x002ac000}, false, al, "ls r9 0x002ac000", "ls_r9_0x002ac000"},
-    {{eq, r1, 0xc000002a}, false, al, "eq r1 0xc000002a", "eq_r1_0xc000002a"},
-    {{lt, r12, 0x00000000}, false, al, "lt r12 0x00000000", "lt_r12_"
-                                                            "0x00000000"},
-    {{ge, r14, 0xff000000}, false, al, "ge r14 0xff000000", "ge_r14_"
-                                                            "0xff000000"},
-    {{lt, r9, 0x002ac000}, false, al, "lt r9 0x002ac000", "lt_r9_0x002ac000"},
-    {{lt, r10, 0x00000ff0}, false, al, "lt r10 0x00000ff0", "lt_r10_"
-                                                            "0x00000ff0"},
-    {{vs, r5, 0x000000ff}, false, al, "vs r5 0x000000ff", "vs_r5_0x000000ff"},
-    {{cc, r12, 0x03fc0000}, false, al, "cc r12 0x03fc0000", "cc_r12_"
-                                                            "0x03fc0000"},
-    {{ne, r4, 0x00000000}, false, al, "ne r4 0x00000000", "ne_r4_0x00000000"},
-    {{mi, r13, 0xff000000}, false, al, "mi r13 0xff000000", "mi_r13_"
-                                                            "0xff000000"},
-    {{ne, r7, 0x00000ff0}, false, al, "ne r7 0x00000ff0", "ne_r7_0x00000ff0"},
-    {{vs, r2, 0xc000003f}, false, al, "vs r2 0xc000003f", "vs_r2_0xc000003f"},
-    {{al, r5, 0x00ff0000}, false, al, "al r5 0x00ff0000", "al_r5_0x00ff0000"},
-    {{hi, r15, 0x00000ff0}, false, al, "hi r15 0x00000ff0", "hi_r15_"
-                                                            "0x00000ff0"},
-    {{ls, r8, 0x00003fc0}, false, al, "ls r8 0x00003fc0", "ls_r8_0x00003fc0"},
-    {{vs, r0, 0xff000000}, false, al, "vs r0 0xff000000", "vs_r0_0xff000000"},
-    {{vs, r6, 0x000000ab}, false, al, "vs r6 0x000000ab", "vs_r6_0x000000ab"},
-    {{cs, r9, 0x00ab0000}, false, al, "cs r9 0x00ab0000", "cs_r9_0x00ab0000"},
-    {{hi, r1, 0x0002ac00}, false, al, "hi r1 0x0002ac00", "hi_r1_0x0002ac00"},
-    {{hi, r15, 0x2ac00000}, false, al, "hi r15 0x2ac00000", "hi_r15_"
-                                                            "0x2ac00000"},
-    {{hi, r6, 0x0002ac00}, false, al, "hi r6 0x0002ac00", "hi_r6_0x0002ac00"},
-    {{ge, r4, 0xc000003f}, false, al, "ge r4 0xc000003f", "ge_r4_0xc000003f"},
-    {{ls, r10, 0x0000ff00}, false, al, "ls r10 0x0000ff00", "ls_r10_"
-                                                            "0x0000ff00"},
-    {{ne, r11, 0x000003fc}, false, al, "ne r11 0x000003fc", "ne_r11_"
-                                                            "0x000003fc"},
-    {{ls, r3, 0x0002ac00}, false, al, "ls r3 0x0002ac00", "ls_r3_0x0002ac00"},
-    {{al, r12, 0x000003fc}, false, al, "al r12 0x000003fc", "al_r12_"
-                                                            "0x000003fc"},
-    {{le, r7, 0xf000000f}, false, al, "le r7 0xf000000f", "le_r7_0xf000000f"},
-    {{al, r11, 0x00000ab0}, false, al, "al r11 0x00000ab0", "al_r11_"
-                                                            "0x00000ab0"},
-    {{cs, r13, 0x02ac0000}, false, al, "cs r13 0x02ac0000", "cs_r13_"
-                                                            "0x02ac0000"},
-    {{hi, r1, 0x00000ff0}, false, al, "hi r1 0x00000ff0", "hi_r1_0x00000ff0"},
-    {{le, r11, 0x3fc00000}, false, al, "le r11 0x3fc00000", "le_r11_"
-                                                            "0x3fc00000"},
-    {{hi, r9, 0x000003fc}, false, al, "hi r9 0x000003fc", "hi_r9_0x000003fc"},
-    {{mi, r13, 0x000002ac}, false, al, "mi r13 0x000002ac", "mi_r13_"
-                                                            "0x000002ac"},
-    {{lt, r12, 0x000003fc}, false, al, "lt r12 0x000003fc", "lt_r12_"
-                                                            "0x000003fc"},
-    {{lt, r14, 0x00000ab0}, false, al, "lt r14 0x00000ab0", "lt_r14_"
-                                                            "0x00000ab0"},
-    {{gt, r1, 0x3fc00000}, false, al, "gt r1 0x3fc00000", "gt_r1_0x3fc00000"},
-    {{cc, r14, 0xb000000a}, false, al, "cc r14 0xb000000a", "cc_r14_"
-                                                            "0xb000000a"},
-    {{ge, r0, 0x000002ac}, false, al, "ge r0 0x000002ac", "ge_r0_0x000002ac"},
-    {{eq, r12, 0x000003fc}, false, al, "eq r12 0x000003fc", "eq_r12_"
-                                                            "0x000003fc"},
-    {{vc, r13, 0x0ab00000}, false, al, "vc r13 0x0ab00000", "vc_r13_"
-                                                            "0x0ab00000"},
-    {{pl, r10, 0x0003fc00}, false, al, "pl r10 0x0003fc00", "pl_r10_"
-                                                            "0x0003fc00"},
-    {{le, r7, 0x0000ff00}, false, al, "le r7 0x0000ff00", "le_r7_0x0000ff00"},
-    {{eq, r5, 0x0003fc00}, false, al, "eq r5 0x0003fc00", "eq_r5_0x0003fc00"},
-    {{pl, r1, 0xfc000003}, false, al, "pl r1 0xfc000003", "pl_r1_0xfc000003"},
-    {{gt, r15, 0x000ff000}, false, al, "gt r15 0x000ff000", "gt_r15_"
-                                                            "0x000ff000"},
-    {{mi, r2, 0xb000000a}, false, al, "mi r2 0xb000000a", "mi_r2_0xb000000a"},
-    {{cs, r8, 0x0000ff00}, false, al, "cs r8 0x0000ff00", "cs_r8_0x0000ff00"},
-    {{vs, r8, 0x00002ac0}, false, al, "vs r8 0x00002ac0", "vs_r8_0x00002ac0"},
-    {{cs, r5, 0x00ab0000}, false, al, "cs r5 0x00ab0000", "cs_r5_0x00ab0000"},
-    {{pl, r3, 0x00ab0000}, false, al, "pl r3 0x00ab0000", "pl_r3_0x00ab0000"},
-    {{hi, r5, 0x02ac0000}, false, al, "hi r5 0x02ac0000", "hi_r5_0x02ac0000"},
-    {{cc, r9, 0x000002ac}, false, al, "cc r9 0x000002ac", "cc_r9_0x000002ac"},
-    {{ls, r13, 0x0000ab00}, false, al, "ls r13 0x0000ab00", "ls_r13_"
-                                                            "0x0000ab00"},
-    {{pl, r11, 0x00000ab0}, false, al, "pl r11 0x00000ab0", "pl_r11_"
-                                                            "0x00000ab0"},
-    {{ge, r14, 0x3fc00000}, false, al, "ge r14 0x3fc00000", "ge_r14_"
-                                                            "0x3fc00000"},
-    {{al, r14, 0x0000ab00}, false, al, "al r14 0x0000ab00", "al_r14_"
-                                                            "0x0000ab00"},
-    {{lt, r6, 0xac000002}, false, al, "lt r6 0xac000002", "lt_r6_0xac000002"},
-    {{vc, r3, 0x000ff000}, false, al, "vc r3 0x000ff000", "vc_r3_0x000ff000"},
-    {{ne, r8, 0xfc000003}, false, al, "ne r8 0xfc000003", "ne_r8_0xfc000003"},
-    {{cs, r6, 0x000ab000}, false, al, "cs r6 0x000ab000", "cs_r6_0x000ab000"},
-    {{hi, r15, 0x0002ac00}, false, al, "hi r15 0x0002ac00", "hi_r15_"
-                                                            "0x0002ac00"},
-    {{pl, r6, 0x00000ff0}, false, al, "pl r6 0x00000ff0", "pl_r6_0x00000ff0"},
-    {{hi, r15, 0x03fc0000}, false, al, "hi r15 0x03fc0000", "hi_r15_"
-                                                            "0x03fc0000"},
-    {{cc, r6, 0x0003fc00}, false, al, "cc r6 0x0003fc00", "cc_r6_0x0003fc00"},
-    {{eq, r12, 0x000002ac}, false, al, "eq r12 0x000002ac", "eq_r12_"
-                                                            "0x000002ac"},
-    {{ls, r11, 0x02ac0000}, false, al, "ls r11 0x02ac0000", "ls_r11_"
-                                                            "0x02ac0000"},
-    {{ge, r13, 0x00ff0000}, false, al, "ge r13 0x00ff0000", "ge_r13_"
-                                                            "0x00ff0000"},
-    {{lt, r4, 0x0003fc00}, false, al, "lt r4 0x0003fc00", "lt_r4_0x0003fc00"},
-    {{mi, r0, 0x0000ab00}, false, al, "mi r0 0x0000ab00", "mi_r0_0x0000ab00"},
-    {{lt, r4, 0x000000ab}, false, al, "lt r4 0x000000ab", "lt_r4_0x000000ab"},
-    {{ls, r2, 0xc000003f}, false, al, "ls r2 0xc000003f", "ls_r2_0xc000003f"},
-    {{pl, r1, 0x000000ab}, false, al, "pl r1 0x000000ab", "pl_r1_0x000000ab"},
-    {{ne, r10, 0x0000ff00}, false, al, "ne r10 0x0000ff00", "ne_r10_"
-                                                            "0x0000ff00"},
-    {{vc, r15, 0x00000ab0}, false, al, "vc r15 0x00000ab0", "vc_r15_"
-                                                            "0x00000ab0"},
-    {{eq, r6, 0x02ac0000}, false, al, "eq r6 0x02ac0000", "eq_r6_0x02ac0000"},
-    {{cc, r11, 0x00000000}, false, al, "cc r11 0x00000000", "cc_r11_"
-                                                            "0x00000000"},
-    {{mi, r7, 0x002ac000}, false, al, "mi r7 0x002ac000", "mi_r7_0x002ac000"},
-    {{hi, r14, 0xab000000}, false, al, "hi r14 0xab000000", "hi_r14_"
-                                                            "0xab000000"},
-    {{vc, r6, 0x0000ff00}, false, al, "vc r6 0x0000ff00", "vc_r6_0x0000ff00"},
-    {{al, r5, 0x000002ac}, false, al, "al r5 0x000002ac", "al_r5_0x000002ac"},
-    {{cc, r12, 0x0002ac00}, false, al, "cc r12 0x0002ac00", "cc_r12_"
-                                                            "0x0002ac00"},
-    {{cc, r10, 0x000000ab}, false, al, "cc r10 0x000000ab", "cc_r10_"
-                                                            "0x000000ab"},
-    {{gt, r5, 0x000002ac}, false, al, "gt r5 0x000002ac", "gt_r5_0x000002ac"},
-    {{vc, r3, 0x00000000}, false, al, "vc r3 0x00000000", "vc_r3_0x00000000"},
-    {{gt, r12, 0xac000002}, false, al, "gt r12 0xac000002", "gt_r12_"
-                                                            "0xac000002"},
-    {{al, r10, 0x00ab0000}, false, al, "al r10 0x00ab0000", "al_r10_"
-                                                            "0x00ab0000"},
-    {{mi, r5, 0x000ff000}, false, al, "mi r5 0x000ff000", "mi_r5_0x000ff000"},
-    {{pl, r1, 0x00000ff0}, false, al, "pl r1 0x00000ff0", "pl_r1_0x00000ff0"},
-    {{lt, r7, 0xf000000f}, false, al, "lt r7 0xf000000f", "lt_r7_0xf000000f"},
-    {{ge, r14, 0x002ac000}, false, al, "ge r14 0x002ac000", "ge_r14_"
-                                                            "0x002ac000"},
-    {{cc, r0, 0xac000002}, false, al, "cc r0 0xac000002", "cc_r0_0xac000002"},
-    {{cs, r2, 0x00000ab0}, false, al, "cs r2 0x00000ab0", "cs_r2_0x00000ab0"},
-    {{vs, r0, 0x00002ac0}, false, al, "vs r0 0x00002ac0", "vs_r0_0x00002ac0"},
-    {{le, r10, 0x000ab000}, false, al, "le r10 0x000ab000", "le_r10_"
-                                                            "0x000ab000"},
-    {{ge, r9, 0x0003fc00}, false, al, "ge r9 0x0003fc00", "ge_r9_0x0003fc00"},
-    {{lt, r1, 0x00003fc0}, false, al, "lt r1 0x00003fc0", "lt_r1_0x00003fc0"},
-    {{ge, r5, 0x000000ff}, false, al, "ge r5 0x000000ff", "ge_r5_0x000000ff"},
-    {{le, r11, 0x2ac00000}, false, al, "le r11 0x2ac00000", "le_r11_"
-                                                            "0x2ac00000"},
-    {{le, r9, 0x002ac000}, false, al, "le r9 0x002ac000", "le_r9_0x002ac000"},
-    {{hi, r12, 0xf000000f}, false, al, "hi r12 0xf000000f", "hi_r12_"
-                                                            "0xf000000f"},
-    {{lt, r3, 0x02ac0000}, false, al, "lt r3 0x02ac0000", "lt_r3_0x02ac0000"},
-    {{al, r13, 0x2ac00000}, false, al, "al r13 0x2ac00000", "al_r13_"
-                                                            "0x2ac00000"},
-    {{vs, r12, 0x00000ab0}, false, al, "vs r12 0x00000ab0", "vs_r12_"
-                                                            "0x00000ab0"},
-    {{gt, r3, 0x3fc00000}, false, al, "gt r3 0x3fc00000", "gt_r3_0x3fc00000"},
-    {{gt, r0, 0x2ac00000}, false, al, "gt r0 0x2ac00000", "gt_r0_0x2ac00000"},
-    {{eq, r15, 0x000002ac}, false, al, "eq r15 0x000002ac", "eq_r15_"
-                                                            "0x000002ac"},
-    {{gt, r1, 0x000ab000}, false, al, "gt r1 0x000ab000", "gt_r1_0x000ab000"},
-    {{gt, r2, 0x2ac00000}, false, al, "gt r2 0x2ac00000", "gt_r2_0x2ac00000"},
-    {{mi, r15, 0x00ab0000}, false, al, "mi r15 0x00ab0000", "mi_r15_"
-                                                            "0x00ab0000"},
-    {{mi, r1, 0x000ab000}, false, al, "mi r1 0x000ab000", "mi_r1_0x000ab000"},
-    {{ge, r12, 0x0ab00000}, false, al, "ge r12 0x0ab00000", "ge_r12_"
-                                                            "0x0ab00000"},
-    {{gt, r5, 0x000000ab}, false, al, "gt r5 0x000000ab", "gt_r5_0x000000ab"},
-    {{gt, r4, 0x00000000}, false, al, "gt r4 0x00000000", "gt_r4_0x00000000"},
-    {{al, r13, 0xc000003f}, false, al, "al r13 0xc000003f", "al_r13_"
-                                                            "0xc000003f"},
-    {{ls, r7, 0xff000000}, false, al, "ls r7 0xff000000", "ls_r7_0xff000000"},
-    {{vs, r0, 0x00000ff0}, false, al, "vs r0 0x00000ff0", "vs_r0_0x00000ff0"},
-    {{hi, r9, 0x02ac0000}, false, al, "hi r9 0x02ac0000", "hi_r9_0x02ac0000"},
-    {{cs, r1, 0xc000002a}, false, al, "cs r1 0xc000002a", "cs_r1_0xc000002a"},
-    {{hi, r8, 0xf000000f}, false, al, "hi r8 0xf000000f", "hi_r8_0xf000000f"},
-    {{gt, r1, 0xb000000a}, false, al, "gt r1 0xb000000a", "gt_r1_0xb000000a"},
-    {{gt, r2, 0x0002ac00}, false, al, "gt r2 0x0002ac00", "gt_r2_0x0002ac00"},
-    {{vs, r5, 0x000000ab}, false, al, "vs r5 0x000000ab", "vs_r5_0x000000ab"},
-    {{cc, r12, 0x000ff000}, false, al, "cc r12 0x000ff000", "cc_r12_"
-                                                            "0x000ff000"},
-    {{ge, r0, 0x00003fc0}, false, al, "ge r0 0x00003fc0", "ge_r0_0x00003fc0"},
-    {{ls, r12, 0x00ab0000}, false, al, "ls r12 0x00ab0000", "ls_r12_"
-                                                            "0x00ab0000"},
-    {{vs, r4, 0x000003fc}, false, al, "vs r4 0x000003fc", "vs_r4_0x000003fc"},
-    {{ls, r4, 0x00003fc0}, false, al, "ls r4 0x00003fc0", "ls_r4_0x00003fc0"},
-    {{eq, r9, 0xb000000a}, false, al, "eq r9 0xb000000a", "eq_r9_0xb000000a"},
-    {{cs, r9, 0x2ac00000}, false, al, "cs r9 0x2ac00000", "cs_r9_0x2ac00000"},
-    {{vs, r12, 0x0000ff00}, false, al, "vs r12 0x0000ff00", "vs_r12_"
-                                                            "0x0000ff00"},
-    {{vc, r1, 0x0000ff00}, false, al, "vc r1 0x0000ff00", "vc_r1_0x0000ff00"},
-    {{hi, r12, 0xff000000}, false, al, "hi r12 0xff000000", "hi_r12_"
-                                                            "0xff000000"},
-    {{cs, r12, 0x0002ac00}, false, al, "cs r12 0x0002ac00", "cs_r12_"
-                                                            "0x0002ac00"},
-    {{mi, r11, 0x03fc0000}, false, al, "mi r11 0x03fc0000", "mi_r11_"
-                                                            "0x03fc0000"},
-    {{eq, r2, 0x000ff000}, false, al, "eq r2 0x000ff000", "eq_r2_0x000ff000"},
-    {{al, r6, 0x00000ff0}, false, al, "al r6 0x00000ff0", "al_r6_0x00000ff0"},
-    {{cs, r7, 0x000003fc}, false, al, "cs r7 0x000003fc", "cs_r7_0x000003fc"},
-    {{pl, r11, 0xb000000a}, false, al, "pl r11 0xb000000a", "pl_r11_"
-                                                            "0xb000000a"},
-    {{ne, r15, 0x000ff000}, false, al, "ne r15 0x000ff000", "ne_r15_"
-                                                            "0x000ff000"},
-    {{mi, r14, 0x00ab0000}, false, al, "mi r14 0x00ab0000", "mi_r14_"
-                                                            "0x00ab0000"},
-    {{hi, r4, 0x0000ff00}, false, al, "hi r4 0x0000ff00", "hi_r4_0x0000ff00"},
-    {{ge, r1, 0x000002ac}, false, al, "ge r1 0x000002ac", "ge_r1_0x000002ac"},
-    {{gt, r7, 0xb000000a}, false, al, "gt r7 0xb000000a", "gt_r7_0xb000000a"},
-    {{gt, r2, 0x00000000}, false, al, "gt r2 0x00000000", "gt_r2_0x00000000"},
-    {{cc, r2, 0xb000000a}, false, al, "cc r2 0xb000000a", "cc_r2_0xb000000a"},
-    {{vs, r14, 0x000ab000}, false, al, "vs r14 0x000ab000", "vs_r14_"
-                                                            "0x000ab000"},
-    {{lt, r5, 0x000002ac}, false, al, "lt r5 0x000002ac", "lt_r5_0x000002ac"},
-    {{cc, r13, 0x0000ff00}, false, al, "cc r13 0x0000ff00", "cc_r13_"
-                                                            "0x0000ff00"},
-    {{hi, r15, 0x000002ac}, false, al, "hi r15 0x000002ac", "hi_r15_"
-                                                            "0x000002ac"},
-    {{ge, r1, 0x00ff0000}, false, al, "ge r1 0x00ff0000", "ge_r1_0x00ff0000"},
-    {{lt, r15, 0x00002ac0}, false, al, "lt r15 0x00002ac0", "lt_r15_"
-                                                            "0x00002ac0"},
-    {{lt, r8, 0x000ff000}, false, al, "lt r8 0x000ff000", "lt_r8_0x000ff000"},
-    {{hi, r10, 0xc000002a}, false, al, "hi r10 0xc000002a", "hi_r10_"
-                                                            "0xc000002a"},
-    {{eq, r12, 0x000ab000}, false, al, "eq r12 0x000ab000", "eq_r12_"
-                                                            "0x000ab000"},
-    {{vs, r11, 0x00002ac0}, false, al, "vs r11 0x00002ac0", "vs_r11_"
-                                                            "0x00002ac0"},
-    {{hi, r10, 0x000003fc}, false, al, "hi r10 0x000003fc", "hi_r10_"
-                                                            "0x000003fc"},
-    {{cc, r8, 0x000003fc}, false, al, "cc r8 0x000003fc", "cc_r8_0x000003fc"},
-    {{vc, r11, 0x00000ab0}, false, al, "vc r11 0x00000ab0", "vc_r11_"
-                                                            "0x00000ab0"},
-    {{le, r3, 0xac000002}, false, al, "le r3 0xac000002", "le_r3_0xac000002"},
-    {{cc, r11, 0xc000002a}, false, al, "cc r11 0xc000002a", "cc_r11_"
-                                                            "0xc000002a"},
-    {{lt, r6, 0xab000000}, false, al, "lt r6 0xab000000", "lt_r6_0xab000000"},
-    {{hi, r1, 0x00003fc0}, false, al, "hi r1 0x00003fc0", "hi_r1_0x00003fc0"},
-    {{vc, r3, 0x00002ac0}, false, al, "vc r3 0x00002ac0", "vc_r3_0x00002ac0"},
-    {{vc, r6, 0x00000ab0}, false, al, "vc r6 0x00000ab0", "vc_r6_0x00000ab0"},
-    {{ls, r6, 0x03fc0000}, false, al, "ls r6 0x03fc0000", "ls_r6_0x03fc0000"},
-    {{hi, r11, 0x0ab00000}, false, al, "hi r11 0x0ab00000", "hi_r11_"
-                                                            "0x0ab00000"},
-    {{lt, r12, 0x0002ac00}, false, al, "lt r12 0x0002ac00", "lt_r12_"
-                                                            "0x0002ac00"},
-    {{al, r8, 0xab000000}, false, al, "al r8 0xab000000", "al_r8_0xab000000"},
-    {{vs, r2, 0x00000ab0}, false, al, "vs r2 0x00000ab0", "vs_r2_0x00000ab0"},
-    {{hi, r14, 0x02ac0000}, false, al, "hi r14 0x02ac0000", "hi_r14_"
-                                                            "0x02ac0000"},
-    {{cs, r3, 0x00000ff0}, false, al, "cs r3 0x00000ff0", "cs_r3_0x00000ff0"},
-    {{cc, r9, 0xb000000a}, false, al, "cc r9 0xb000000a", "cc_r9_0xb000000a"},
-    {{vc, r9, 0x00000ff0}, false, al, "vc r9 0x00000ff0", "vc_r9_0x00000ff0"},
-    {{ne, r9, 0xab000000}, false, al, "ne r9 0xab000000", "ne_r9_0xab000000"},
-    {{cc, r10, 0xb000000a}, false, al, "cc r10 0xb000000a", "cc_r10_"
-                                                            "0xb000000a"},
-    {{ls, r11, 0xb000000a}, false, al, "ls r11 0xb000000a", "ls_r11_"
-                                                            "0xb000000a"},
-    {{lt, r11, 0x00ff0000}, false, al, "lt r11 0x00ff0000", "lt_r11_"
-                                                            "0x00ff0000"},
-    {{lt, r3, 0x000003fc}, false, al, "lt r3 0x000003fc", "lt_r3_0x000003fc"},
-    {{gt, r14, 0x00002ac0}, false, al, "gt r14 0x00002ac0", "gt_r14_"
-                                                            "0x00002ac0"},
-    {{ls, r8, 0xc000003f}, false, al, "ls r8 0xc000003f", "ls_r8_0xc000003f"},
-    {{al, r11, 0x000ab000}, false, al, "al r11 0x000ab000", "al_r11_"
-                                                            "0x000ab000"},
-    {{lt, r7, 0x000ab000}, false, al, "lt r7 0x000ab000", "lt_r7_0x000ab000"},
-    {{vs, r14, 0xff000000}, false, al, "vs r14 0xff000000", "vs_r14_"
-                                                            "0xff000000"},
-    {{vc, r2, 0xab000000}, false, al, "vc r2 0xab000000", "vc_r2_0xab000000"},
-    {{ne, r3, 0x00000ff0}, false, al, "ne r3 0x00000ff0", "ne_r3_0x00000ff0"},
-    {{ne, r15, 0x02ac0000}, false, al, "ne r15 0x02ac0000", "ne_r15_"
-                                                            "0x02ac0000"},
-    {{gt, r3, 0x000ff000}, false, al, "gt r3 0x000ff000", "gt_r3_0x000ff000"},
-    {{pl, r1, 0x2ac00000}, false, al, "pl r1 0x2ac00000", "pl_r1_0x2ac00000"},
-    {{mi, r1, 0x00002ac0}, false, al, "mi r1 0x00002ac0", "mi_r1_0x00002ac0"},
-    {{vc, r6, 0xac000002}, false, al, "vc r6 0xac000002", "vc_r6_0xac000002"},
-    {{vs, r2, 0x0ff00000}, false, al, "vs r2 0x0ff00000", "vs_r2_0x0ff00000"},
-    {{ge, r2, 0x000003fc}, false, al, "ge r2 0x000003fc", "ge_r2_0x000003fc"},
-    {{cs, r15, 0x0000ff00}, false, al, "cs r15 0x0000ff00", "cs_r15_"
-                                                            "0x0000ff00"},
-    {{lt, r3, 0x000002ac}, false, al, "lt r3 0x000002ac", "lt_r3_0x000002ac"},
-    {{cs, r6, 0xff000000}, false, al, "cs r6 0xff000000", "cs_r6_0xff000000"},
-    {{ge, r14, 0x000000ff}, false, al, "ge r14 0x000000ff", "ge_r14_"
-                                                            "0x000000ff"},
-    {{gt, r7, 0x03fc0000}, false, al, "gt r7 0x03fc0000", "gt_r7_0x03fc0000"},
-    {{ne, r8, 0x000ff000}, false, al, "ne r8 0x000ff000", "ne_r8_0x000ff000"},
-    {{gt, r14, 0xc000002a}, false, al, "gt r14 0xc000002a", "gt_r14_"
-                                                            "0xc000002a"},
-    {{hi, r12, 0x0000ff00}, false, al, "hi r12 0x0000ff00", "hi_r12_"
-                                                            "0x0000ff00"},
-    {{le, r15, 0x00003fc0}, false, al, "le r15 0x00003fc0", "le_r15_"
-                                                            "0x00003fc0"},
-    {{eq, r13, 0x000ab000}, false, al, "eq r13 0x000ab000", "eq_r13_"
-                                                            "0x000ab000"},
-    {{vc, r7, 0x000ab000}, false, al, "vc r7 0x000ab000", "vc_r7_0x000ab000"},
-    {{gt, r7, 0xf000000f}, false, al, "gt r7 0xf000000f", "gt_r7_0xf000000f"},
-    {{cc, r6, 0xac000002}, false, al, "cc r6 0xac000002", "cc_r6_0xac000002"},
-    {{cs, r14, 0x000000ff}, false, al, "cs r14 0x000000ff", "cs_r14_"
-                                                            "0x000000ff"},
-    {{ne, r2, 0x0003fc00}, false, al, "ne r2 0x0003fc00", "ne_r2_0x0003fc00"},
-    {{vs, r1, 0x002ac000}, false, al, "vs r1 0x002ac000", "vs_r1_0x002ac000"},
-    {{eq, r8, 0x002ac000}, false, al, "eq r8 0x002ac000", "eq_r8_0x002ac000"},
-    {{lt, r8, 0x0000ff00}, false, al, "lt r8 0x0000ff00", "lt_r8_0x0000ff00"},
-    {{vs, r9, 0xc000003f}, false, al, "vs r9 0xc000003f", "vs_r9_0xc000003f"},
-    {{mi, r11, 0xff000000}, false, al, "mi r11 0xff000000", "mi_r11_"
-                                                            "0xff000000"},
-    {{cs, r12, 0x03fc0000}, false, al, "cs r12 0x03fc0000", "cs_r12_"
-                                                            "0x03fc0000"},
-    {{lt, r5, 0xc000002a}, false, al, "lt r5 0xc000002a", "lt_r5_0xc000002a"},
-    {{vc, r6, 0x000000ab}, false, al, "vc r6 0x000000ab", "vc_r6_0x000000ab"},
-    {{ls, r10, 0x0ab00000}, false, al, "ls r10 0x0ab00000", "ls_r10_"
-                                                            "0x0ab00000"},
-    {{al, r11, 0x00ff0000}, false, al, "al r11 0x00ff0000", "al_r11_"
-                                                            "0x00ff0000"},
-    {{hi, r13, 0x00000ab0}, false, al, "hi r13 0x00000ab0", "hi_r13_"
-                                                            "0x00000ab0"},
-    {{ls, r0, 0xab000000}, false, al, "ls r0 0xab000000", "ls_r0_0xab000000"},
-    {{le, r5, 0xab000000}, false, al, "le r5 0xab000000", "le_r5_0xab000000"},
-    {{vs, r4, 0x00ff0000}, false, al, "vs r4 0x00ff0000", "vs_r4_0x00ff0000"},
-    {{al, r10, 0x03fc0000}, false, al, "al r10 0x03fc0000", "al_r10_"
-                                                            "0x03fc0000"},
-    {{al, r8, 0x000003fc}, false, al, "al r8 0x000003fc", "al_r8_0x000003fc"},
-    {{vs, r11, 0xab000000}, false, al, "vs r11 0xab000000", "vs_r11_"
-                                                            "0xab000000"},
-    {{eq, r2, 0x00000ff0}, false, al, "eq r2 0x00000ff0", "eq_r2_0x00000ff0"},
-    {{vc, r4, 0x00000ff0}, false, al, "vc r4 0x00000ff0", "vc_r4_0x00000ff0"},
-    {{vc, r9, 0x00002ac0}, false, al, "vc r9 0x00002ac0", "vc_r9_0x00002ac0"},
-    {{cc, r11, 0x00ff0000}, false, al, "cc r11 0x00ff0000", "cc_r11_"
-                                                            "0x00ff0000"},
-    {{cc, r13, 0x00ff0000}, false, al, "cc r13 0x00ff0000", "cc_r13_"
-                                                            "0x00ff0000"},
-    {{pl, r0, 0x00000ab0}, false, al, "pl r0 0x00000ab0", "pl_r0_0x00000ab0"},
-    {{al, r2, 0x02ac0000}, false, al, "al r2 0x02ac0000", "al_r2_0x02ac0000"},
-    {{hi, r11, 0xc000002a}, false, al, "hi r11 0xc000002a", "hi_r11_"
-                                                            "0xc000002a"},
-    {{ne, r3, 0xf000000f}, false, al, "ne r3 0xf000000f", "ne_r3_0xf000000f"},
-    {{cc, r15, 0x0ab00000}, false, al, "cc r15 0x0ab00000", "cc_r15_"
-                                                            "0x0ab00000"},
-    {{ge, r12, 0x00ff0000}, false, al, "ge r12 0x00ff0000", "ge_r12_"
-                                                            "0x00ff0000"},
-    {{le, r12, 0x002ac000}, false, al, "le r12 0x002ac000", "le_r12_"
-                                                            "0x002ac000"},
-    {{mi, r12, 0xc000003f}, false, al, "mi r12 0xc000003f", "mi_r12_"
-                                                            "0xc000003f"},
-    {{lt, r0, 0xfc000003}, false, al, "lt r0 0xfc000003", "lt_r0_0xfc000003"},
-    {{vc, r15, 0x000ab000}, false, al, "vc r15 0x000ab000", "vc_r15_"
-                                                            "0x000ab000"},
-    {{pl, r5, 0x3fc00000}, false, al, "pl r5 0x3fc00000", "pl_r5_0x3fc00000"},
-    {{vs, r15, 0x00ab0000}, false, al, "vs r15 0x00ab0000", "vs_r15_"
-                                                            "0x00ab0000"},
-    {{hi, r3, 0x00ff0000}, false, al, "hi r3 0x00ff0000", "hi_r3_0x00ff0000"},
-    {{lt, r8, 0x000000ff}, false, al, "lt r8 0x000000ff", "lt_r8_0x000000ff"},
-    {{le, r2, 0x000000ff}, false, al, "le r2 0x000000ff", "le_r2_0x000000ff"},
-    {{vs, r0, 0x0002ac00}, false, al, "vs r0 0x0002ac00", "vs_r0_0x0002ac00"},
-    {{vs, r2, 0xff000000}, false, al, "vs r2 0xff000000", "vs_r2_0xff000000"},
-    {{pl, r6, 0xab000000}, false, al, "pl r6 0xab000000", "pl_r6_0xab000000"},
-    {{ls, r4, 0x3fc00000}, false, al, "ls r4 0x3fc00000", "ls_r4_0x3fc00000"},
-    {{ls, r3, 0x000ab000}, false, al, "ls r3 0x000ab000", "ls_r3_0x000ab000"},
-    {{eq, r11, 0x000ab000}, false, al, "eq r11 0x000ab000", "eq_r11_"
-                                                            "0x000ab000"},
-    {{vc, r6, 0x03fc0000}, false, al, "vc r6 0x03fc0000", "vc_r6_0x03fc0000"},
-    {{mi, r14, 0x0000ab00}, false, al, "mi r14 0x0000ab00", "mi_r14_"
-                                                            "0x0000ab00"},
-    {{pl, r8, 0xab000000}, false, al, "pl r8 0xab000000", "pl_r8_0xab000000"},
-    {{pl, r8, 0xc000003f}, false, al, "pl r8 0xc000003f", "pl_r8_0xc000003f"},
-    {{eq, r14, 0x003fc000}, false, al, "eq r14 0x003fc000", "eq_r14_"
-                                                            "0x003fc000"},
-    {{vs, r9, 0x00ff0000}, false, al, "vs r9 0x00ff0000", "vs_r9_0x00ff0000"},
-    {{vs, r1, 0x00002ac0}, false, al, "vs r1 0x00002ac0", "vs_r1_0x00002ac0"},
-    {{le, r1, 0x00ff0000}, false, al, "le r1 0x00ff0000", "le_r1_0x00ff0000"},
-    {{lt, r7, 0x000ff000}, false, al, "lt r7 0x000ff000", "lt_r7_0x000ff000"},
-    {{mi, r6, 0x002ac000}, false, al, "mi r6 0x002ac000", "mi_r6_0x002ac000"},
-    {{vc, r11, 0xc000003f}, false, al, "vc r11 0xc000003f", "vc_r11_"
-                                                            "0xc000003f"},
-    {{lt, r4, 0x00000000}, false, al, "lt r4 0x00000000", "lt_r4_0x00000000"},
-    {{pl, r0, 0xac000002}, false, al, "pl r0 0xac000002", "pl_r0_0xac000002"},
-    {{ls, r10, 0xc000003f}, false, al, "ls r10 0xc000003f", "ls_r10_"
-                                                            "0xc000003f"},
-    {{cc, r15, 0xc000002a},
-     false,
-     al,
-     "cc r15 0xc000002a",
-     "cc_r15_0xc000002a"}};
+const TestData kTests[] =
+    {{{ls, r10, 0x00ab0000},
+      false,
+      al,
+      "ls r10 0x00ab0000",
+      "ls_r10_"
+      "0x00ab0000"},
+     {{ls, r13, 0xf000000f},
+      false,
+      al,
+      "ls r13 0xf000000f",
+      "ls_r13_"
+      "0xf000000f"},
+     {{pl, r4, 0x00003fc0}, false, al, "pl r4 0x00003fc0", "pl_r4_0x00003fc0"},
+     {{ne, r15, 0x00ab0000},
+      false,
+      al,
+      "ne r15 0x00ab0000",
+      "ne_r15_"
+      "0x00ab0000"},
+     {{lt, r14, 0x002ac000},
+      false,
+      al,
+      "lt r14 0x002ac000",
+      "lt_r14_"
+      "0x002ac000"},
+     {{eq, r15, 0x000000ab},
+      false,
+      al,
+      "eq r15 0x000000ab",
+      "eq_r15_"
+      "0x000000ab"},
+     {{al, r6, 0x002ac000}, false, al, "al r6 0x002ac000", "al_r6_0x002ac000"},
+     {{pl, r2, 0x0002ac00}, false, al, "pl r2 0x0002ac00", "pl_r2_0x0002ac00"},
+     {{mi, r8, 0x00000000}, false, al, "mi r8 0x00000000", "mi_r8_0x00000000"},
+     {{pl, r13, 0x02ac0000},
+      false,
+      al,
+      "pl r13 0x02ac0000",
+      "pl_r13_"
+      "0x02ac0000"},
+     {{ge, r9, 0xac000002}, false, al, "ge r9 0xac000002", "ge_r9_0xac000002"},
+     {{ne, r3, 0x000003fc}, false, al, "ne r3 0x000003fc", "ne_r3_0x000003fc"},
+     {{pl, r10, 0xf000000f},
+      false,
+      al,
+      "pl r10 0xf000000f",
+      "pl_r10_"
+      "0xf000000f"},
+     {{cc, r0, 0x00003fc0}, false, al, "cc r0 0x00003fc0", "cc_r0_0x00003fc0"},
+     {{gt, r6, 0x002ac000}, false, al, "gt r6 0x002ac000", "gt_r6_0x002ac000"},
+     {{cs, r1, 0x00ff0000}, false, al, "cs r1 0x00ff0000", "cs_r1_0x00ff0000"},
+     {{lt, r8, 0x000002ac}, false, al, "lt r8 0x000002ac", "lt_r8_0x000002ac"},
+     {{vc, r4, 0x2ac00000}, false, al, "vc r4 0x2ac00000", "vc_r4_0x2ac00000"},
+     {{al, r11, 0x00003fc0},
+      false,
+      al,
+      "al r11 0x00003fc0",
+      "al_r11_"
+      "0x00003fc0"},
+     {{lt, r9, 0x000000ab}, false, al, "lt r9 0x000000ab", "lt_r9_0x000000ab"},
+     {{le, r15, 0x0000ff00},
+      false,
+      al,
+      "le r15 0x0000ff00",
+      "le_r15_"
+      "0x0000ff00"},
+     {{vc, r9, 0xff000000}, false, al, "vc r9 0xff000000", "vc_r9_0xff000000"},
+     {{ge, r0, 0x0ff00000}, false, al, "ge r0 0x0ff00000", "ge_r0_0x0ff00000"},
+     {{vc, r1, 0x00ff0000}, false, al, "vc r1 0x00ff0000", "vc_r1_0x00ff0000"},
+     {{vs, r12, 0x00000ff0},
+      false,
+      al,
+      "vs r12 0x00000ff0",
+      "vs_r12_"
+      "0x00000ff0"},
+     {{pl, r13, 0x003fc000},
+      false,
+      al,
+      "pl r13 0x003fc000",
+      "pl_r13_"
+      "0x003fc000"},
+     {{eq, r4, 0xff000000}, false, al, "eq r4 0xff000000", "eq_r4_0xff000000"},
+     {{eq, r12, 0xac000002},
+      false,
+      al,
+      "eq r12 0xac000002",
+      "eq_r12_"
+      "0xac000002"},
+     {{al, r11, 0x000000ab},
+      false,
+      al,
+      "al r11 0x000000ab",
+      "al_r11_"
+      "0x000000ab"},
+     {{ge, r10, 0x00ff0000},
+      false,
+      al,
+      "ge r10 0x00ff0000",
+      "ge_r10_"
+      "0x00ff0000"},
+     {{vs, r7, 0x0002ac00}, false, al, "vs r7 0x0002ac00", "vs_r7_0x0002ac00"},
+     {{le, r7, 0x002ac000}, false, al, "le r7 0x002ac000", "le_r7_0x002ac000"},
+     {{vc, r9, 0x000003fc}, false, al, "vc r9 0x000003fc", "vc_r9_0x000003fc"},
+     {{vs, r14, 0x002ac000},
+      false,
+      al,
+      "vs r14 0x002ac000",
+      "vs_r14_"
+      "0x002ac000"},
+     {{vs, r1, 0x000003fc}, false, al, "vs r1 0x000003fc", "vs_r1_0x000003fc"},
+     {{le, r13, 0x3fc00000},
+      false,
+      al,
+      "le r13 0x3fc00000",
+      "le_r13_"
+      "0x3fc00000"},
+     {{ne, r9, 0x0002ac00}, false, al, "ne r9 0x0002ac00", "ne_r9_0x0002ac00"},
+     {{al, r0, 0x00ab0000}, false, al, "al r0 0x00ab0000", "al_r0_0x00ab0000"},
+     {{hi, r5, 0xff000000}, false, al, "hi r5 0xff000000", "hi_r5_0xff000000"},
+     {{hi, r14, 0x000000ab},
+      false,
+      al,
+      "hi r14 0x000000ab",
+      "hi_r14_"
+      "0x000000ab"},
+     {{hi, r14, 0x000003fc},
+      false,
+      al,
+      "hi r14 0x000003fc",
+      "hi_r14_"
+      "0x000003fc"},
+     {{mi, r14, 0x03fc0000},
+      false,
+      al,
+      "mi r14 0x03fc0000",
+      "mi_r14_"
+      "0x03fc0000"},
+     {{mi, r8, 0x000000ff}, false, al, "mi r8 0x000000ff", "mi_r8_0x000000ff"},
+     {{gt, r6, 0x000ab000}, false, al, "gt r6 0x000ab000", "gt_r6_0x000ab000"},
+     {{mi, r12, 0x0ff00000},
+      false,
+      al,
+      "mi r12 0x0ff00000",
+      "mi_r12_"
+      "0x0ff00000"},
+     {{vs, r3, 0xff000000}, false, al, "vs r3 0xff000000", "vs_r3_0xff000000"},
+     {{vc, r7, 0x00ab0000}, false, al, "vc r7 0x00ab0000", "vc_r7_0x00ab0000"},
+     {{hi, r6, 0x03fc0000}, false, al, "hi r6 0x03fc0000", "hi_r6_0x03fc0000"},
+     {{ls, r5, 0x00ab0000}, false, al, "ls r5 0x00ab0000", "ls_r5_0x00ab0000"},
+     {{ls, r4, 0x000002ac}, false, al, "ls r4 0x000002ac", "ls_r4_0x000002ac"},
+     {{le, r13, 0x03fc0000},
+      false,
+      al,
+      "le r13 0x03fc0000",
+      "le_r13_"
+      "0x03fc0000"},
+     {{le, r15, 0x002ac000},
+      false,
+      al,
+      "le r15 0x002ac000",
+      "le_r15_"
+      "0x002ac000"},
+     {{pl, r6, 0xff000000}, false, al, "pl r6 0xff000000", "pl_r6_0xff000000"},
+     {{gt, r7, 0x00000ab0}, false, al, "gt r7 0x00000ab0", "gt_r7_0x00000ab0"},
+     {{hi, r3, 0x2ac00000}, false, al, "hi r3 0x2ac00000", "hi_r3_0x2ac00000"},
+     {{gt, r15, 0x00000000},
+      false,
+      al,
+      "gt r15 0x00000000",
+      "gt_r15_"
+      "0x00000000"},
+     {{gt, r1, 0x002ac000}, false, al, "gt r1 0x002ac000", "gt_r1_0x002ac000"},
+     {{hi, r2, 0x0000ff00}, false, al, "hi r2 0x0000ff00", "hi_r2_0x0000ff00"},
+     {{pl, r10, 0x03fc0000},
+      false,
+      al,
+      "pl r10 0x03fc0000",
+      "pl_r10_"
+      "0x03fc0000"},
+     {{gt, r10, 0xb000000a},
+      false,
+      al,
+      "gt r10 0xb000000a",
+      "gt_r10_"
+      "0xb000000a"},
+     {{ge, r10, 0x002ac000},
+      false,
+      al,
+      "ge r10 0x002ac000",
+      "ge_r10_"
+      "0x002ac000"},
+     {{al, r4, 0x0ab00000}, false, al, "al r4 0x0ab00000", "al_r4_0x0ab00000"},
+     {{ne, r12, 0x00000000},
+      false,
+      al,
+      "ne r12 0x00000000",
+      "ne_r12_"
+      "0x00000000"},
+     {{cs, r5, 0x00003fc0}, false, al, "cs r5 0x00003fc0", "cs_r5_0x00003fc0"},
+     {{cc, r6, 0x000000ff}, false, al, "cc r6 0x000000ff", "cc_r6_0x000000ff"},
+     {{hi, r14, 0x03fc0000},
+      false,
+      al,
+      "hi r14 0x03fc0000",
+      "hi_r14_"
+      "0x03fc0000"},
+     {{hi, r3, 0xab000000}, false, al, "hi r3 0xab000000", "hi_r3_0xab000000"},
+     {{lt, r2, 0x000ff000}, false, al, "lt r2 0x000ff000", "lt_r2_0x000ff000"},
+     {{gt, r3, 0x00ff0000}, false, al, "gt r3 0x00ff0000", "gt_r3_0x00ff0000"},
+     {{le, r14, 0x0ab00000},
+      false,
+      al,
+      "le r14 0x0ab00000",
+      "le_r14_"
+      "0x0ab00000"},
+     {{cc, r13, 0x03fc0000},
+      false,
+      al,
+      "cc r13 0x03fc0000",
+      "cc_r13_"
+      "0x03fc0000"},
+     {{gt, r6, 0xb000000a}, false, al, "gt r6 0xb000000a", "gt_r6_0xb000000a"},
+     {{pl, r3, 0x2ac00000}, false, al, "pl r3 0x2ac00000", "pl_r3_0x2ac00000"},
+     {{mi, r15, 0x000000ff},
+      false,
+      al,
+      "mi r15 0x000000ff",
+      "mi_r15_"
+      "0x000000ff"},
+     {{gt, r4, 0x00000ff0}, false, al, "gt r4 0x00000ff0", "gt_r4_0x00000ff0"},
+     {{ne, r4, 0x000003fc}, false, al, "ne r4 0x000003fc", "ne_r4_0x000003fc"},
+     {{ne, r5, 0x00ff0000}, false, al, "ne r5 0x00ff0000", "ne_r5_0x00ff0000"},
+     {{ge, r7, 0x000003fc}, false, al, "ge r7 0x000003fc", "ge_r7_0x000003fc"},
+     {{vs, r5, 0x00000000}, false, al, "vs r5 0x00000000", "vs_r5_0x00000000"},
+     {{vs, r6, 0x2ac00000}, false, al, "vs r6 0x2ac00000", "vs_r6_0x2ac00000"},
+     {{mi, r1, 0x3fc00000}, false, al, "mi r1 0x3fc00000", "mi_r1_0x3fc00000"},
+     {{gt, r8, 0xc000002a}, false, al, "gt r8 0xc000002a", "gt_r8_0xc000002a"},
+     {{pl, r10, 0x000000ab},
+      false,
+      al,
+      "pl r10 0x000000ab",
+      "pl_r10_"
+      "0x000000ab"},
+     {{mi, r6, 0xab000000}, false, al, "mi r6 0xab000000", "mi_r6_0xab000000"},
+     {{ls, r12, 0x3fc00000},
+      false,
+      al,
+      "ls r12 0x3fc00000",
+      "ls_r12_"
+      "0x3fc00000"},
+     {{vs, r13, 0x03fc0000},
+      false,
+      al,
+      "vs r13 0x03fc0000",
+      "vs_r13_"
+      "0x03fc0000"},
+     {{eq, r8, 0x00000ab0}, false, al, "eq r8 0x00000ab0", "eq_r8_0x00000ab0"},
+     {{gt, r6, 0x000000ff}, false, al, "gt r6 0x000000ff", "gt_r6_0x000000ff"},
+     {{vs, r5, 0x000ab000}, false, al, "vs r5 0x000ab000", "vs_r5_0x000ab000"},
+     {{mi, r1, 0x2ac00000}, false, al, "mi r1 0x2ac00000", "mi_r1_0x2ac00000"},
+     {{vs, r6, 0x00003fc0}, false, al, "vs r6 0x00003fc0", "vs_r6_0x00003fc0"},
+     {{gt, r6, 0x000002ac}, false, al, "gt r6 0x000002ac", "gt_r6_0x000002ac"},
+     {{eq, r2, 0x00000000}, false, al, "eq r2 0x00000000", "eq_r2_0x00000000"},
+     {{eq, r10, 0xc000003f},
+      false,
+      al,
+      "eq r10 0xc000003f",
+      "eq_r10_"
+      "0xc000003f"},
+     {{mi, r7, 0x00ab0000}, false, al, "mi r7 0x00ab0000", "mi_r7_0x00ab0000"},
+     {{cc, r7, 0x2ac00000}, false, al, "cc r7 0x2ac00000", "cc_r7_0x2ac00000"},
+     {{pl, r4, 0x00ab0000}, false, al, "pl r4 0x00ab0000", "pl_r4_0x00ab0000"},
+     {{ne, r15, 0x00000ff0},
+      false,
+      al,
+      "ne r15 0x00000ff0",
+      "ne_r15_"
+      "0x00000ff0"},
+     {{al, r6, 0x02ac0000}, false, al, "al r6 0x02ac0000", "al_r6_0x02ac0000"},
+     {{pl, r6, 0x000002ac}, false, al, "pl r6 0x000002ac", "pl_r6_0x000002ac"},
+     {{ne, r14, 0x00ff0000},
+      false,
+      al,
+      "ne r14 0x00ff0000",
+      "ne_r14_"
+      "0x00ff0000"},
+     {{ne, r5, 0x0003fc00}, false, al, "ne r5 0x0003fc00", "ne_r5_0x0003fc00"},
+     {{pl, r6, 0x00000ab0}, false, al, "pl r6 0x00000ab0", "pl_r6_0x00000ab0"},
+     {{eq, r10, 0x00002ac0},
+      false,
+      al,
+      "eq r10 0x00002ac0",
+      "eq_r10_"
+      "0x00002ac0"},
+     {{mi, r4, 0x00000ab0}, false, al, "mi r4 0x00000ab0", "mi_r4_0x00000ab0"},
+     {{vc, r5, 0x000ab000}, false, al, "vc r5 0x000ab000", "vc_r5_0x000ab000"},
+     {{ge, r0, 0x02ac0000}, false, al, "ge r0 0x02ac0000", "ge_r0_0x02ac0000"},
+     {{pl, r5, 0x000002ac}, false, al, "pl r5 0x000002ac", "pl_r5_0x000002ac"},
+     {{ge, r13, 0x00000ab0},
+      false,
+      al,
+      "ge r13 0x00000ab0",
+      "ge_r13_"
+      "0x00000ab0"},
+     {{eq, r2, 0x03fc0000}, false, al, "eq r2 0x03fc0000", "eq_r2_0x03fc0000"},
+     {{lt, r11, 0x00000ab0},
+      false,
+      al,
+      "lt r11 0x00000ab0",
+      "lt_r11_"
+      "0x00000ab0"},
+     {{ge, r6, 0x00000000}, false, al, "ge r6 0x00000000", "ge_r6_0x00000000"},
+     {{gt, r2, 0xac000002}, false, al, "gt r2 0xac000002", "gt_r2_0xac000002"},
+     {{le, r15, 0x000000ab},
+      false,
+      al,
+      "le r15 0x000000ab",
+      "le_r15_"
+      "0x000000ab"},
+     {{cc, r4, 0x00000ff0}, false, al, "cc r4 0x00000ff0", "cc_r4_0x00000ff0"},
+     {{pl, r10, 0x02ac0000},
+      false,
+      al,
+      "pl r10 0x02ac0000",
+      "pl_r10_"
+      "0x02ac0000"},
+     {{gt, r9, 0x00000000}, false, al, "gt r9 0x00000000", "gt_r9_0x00000000"},
+     {{vs, r8, 0x000000ff}, false, al, "vs r8 0x000000ff", "vs_r8_0x000000ff"},
+     {{gt, r14, 0x0002ac00},
+      false,
+      al,
+      "gt r14 0x0002ac00",
+      "gt_r14_"
+      "0x0002ac00"},
+     {{vs, r14, 0x00002ac0},
+      false,
+      al,
+      "vs r14 0x00002ac0",
+      "vs_r14_"
+      "0x00002ac0"},
+     {{ge, r12, 0x00000000},
+      false,
+      al,
+      "ge r12 0x00000000",
+      "ge_r12_"
+      "0x00000000"},
+     {{vc, r8, 0xf000000f}, false, al, "vc r8 0xf000000f", "vc_r8_0xf000000f"},
+     {{cs, r6, 0x00003fc0}, false, al, "cs r6 0x00003fc0", "cs_r6_0x00003fc0"},
+     {{le, r4, 0x000003fc}, false, al, "le r4 0x000003fc", "le_r4_0x000003fc"},
+     {{cs, r5, 0x000ff000}, false, al, "cs r5 0x000ff000", "cs_r5_0x000ff000"},
+     {{eq, r2, 0x0000ff00}, false, al, "eq r2 0x0000ff00", "eq_r2_0x0000ff00"},
+     {{pl, r10, 0x0ab00000},
+      false,
+      al,
+      "pl r10 0x0ab00000",
+      "pl_r10_"
+      "0x0ab00000"},
+     {{le, r11, 0xac000002},
+      false,
+      al,
+      "le r11 0xac000002",
+      "le_r11_"
+      "0xac000002"},
+     {{vs, r15, 0x00003fc0},
+      false,
+      al,
+      "vs r15 0x00003fc0",
+      "vs_r15_"
+      "0x00003fc0"},
+     {{lt, r2, 0x0002ac00}, false, al, "lt r2 0x0002ac00", "lt_r2_0x0002ac00"},
+     {{eq, r1, 0x00ab0000}, false, al, "eq r1 0x00ab0000", "eq_r1_0x00ab0000"},
+     {{cc, r7, 0x03fc0000}, false, al, "cc r7 0x03fc0000", "cc_r7_0x03fc0000"},
+     {{mi, r6, 0x00000ab0}, false, al, "mi r6 0x00000ab0", "mi_r6_0x00000ab0"},
+     {{eq, r4, 0x00000ab0}, false, al, "eq r4 0x00000ab0", "eq_r4_0x00000ab0"},
+     {{ls, r3, 0x0003fc00}, false, al, "ls r3 0x0003fc00", "ls_r3_0x0003fc00"},
+     {{mi, r6, 0x000ab000}, false, al, "mi r6 0x000ab000", "mi_r6_0x000ab000"},
+     {{ne, r12, 0x003fc000},
+      false,
+      al,
+      "ne r12 0x003fc000",
+      "ne_r12_"
+      "0x003fc000"},
+     {{eq, r11, 0x00ff0000},
+      false,
+      al,
+      "eq r11 0x00ff0000",
+      "eq_r11_"
+      "0x00ff0000"},
+     {{cs, r13, 0x00ab0000},
+      false,
+      al,
+      "cs r13 0x00ab0000",
+      "cs_r13_"
+      "0x00ab0000"},
+     {{eq, r5, 0x000003fc}, false, al, "eq r5 0x000003fc", "eq_r5_0x000003fc"},
+     {{vs, r6, 0x0003fc00}, false, al, "vs r6 0x0003fc00", "vs_r6_0x0003fc00"},
+     {{pl, r8, 0x0ff00000}, false, al, "pl r8 0x0ff00000", "pl_r8_0x0ff00000"},
+     {{pl, r11, 0x0000ab00},
+      false,
+      al,
+      "pl r11 0x0000ab00",
+      "pl_r11_"
+      "0x0000ab00"},
+     {{le, r2, 0xac000002}, false, al, "le r2 0xac000002", "le_r2_0xac000002"},
+     {{vc, r10, 0x000ff000},
+      false,
+      al,
+      "vc r10 0x000ff000",
+      "vc_r10_"
+      "0x000ff000"},
+     {{le, r4, 0x00000ff0}, false, al, "le r4 0x00000ff0", "le_r4_0x00000ff0"},
+     {{gt, r12, 0x00000ff0},
+      false,
+      al,
+      "gt r12 0x00000ff0",
+      "gt_r12_"
+      "0x00000ff0"},
+     {{le, r5, 0x0002ac00}, false, al, "le r5 0x0002ac00", "le_r5_0x0002ac00"},
+     {{le, r0, 0xac000002}, false, al, "le r0 0xac000002", "le_r0_0xac000002"},
+     {{vs, r11, 0x0ff00000},
+      false,
+      al,
+      "vs r11 0x0ff00000",
+      "vs_r11_"
+      "0x0ff00000"},
+     {{ls, r0, 0x000ab000}, false, al, "ls r0 0x000ab000", "ls_r0_0x000ab000"},
+     {{ls, r2, 0xf000000f}, false, al, "ls r2 0xf000000f", "ls_r2_0xf000000f"},
+     {{cs, r3, 0x0ff00000}, false, al, "cs r3 0x0ff00000", "cs_r3_0x0ff00000"},
+     {{hi, r8, 0x0ff00000}, false, al, "hi r8 0x0ff00000", "hi_r8_0x0ff00000"},
+     {{gt, r3, 0x00002ac0}, false, al, "gt r3 0x00002ac0", "gt_r3_0x00002ac0"},
+     {{al, r15, 0xab000000},
+      false,
+      al,
+      "al r15 0xab000000",
+      "al_r15_"
+      "0xab000000"},
+     {{eq, r13, 0x000000ab},
+      false,
+      al,
+      "eq r13 0x000000ab",
+      "eq_r13_"
+      "0x000000ab"},
+     {{al, r2, 0xc000002a}, false, al, "al r2 0xc000002a", "al_r2_0xc000002a"},
+     {{eq, r13, 0x03fc0000},
+      false,
+      al,
+      "eq r13 0x03fc0000",
+      "eq_r13_"
+      "0x03fc0000"},
+     {{eq, r3, 0x00000ff0}, false, al, "eq r3 0x00000ff0", "eq_r3_0x00000ff0"},
+     {{hi, r12, 0x00002ac0},
+      false,
+      al,
+      "hi r12 0x00002ac0",
+      "hi_r12_"
+      "0x00002ac0"},
+     {{mi, r2, 0x0ff00000}, false, al, "mi r2 0x0ff00000", "mi_r2_0x0ff00000"},
+     {{ne, r9, 0x003fc000}, false, al, "ne r9 0x003fc000", "ne_r9_0x003fc000"},
+     {{eq, r14, 0x03fc0000},
+      false,
+      al,
+      "eq r14 0x03fc0000",
+      "eq_r14_"
+      "0x03fc0000"},
+     {{cc, r0, 0x002ac000}, false, al, "cc r0 0x002ac000", "cc_r0_0x002ac000"},
+     {{vc, r14, 0x00000ab0},
+      false,
+      al,
+      "vc r14 0x00000ab0",
+      "vc_r14_"
+      "0x00000ab0"},
+     {{mi, r15, 0xf000000f},
+      false,
+      al,
+      "mi r15 0xf000000f",
+      "mi_r15_"
+      "0xf000000f"},
+     {{ge, r9, 0x000003fc}, false, al, "ge r9 0x000003fc", "ge_r9_0x000003fc"},
+     {{vs, r13, 0xac000002},
+      false,
+      al,
+      "vs r13 0xac000002",
+      "vs_r13_"
+      "0xac000002"},
+     {{vs, r1, 0x3fc00000}, false, al, "vs r1 0x3fc00000", "vs_r1_0x3fc00000"},
+     {{eq, r12, 0x00003fc0},
+      false,
+      al,
+      "eq r12 0x00003fc0",
+      "eq_r12_"
+      "0x00003fc0"},
+     {{mi, r6, 0xff000000}, false, al, "mi r6 0xff000000", "mi_r6_0xff000000"},
+     {{ne, r5, 0x000003fc}, false, al, "ne r5 0x000003fc", "ne_r5_0x000003fc"},
+     {{lt, r8, 0x0ff00000}, false, al, "lt r8 0x0ff00000", "lt_r8_0x0ff00000"},
+     {{hi, r7, 0x3fc00000}, false, al, "hi r7 0x3fc00000", "hi_r7_0x3fc00000"},
+     {{ge, r10, 0xac000002},
+      false,
+      al,
+      "ge r10 0xac000002",
+      "ge_r10_"
+      "0xac000002"},
+     {{vs, r2, 0x0000ff00}, false, al, "vs r2 0x0000ff00", "vs_r2_0x0000ff00"},
+     {{al, r6, 0x000000ab}, false, al, "al r6 0x000000ab", "al_r6_0x000000ab"},
+     {{ge, r7, 0x00ff0000}, false, al, "ge r7 0x00ff0000", "ge_r7_0x00ff0000"},
+     {{ne, r0, 0x000ff000}, false, al, "ne r0 0x000ff000", "ne_r0_0x000ff000"},
+     {{mi, r6, 0x000000ab}, false, al, "mi r6 0x000000ab", "mi_r6_0x000000ab"},
+     {{hi, r1, 0xf000000f}, false, al, "hi r1 0xf000000f", "hi_r1_0xf000000f"},
+     {{mi, r6, 0x2ac00000}, false, al, "mi r6 0x2ac00000", "mi_r6_0x2ac00000"},
+     {{vc, r11, 0x000000ff},
+      false,
+      al,
+      "vc r11 0x000000ff",
+      "vc_r11_"
+      "0x000000ff"},
+     {{ls, r14, 0x02ac0000},
+      false,
+      al,
+      "ls r14 0x02ac0000",
+      "ls_r14_"
+      "0x02ac0000"},
+     {{ge, r5, 0x003fc000}, false, al, "ge r5 0x003fc000", "ge_r5_0x003fc000"},
+     {{ls, r12, 0x0000ab00},
+      false,
+      al,
+      "ls r12 0x0000ab00",
+      "ls_r12_"
+      "0x0000ab00"},
+     {{cc, r15, 0x00000ab0},
+      false,
+      al,
+      "cc r15 0x00000ab0",
+      "cc_r15_"
+      "0x00000ab0"},
+     {{vc, r12, 0x0000ab00},
+      false,
+      al,
+      "vc r12 0x0000ab00",
+      "vc_r12_"
+      "0x0000ab00"},
+     {{vs, r2, 0xc000002a}, false, al, "vs r2 0xc000002a", "vs_r2_0xc000002a"},
+     {{lt, r7, 0x0ab00000}, false, al, "lt r7 0x0ab00000", "lt_r7_0x0ab00000"},
+     {{ls, r6, 0x00000ff0}, false, al, "ls r6 0x00000ff0", "ls_r6_0x00000ff0"},
+     {{vc, r10, 0x000000ff},
+      false,
+      al,
+      "vc r10 0x000000ff",
+      "vc_r10_"
+      "0x000000ff"},
+     {{ls, r4, 0x0000ab00}, false, al, "ls r4 0x0000ab00", "ls_r4_0x0000ab00"},
+     {{mi, r10, 0x003fc000},
+      false,
+      al,
+      "mi r10 0x003fc000",
+      "mi_r10_"
+      "0x003fc000"},
+     {{ls, r1, 0x000002ac}, false, al, "ls r1 0x000002ac", "ls_r1_0x000002ac"},
+     {{ge, r7, 0xb000000a}, false, al, "ge r7 0xb000000a", "ge_r7_0xb000000a"},
+     {{gt, r4, 0xf000000f}, false, al, "gt r4 0xf000000f", "gt_r4_0xf000000f"},
+     {{vc, r8, 0x002ac000}, false, al, "vc r8 0x002ac000", "vc_r8_0x002ac000"},
+     {{eq, r5, 0x0ab00000}, false, al, "eq r5 0x0ab00000", "eq_r5_0x0ab00000"},
+     {{gt, r2, 0xf000000f}, false, al, "gt r2 0xf000000f", "gt_r2_0xf000000f"},
+     {{gt, r6, 0xff000000}, false, al, "gt r6 0xff000000", "gt_r6_0xff000000"},
+     {{ls, r8, 0x0ab00000}, false, al, "ls r8 0x0ab00000", "ls_r8_0x0ab00000"},
+     {{vc, r0, 0xb000000a}, false, al, "vc r0 0xb000000a", "vc_r0_0xb000000a"},
+     {{lt, r6, 0x03fc0000}, false, al, "lt r6 0x03fc0000", "lt_r6_0x03fc0000"},
+     {{ge, r10, 0x0000ab00},
+      false,
+      al,
+      "ge r10 0x0000ab00",
+      "ge_r10_"
+      "0x0000ab00"},
+     {{hi, r4, 0x000ab000}, false, al, "hi r4 0x000ab000", "hi_r4_0x000ab000"},
+     {{hi, r11, 0x3fc00000},
+      false,
+      al,
+      "hi r11 0x3fc00000",
+      "hi_r11_"
+      "0x3fc00000"},
+     {{vs, r12, 0xc000003f},
+      false,
+      al,
+      "vs r12 0xc000003f",
+      "vs_r12_"
+      "0xc000003f"},
+     {{gt, r12, 0xb000000a},
+      false,
+      al,
+      "gt r12 0xb000000a",
+      "gt_r12_"
+      "0xb000000a"},
+     {{eq, r11, 0x2ac00000},
+      false,
+      al,
+      "eq r11 0x2ac00000",
+      "eq_r11_"
+      "0x2ac00000"},
+     {{hi, r0, 0xc000003f}, false, al, "hi r0 0xc000003f", "hi_r0_0xc000003f"},
+     {{cs, r12, 0xac000002},
+      false,
+      al,
+      "cs r12 0xac000002",
+      "cs_r12_"
+      "0xac000002"},
+     {{hi, r9, 0x3fc00000}, false, al, "hi r9 0x3fc00000", "hi_r9_0x3fc00000"},
+     {{vs, r2, 0x00002ac0}, false, al, "vs r2 0x00002ac0", "vs_r2_0x00002ac0"},
+     {{al, r12, 0xb000000a},
+      false,
+      al,
+      "al r12 0xb000000a",
+      "al_r12_"
+      "0xb000000a"},
+     {{gt, r12, 0x3fc00000},
+      false,
+      al,
+      "gt r12 0x3fc00000",
+      "gt_r12_"
+      "0x3fc00000"},
+     {{gt, r6, 0xf000000f}, false, al, "gt r6 0xf000000f", "gt_r6_0xf000000f"},
+     {{vc, r14, 0x000000ff},
+      false,
+      al,
+      "vc r14 0x000000ff",
+      "vc_r14_"
+      "0x000000ff"},
+     {{pl, r7, 0x0002ac00}, false, al, "pl r7 0x0002ac00", "pl_r7_0x0002ac00"},
+     {{ge, r1, 0x03fc0000}, false, al, "ge r1 0x03fc0000", "ge_r1_0x03fc0000"},
+     {{hi, r10, 0x0002ac00},
+      false,
+      al,
+      "hi r10 0x0002ac00",
+      "hi_r10_"
+      "0x0002ac00"},
+     {{gt, r4, 0x002ac000}, false, al, "gt r4 0x002ac000", "gt_r4_0x002ac000"},
+     {{vc, r5, 0x000000ff}, false, al, "vc r5 0x000000ff", "vc_r5_0x000000ff"},
+     {{pl, r15, 0x0000ab00},
+      false,
+      al,
+      "pl r15 0x0000ab00",
+      "pl_r15_"
+      "0x0000ab00"},
+     {{cc, r4, 0x00ab0000}, false, al, "cc r4 0x00ab0000", "cc_r4_0x00ab0000"},
+     {{pl, r11, 0xff000000},
+      false,
+      al,
+      "pl r11 0xff000000",
+      "pl_r11_"
+      "0xff000000"},
+     {{pl, r2, 0xf000000f}, false, al, "pl r2 0xf000000f", "pl_r2_0xf000000f"},
+     {{cc, r8, 0xb000000a}, false, al, "cc r8 0xb000000a", "cc_r8_0xb000000a"},
+     {{al, r13, 0x000000ff},
+      false,
+      al,
+      "al r13 0x000000ff",
+      "al_r13_"
+      "0x000000ff"},
+     {{mi, r6, 0x000003fc}, false, al, "mi r6 0x000003fc", "mi_r6_0x000003fc"},
+     {{vs, r13, 0x02ac0000},
+      false,
+      al,
+      "vs r13 0x02ac0000",
+      "vs_r13_"
+      "0x02ac0000"},
+     {{mi, r4, 0x00ff0000}, false, al, "mi r4 0x00ff0000", "mi_r4_0x00ff0000"},
+     {{cs, r3, 0x000003fc}, false, al, "cs r3 0x000003fc", "cs_r3_0x000003fc"},
+     {{pl, r13, 0xab000000},
+      false,
+      al,
+      "pl r13 0xab000000",
+      "pl_r13_"
+      "0xab000000"},
+     {{ls, r9, 0x002ac000}, false, al, "ls r9 0x002ac000", "ls_r9_0x002ac000"},
+     {{eq, r1, 0xc000002a}, false, al, "eq r1 0xc000002a", "eq_r1_0xc000002a"},
+     {{lt, r12, 0x00000000},
+      false,
+      al,
+      "lt r12 0x00000000",
+      "lt_r12_"
+      "0x00000000"},
+     {{ge, r14, 0xff000000},
+      false,
+      al,
+      "ge r14 0xff000000",
+      "ge_r14_"
+      "0xff000000"},
+     {{lt, r9, 0x002ac000}, false, al, "lt r9 0x002ac000", "lt_r9_0x002ac000"},
+     {{lt, r10, 0x00000ff0},
+      false,
+      al,
+      "lt r10 0x00000ff0",
+      "lt_r10_"
+      "0x00000ff0"},
+     {{vs, r5, 0x000000ff}, false, al, "vs r5 0x000000ff", "vs_r5_0x000000ff"},
+     {{cc, r12, 0x03fc0000},
+      false,
+      al,
+      "cc r12 0x03fc0000",
+      "cc_r12_"
+      "0x03fc0000"},
+     {{ne, r4, 0x00000000}, false, al, "ne r4 0x00000000", "ne_r4_0x00000000"},
+     {{mi, r13, 0xff000000},
+      false,
+      al,
+      "mi r13 0xff000000",
+      "mi_r13_"
+      "0xff000000"},
+     {{ne, r7, 0x00000ff0}, false, al, "ne r7 0x00000ff0", "ne_r7_0x00000ff0"},
+     {{vs, r2, 0xc000003f}, false, al, "vs r2 0xc000003f", "vs_r2_0xc000003f"},
+     {{al, r5, 0x00ff0000}, false, al, "al r5 0x00ff0000", "al_r5_0x00ff0000"},
+     {{hi, r15, 0x00000ff0},
+      false,
+      al,
+      "hi r15 0x00000ff0",
+      "hi_r15_"
+      "0x00000ff0"},
+     {{ls, r8, 0x00003fc0}, false, al, "ls r8 0x00003fc0", "ls_r8_0x00003fc0"},
+     {{vs, r0, 0xff000000}, false, al, "vs r0 0xff000000", "vs_r0_0xff000000"},
+     {{vs, r6, 0x000000ab}, false, al, "vs r6 0x000000ab", "vs_r6_0x000000ab"},
+     {{cs, r9, 0x00ab0000}, false, al, "cs r9 0x00ab0000", "cs_r9_0x00ab0000"},
+     {{hi, r1, 0x0002ac00}, false, al, "hi r1 0x0002ac00", "hi_r1_0x0002ac00"},
+     {{hi, r15, 0x2ac00000},
+      false,
+      al,
+      "hi r15 0x2ac00000",
+      "hi_r15_"
+      "0x2ac00000"},
+     {{hi, r6, 0x0002ac00}, false, al, "hi r6 0x0002ac00", "hi_r6_0x0002ac00"},
+     {{ge, r4, 0xc000003f}, false, al, "ge r4 0xc000003f", "ge_r4_0xc000003f"},
+     {{ls, r10, 0x0000ff00},
+      false,
+      al,
+      "ls r10 0x0000ff00",
+      "ls_r10_"
+      "0x0000ff00"},
+     {{ne, r11, 0x000003fc},
+      false,
+      al,
+      "ne r11 0x000003fc",
+      "ne_r11_"
+      "0x000003fc"},
+     {{ls, r3, 0x0002ac00}, false, al, "ls r3 0x0002ac00", "ls_r3_0x0002ac00"},
+     {{al, r12, 0x000003fc},
+      false,
+      al,
+      "al r12 0x000003fc",
+      "al_r12_"
+      "0x000003fc"},
+     {{le, r7, 0xf000000f}, false, al, "le r7 0xf000000f", "le_r7_0xf000000f"},
+     {{al, r11, 0x00000ab0},
+      false,
+      al,
+      "al r11 0x00000ab0",
+      "al_r11_"
+      "0x00000ab0"},
+     {{cs, r13, 0x02ac0000},
+      false,
+      al,
+      "cs r13 0x02ac0000",
+      "cs_r13_"
+      "0x02ac0000"},
+     {{hi, r1, 0x00000ff0}, false, al, "hi r1 0x00000ff0", "hi_r1_0x00000ff0"},
+     {{le, r11, 0x3fc00000},
+      false,
+      al,
+      "le r11 0x3fc00000",
+      "le_r11_"
+      "0x3fc00000"},
+     {{hi, r9, 0x000003fc}, false, al, "hi r9 0x000003fc", "hi_r9_0x000003fc"},
+     {{mi, r13, 0x000002ac},
+      false,
+      al,
+      "mi r13 0x000002ac",
+      "mi_r13_"
+      "0x000002ac"},
+     {{lt, r12, 0x000003fc},
+      false,
+      al,
+      "lt r12 0x000003fc",
+      "lt_r12_"
+      "0x000003fc"},
+     {{lt, r14, 0x00000ab0},
+      false,
+      al,
+      "lt r14 0x00000ab0",
+      "lt_r14_"
+      "0x00000ab0"},
+     {{gt, r1, 0x3fc00000}, false, al, "gt r1 0x3fc00000", "gt_r1_0x3fc00000"},
+     {{cc, r14, 0xb000000a},
+      false,
+      al,
+      "cc r14 0xb000000a",
+      "cc_r14_"
+      "0xb000000a"},
+     {{ge, r0, 0x000002ac}, false, al, "ge r0 0x000002ac", "ge_r0_0x000002ac"},
+     {{eq, r12, 0x000003fc},
+      false,
+      al,
+      "eq r12 0x000003fc",
+      "eq_r12_"
+      "0x000003fc"},
+     {{vc, r13, 0x0ab00000},
+      false,
+      al,
+      "vc r13 0x0ab00000",
+      "vc_r13_"
+      "0x0ab00000"},
+     {{pl, r10, 0x0003fc00},
+      false,
+      al,
+      "pl r10 0x0003fc00",
+      "pl_r10_"
+      "0x0003fc00"},
+     {{le, r7, 0x0000ff00}, false, al, "le r7 0x0000ff00", "le_r7_0x0000ff00"},
+     {{eq, r5, 0x0003fc00}, false, al, "eq r5 0x0003fc00", "eq_r5_0x0003fc00"},
+     {{pl, r1, 0xfc000003}, false, al, "pl r1 0xfc000003", "pl_r1_0xfc000003"},
+     {{gt, r15, 0x000ff000},
+      false,
+      al,
+      "gt r15 0x000ff000",
+      "gt_r15_"
+      "0x000ff000"},
+     {{mi, r2, 0xb000000a}, false, al, "mi r2 0xb000000a", "mi_r2_0xb000000a"},
+     {{cs, r8, 0x0000ff00}, false, al, "cs r8 0x0000ff00", "cs_r8_0x0000ff00"},
+     {{vs, r8, 0x00002ac0}, false, al, "vs r8 0x00002ac0", "vs_r8_0x00002ac0"},
+     {{cs, r5, 0x00ab0000}, false, al, "cs r5 0x00ab0000", "cs_r5_0x00ab0000"},
+     {{pl, r3, 0x00ab0000}, false, al, "pl r3 0x00ab0000", "pl_r3_0x00ab0000"},
+     {{hi, r5, 0x02ac0000}, false, al, "hi r5 0x02ac0000", "hi_r5_0x02ac0000"},
+     {{cc, r9, 0x000002ac}, false, al, "cc r9 0x000002ac", "cc_r9_0x000002ac"},
+     {{ls, r13, 0x0000ab00},
+      false,
+      al,
+      "ls r13 0x0000ab00",
+      "ls_r13_"
+      "0x0000ab00"},
+     {{pl, r11, 0x00000ab0},
+      false,
+      al,
+      "pl r11 0x00000ab0",
+      "pl_r11_"
+      "0x00000ab0"},
+     {{ge, r14, 0x3fc00000},
+      false,
+      al,
+      "ge r14 0x3fc00000",
+      "ge_r14_"
+      "0x3fc00000"},
+     {{al, r14, 0x0000ab00},
+      false,
+      al,
+      "al r14 0x0000ab00",
+      "al_r14_"
+      "0x0000ab00"},
+     {{lt, r6, 0xac000002}, false, al, "lt r6 0xac000002", "lt_r6_0xac000002"},
+     {{vc, r3, 0x000ff000}, false, al, "vc r3 0x000ff000", "vc_r3_0x000ff000"},
+     {{ne, r8, 0xfc000003}, false, al, "ne r8 0xfc000003", "ne_r8_0xfc000003"},
+     {{cs, r6, 0x000ab000}, false, al, "cs r6 0x000ab000", "cs_r6_0x000ab000"},
+     {{hi, r15, 0x0002ac00},
+      false,
+      al,
+      "hi r15 0x0002ac00",
+      "hi_r15_"
+      "0x0002ac00"},
+     {{pl, r6, 0x00000ff0}, false, al, "pl r6 0x00000ff0", "pl_r6_0x00000ff0"},
+     {{hi, r15, 0x03fc0000},
+      false,
+      al,
+      "hi r15 0x03fc0000",
+      "hi_r15_"
+      "0x03fc0000"},
+     {{cc, r6, 0x0003fc00}, false, al, "cc r6 0x0003fc00", "cc_r6_0x0003fc00"},
+     {{eq, r12, 0x000002ac},
+      false,
+      al,
+      "eq r12 0x000002ac",
+      "eq_r12_"
+      "0x000002ac"},
+     {{ls, r11, 0x02ac0000},
+      false,
+      al,
+      "ls r11 0x02ac0000",
+      "ls_r11_"
+      "0x02ac0000"},
+     {{ge, r13, 0x00ff0000},
+      false,
+      al,
+      "ge r13 0x00ff0000",
+      "ge_r13_"
+      "0x00ff0000"},
+     {{lt, r4, 0x0003fc00}, false, al, "lt r4 0x0003fc00", "lt_r4_0x0003fc00"},
+     {{mi, r0, 0x0000ab00}, false, al, "mi r0 0x0000ab00", "mi_r0_0x0000ab00"},
+     {{lt, r4, 0x000000ab}, false, al, "lt r4 0x000000ab", "lt_r4_0x000000ab"},
+     {{ls, r2, 0xc000003f}, false, al, "ls r2 0xc000003f", "ls_r2_0xc000003f"},
+     {{pl, r1, 0x000000ab}, false, al, "pl r1 0x000000ab", "pl_r1_0x000000ab"},
+     {{ne, r10, 0x0000ff00},
+      false,
+      al,
+      "ne r10 0x0000ff00",
+      "ne_r10_"
+      "0x0000ff00"},
+     {{vc, r15, 0x00000ab0},
+      false,
+      al,
+      "vc r15 0x00000ab0",
+      "vc_r15_"
+      "0x00000ab0"},
+     {{eq, r6, 0x02ac0000}, false, al, "eq r6 0x02ac0000", "eq_r6_0x02ac0000"},
+     {{cc, r11, 0x00000000},
+      false,
+      al,
+      "cc r11 0x00000000",
+      "cc_r11_"
+      "0x00000000"},
+     {{mi, r7, 0x002ac000}, false, al, "mi r7 0x002ac000", "mi_r7_0x002ac000"},
+     {{hi, r14, 0xab000000},
+      false,
+      al,
+      "hi r14 0xab000000",
+      "hi_r14_"
+      "0xab000000"},
+     {{vc, r6, 0x0000ff00}, false, al, "vc r6 0x0000ff00", "vc_r6_0x0000ff00"},
+     {{al, r5, 0x000002ac}, false, al, "al r5 0x000002ac", "al_r5_0x000002ac"},
+     {{cc, r12, 0x0002ac00},
+      false,
+      al,
+      "cc r12 0x0002ac00",
+      "cc_r12_"
+      "0x0002ac00"},
+     {{cc, r10, 0x000000ab},
+      false,
+      al,
+      "cc r10 0x000000ab",
+      "cc_r10_"
+      "0x000000ab"},
+     {{gt, r5, 0x000002ac}, false, al, "gt r5 0x000002ac", "gt_r5_0x000002ac"},
+     {{vc, r3, 0x00000000}, false, al, "vc r3 0x00000000", "vc_r3_0x00000000"},
+     {{gt, r12, 0xac000002},
+      false,
+      al,
+      "gt r12 0xac000002",
+      "gt_r12_"
+      "0xac000002"},
+     {{al, r10, 0x00ab0000},
+      false,
+      al,
+      "al r10 0x00ab0000",
+      "al_r10_"
+      "0x00ab0000"},
+     {{mi, r5, 0x000ff000}, false, al, "mi r5 0x000ff000", "mi_r5_0x000ff000"},
+     {{pl, r1, 0x00000ff0}, false, al, "pl r1 0x00000ff0", "pl_r1_0x00000ff0"},
+     {{lt, r7, 0xf000000f}, false, al, "lt r7 0xf000000f", "lt_r7_0xf000000f"},
+     {{ge, r14, 0x002ac000},
+      false,
+      al,
+      "ge r14 0x002ac000",
+      "ge_r14_"
+      "0x002ac000"},
+     {{cc, r0, 0xac000002}, false, al, "cc r0 0xac000002", "cc_r0_0xac000002"},
+     {{cs, r2, 0x00000ab0}, false, al, "cs r2 0x00000ab0", "cs_r2_0x00000ab0"},
+     {{vs, r0, 0x00002ac0}, false, al, "vs r0 0x00002ac0", "vs_r0_0x00002ac0"},
+     {{le, r10, 0x000ab000},
+      false,
+      al,
+      "le r10 0x000ab000",
+      "le_r10_"
+      "0x000ab000"},
+     {{ge, r9, 0x0003fc00}, false, al, "ge r9 0x0003fc00", "ge_r9_0x0003fc00"},
+     {{lt, r1, 0x00003fc0}, false, al, "lt r1 0x00003fc0", "lt_r1_0x00003fc0"},
+     {{ge, r5, 0x000000ff}, false, al, "ge r5 0x000000ff", "ge_r5_0x000000ff"},
+     {{le, r11, 0x2ac00000},
+      false,
+      al,
+      "le r11 0x2ac00000",
+      "le_r11_"
+      "0x2ac00000"},
+     {{le, r9, 0x002ac000}, false, al, "le r9 0x002ac000", "le_r9_0x002ac000"},
+     {{hi, r12, 0xf000000f},
+      false,
+      al,
+      "hi r12 0xf000000f",
+      "hi_r12_"
+      "0xf000000f"},
+     {{lt, r3, 0x02ac0000}, false, al, "lt r3 0x02ac0000", "lt_r3_0x02ac0000"},
+     {{al, r13, 0x2ac00000},
+      false,
+      al,
+      "al r13 0x2ac00000",
+      "al_r13_"
+      "0x2ac00000"},
+     {{vs, r12, 0x00000ab0},
+      false,
+      al,
+      "vs r12 0x00000ab0",
+      "vs_r12_"
+      "0x00000ab0"},
+     {{gt, r3, 0x3fc00000}, false, al, "gt r3 0x3fc00000", "gt_r3_0x3fc00000"},
+     {{gt, r0, 0x2ac00000}, false, al, "gt r0 0x2ac00000", "gt_r0_0x2ac00000"},
+     {{eq, r15, 0x000002ac},
+      false,
+      al,
+      "eq r15 0x000002ac",
+      "eq_r15_"
+      "0x000002ac"},
+     {{gt, r1, 0x000ab000}, false, al, "gt r1 0x000ab000", "gt_r1_0x000ab000"},
+     {{gt, r2, 0x2ac00000}, false, al, "gt r2 0x2ac00000", "gt_r2_0x2ac00000"},
+     {{mi, r15, 0x00ab0000},
+      false,
+      al,
+      "mi r15 0x00ab0000",
+      "mi_r15_"
+      "0x00ab0000"},
+     {{mi, r1, 0x000ab000}, false, al, "mi r1 0x000ab000", "mi_r1_0x000ab000"},
+     {{ge, r12, 0x0ab00000},
+      false,
+      al,
+      "ge r12 0x0ab00000",
+      "ge_r12_"
+      "0x0ab00000"},
+     {{gt, r5, 0x000000ab}, false, al, "gt r5 0x000000ab", "gt_r5_0x000000ab"},
+     {{gt, r4, 0x00000000}, false, al, "gt r4 0x00000000", "gt_r4_0x00000000"},
+     {{al, r13, 0xc000003f},
+      false,
+      al,
+      "al r13 0xc000003f",
+      "al_r13_"
+      "0xc000003f"},
+     {{ls, r7, 0xff000000}, false, al, "ls r7 0xff000000", "ls_r7_0xff000000"},
+     {{vs, r0, 0x00000ff0}, false, al, "vs r0 0x00000ff0", "vs_r0_0x00000ff0"},
+     {{hi, r9, 0x02ac0000}, false, al, "hi r9 0x02ac0000", "hi_r9_0x02ac0000"},
+     {{cs, r1, 0xc000002a}, false, al, "cs r1 0xc000002a", "cs_r1_0xc000002a"},
+     {{hi, r8, 0xf000000f}, false, al, "hi r8 0xf000000f", "hi_r8_0xf000000f"},
+     {{gt, r1, 0xb000000a}, false, al, "gt r1 0xb000000a", "gt_r1_0xb000000a"},
+     {{gt, r2, 0x0002ac00}, false, al, "gt r2 0x0002ac00", "gt_r2_0x0002ac00"},
+     {{vs, r5, 0x000000ab}, false, al, "vs r5 0x000000ab", "vs_r5_0x000000ab"},
+     {{cc, r12, 0x000ff000},
+      false,
+      al,
+      "cc r12 0x000ff000",
+      "cc_r12_"
+      "0x000ff000"},
+     {{ge, r0, 0x00003fc0}, false, al, "ge r0 0x00003fc0", "ge_r0_0x00003fc0"},
+     {{ls, r12, 0x00ab0000},
+      false,
+      al,
+      "ls r12 0x00ab0000",
+      "ls_r12_"
+      "0x00ab0000"},
+     {{vs, r4, 0x000003fc}, false, al, "vs r4 0x000003fc", "vs_r4_0x000003fc"},
+     {{ls, r4, 0x00003fc0}, false, al, "ls r4 0x00003fc0", "ls_r4_0x00003fc0"},
+     {{eq, r9, 0xb000000a}, false, al, "eq r9 0xb000000a", "eq_r9_0xb000000a"},
+     {{cs, r9, 0x2ac00000}, false, al, "cs r9 0x2ac00000", "cs_r9_0x2ac00000"},
+     {{vs, r12, 0x0000ff00},
+      false,
+      al,
+      "vs r12 0x0000ff00",
+      "vs_r12_"
+      "0x0000ff00"},
+     {{vc, r1, 0x0000ff00}, false, al, "vc r1 0x0000ff00", "vc_r1_0x0000ff00"},
+     {{hi, r12, 0xff000000},
+      false,
+      al,
+      "hi r12 0xff000000",
+      "hi_r12_"
+      "0xff000000"},
+     {{cs, r12, 0x0002ac00},
+      false,
+      al,
+      "cs r12 0x0002ac00",
+      "cs_r12_"
+      "0x0002ac00"},
+     {{mi, r11, 0x03fc0000},
+      false,
+      al,
+      "mi r11 0x03fc0000",
+      "mi_r11_"
+      "0x03fc0000"},
+     {{eq, r2, 0x000ff000}, false, al, "eq r2 0x000ff000", "eq_r2_0x000ff000"},
+     {{al, r6, 0x00000ff0}, false, al, "al r6 0x00000ff0", "al_r6_0x00000ff0"},
+     {{cs, r7, 0x000003fc}, false, al, "cs r7 0x000003fc", "cs_r7_0x000003fc"},
+     {{pl, r11, 0xb000000a},
+      false,
+      al,
+      "pl r11 0xb000000a",
+      "pl_r11_"
+      "0xb000000a"},
+     {{ne, r15, 0x000ff000},
+      false,
+      al,
+      "ne r15 0x000ff000",
+      "ne_r15_"
+      "0x000ff000"},
+     {{mi, r14, 0x00ab0000},
+      false,
+      al,
+      "mi r14 0x00ab0000",
+      "mi_r14_"
+      "0x00ab0000"},
+     {{hi, r4, 0x0000ff00}, false, al, "hi r4 0x0000ff00", "hi_r4_0x0000ff00"},
+     {{ge, r1, 0x000002ac}, false, al, "ge r1 0x000002ac", "ge_r1_0x000002ac"},
+     {{gt, r7, 0xb000000a}, false, al, "gt r7 0xb000000a", "gt_r7_0xb000000a"},
+     {{gt, r2, 0x00000000}, false, al, "gt r2 0x00000000", "gt_r2_0x00000000"},
+     {{cc, r2, 0xb000000a}, false, al, "cc r2 0xb000000a", "cc_r2_0xb000000a"},
+     {{vs, r14, 0x000ab000},
+      false,
+      al,
+      "vs r14 0x000ab000",
+      "vs_r14_"
+      "0x000ab000"},
+     {{lt, r5, 0x000002ac}, false, al, "lt r5 0x000002ac", "lt_r5_0x000002ac"},
+     {{cc, r13, 0x0000ff00},
+      false,
+      al,
+      "cc r13 0x0000ff00",
+      "cc_r13_"
+      "0x0000ff00"},
+     {{hi, r15, 0x000002ac},
+      false,
+      al,
+      "hi r15 0x000002ac",
+      "hi_r15_"
+      "0x000002ac"},
+     {{ge, r1, 0x00ff0000}, false, al, "ge r1 0x00ff0000", "ge_r1_0x00ff0000"},
+     {{lt, r15, 0x00002ac0},
+      false,
+      al,
+      "lt r15 0x00002ac0",
+      "lt_r15_"
+      "0x00002ac0"},
+     {{lt, r8, 0x000ff000}, false, al, "lt r8 0x000ff000", "lt_r8_0x000ff000"},
+     {{hi, r10, 0xc000002a},
+      false,
+      al,
+      "hi r10 0xc000002a",
+      "hi_r10_"
+      "0xc000002a"},
+     {{eq, r12, 0x000ab000},
+      false,
+      al,
+      "eq r12 0x000ab000",
+      "eq_r12_"
+      "0x000ab000"},
+     {{vs, r11, 0x00002ac0},
+      false,
+      al,
+      "vs r11 0x00002ac0",
+      "vs_r11_"
+      "0x00002ac0"},
+     {{hi, r10, 0x000003fc},
+      false,
+      al,
+      "hi r10 0x000003fc",
+      "hi_r10_"
+      "0x000003fc"},
+     {{cc, r8, 0x000003fc}, false, al, "cc r8 0x000003fc", "cc_r8_0x000003fc"},
+     {{vc, r11, 0x00000ab0},
+      false,
+      al,
+      "vc r11 0x00000ab0",
+      "vc_r11_"
+      "0x00000ab0"},
+     {{le, r3, 0xac000002}, false, al, "le r3 0xac000002", "le_r3_0xac000002"},
+     {{cc, r11, 0xc000002a},
+      false,
+      al,
+      "cc r11 0xc000002a",
+      "cc_r11_"
+      "0xc000002a"},
+     {{lt, r6, 0xab000000}, false, al, "lt r6 0xab000000", "lt_r6_0xab000000"},
+     {{hi, r1, 0x00003fc0}, false, al, "hi r1 0x00003fc0", "hi_r1_0x00003fc0"},
+     {{vc, r3, 0x00002ac0}, false, al, "vc r3 0x00002ac0", "vc_r3_0x00002ac0"},
+     {{vc, r6, 0x00000ab0}, false, al, "vc r6 0x00000ab0", "vc_r6_0x00000ab0"},
+     {{ls, r6, 0x03fc0000}, false, al, "ls r6 0x03fc0000", "ls_r6_0x03fc0000"},
+     {{hi, r11, 0x0ab00000},
+      false,
+      al,
+      "hi r11 0x0ab00000",
+      "hi_r11_"
+      "0x0ab00000"},
+     {{lt, r12, 0x0002ac00},
+      false,
+      al,
+      "lt r12 0x0002ac00",
+      "lt_r12_"
+      "0x0002ac00"},
+     {{al, r8, 0xab000000}, false, al, "al r8 0xab000000", "al_r8_0xab000000"},
+     {{vs, r2, 0x00000ab0}, false, al, "vs r2 0x00000ab0", "vs_r2_0x00000ab0"},
+     {{hi, r14, 0x02ac0000},
+      false,
+      al,
+      "hi r14 0x02ac0000",
+      "hi_r14_"
+      "0x02ac0000"},
+     {{cs, r3, 0x00000ff0}, false, al, "cs r3 0x00000ff0", "cs_r3_0x00000ff0"},
+     {{cc, r9, 0xb000000a}, false, al, "cc r9 0xb000000a", "cc_r9_0xb000000a"},
+     {{vc, r9, 0x00000ff0}, false, al, "vc r9 0x00000ff0", "vc_r9_0x00000ff0"},
+     {{ne, r9, 0xab000000}, false, al, "ne r9 0xab000000", "ne_r9_0xab000000"},
+     {{cc, r10, 0xb000000a},
+      false,
+      al,
+      "cc r10 0xb000000a",
+      "cc_r10_"
+      "0xb000000a"},
+     {{ls, r11, 0xb000000a},
+      false,
+      al,
+      "ls r11 0xb000000a",
+      "ls_r11_"
+      "0xb000000a"},
+     {{lt, r11, 0x00ff0000},
+      false,
+      al,
+      "lt r11 0x00ff0000",
+      "lt_r11_"
+      "0x00ff0000"},
+     {{lt, r3, 0x000003fc}, false, al, "lt r3 0x000003fc", "lt_r3_0x000003fc"},
+     {{gt, r14, 0x00002ac0},
+      false,
+      al,
+      "gt r14 0x00002ac0",
+      "gt_r14_"
+      "0x00002ac0"},
+     {{ls, r8, 0xc000003f}, false, al, "ls r8 0xc000003f", "ls_r8_0xc000003f"},
+     {{al, r11, 0x000ab000},
+      false,
+      al,
+      "al r11 0x000ab000",
+      "al_r11_"
+      "0x000ab000"},
+     {{lt, r7, 0x000ab000}, false, al, "lt r7 0x000ab000", "lt_r7_0x000ab000"},
+     {{vs, r14, 0xff000000},
+      false,
+      al,
+      "vs r14 0xff000000",
+      "vs_r14_"
+      "0xff000000"},
+     {{vc, r2, 0xab000000}, false, al, "vc r2 0xab000000", "vc_r2_0xab000000"},
+     {{ne, r3, 0x00000ff0}, false, al, "ne r3 0x00000ff0", "ne_r3_0x00000ff0"},
+     {{ne, r15, 0x02ac0000},
+      false,
+      al,
+      "ne r15 0x02ac0000",
+      "ne_r15_"
+      "0x02ac0000"},
+     {{gt, r3, 0x000ff000}, false, al, "gt r3 0x000ff000", "gt_r3_0x000ff000"},
+     {{pl, r1, 0x2ac00000}, false, al, "pl r1 0x2ac00000", "pl_r1_0x2ac00000"},
+     {{mi, r1, 0x00002ac0}, false, al, "mi r1 0x00002ac0", "mi_r1_0x00002ac0"},
+     {{vc, r6, 0xac000002}, false, al, "vc r6 0xac000002", "vc_r6_0xac000002"},
+     {{vs, r2, 0x0ff00000}, false, al, "vs r2 0x0ff00000", "vs_r2_0x0ff00000"},
+     {{ge, r2, 0x000003fc}, false, al, "ge r2 0x000003fc", "ge_r2_0x000003fc"},
+     {{cs, r15, 0x0000ff00},
+      false,
+      al,
+      "cs r15 0x0000ff00",
+      "cs_r15_"
+      "0x0000ff00"},
+     {{lt, r3, 0x000002ac}, false, al, "lt r3 0x000002ac", "lt_r3_0x000002ac"},
+     {{cs, r6, 0xff000000}, false, al, "cs r6 0xff000000", "cs_r6_0xff000000"},
+     {{ge, r14, 0x000000ff},
+      false,
+      al,
+      "ge r14 0x000000ff",
+      "ge_r14_"
+      "0x000000ff"},
+     {{gt, r7, 0x03fc0000}, false, al, "gt r7 0x03fc0000", "gt_r7_0x03fc0000"},
+     {{ne, r8, 0x000ff000}, false, al, "ne r8 0x000ff000", "ne_r8_0x000ff000"},
+     {{gt, r14, 0xc000002a},
+      false,
+      al,
+      "gt r14 0xc000002a",
+      "gt_r14_"
+      "0xc000002a"},
+     {{hi, r12, 0x0000ff00},
+      false,
+      al,
+      "hi r12 0x0000ff00",
+      "hi_r12_"
+      "0x0000ff00"},
+     {{le, r15, 0x00003fc0},
+      false,
+      al,
+      "le r15 0x00003fc0",
+      "le_r15_"
+      "0x00003fc0"},
+     {{eq, r13, 0x000ab000},
+      false,
+      al,
+      "eq r13 0x000ab000",
+      "eq_r13_"
+      "0x000ab000"},
+     {{vc, r7, 0x000ab000}, false, al, "vc r7 0x000ab000", "vc_r7_0x000ab000"},
+     {{gt, r7, 0xf000000f}, false, al, "gt r7 0xf000000f", "gt_r7_0xf000000f"},
+     {{cc, r6, 0xac000002}, false, al, "cc r6 0xac000002", "cc_r6_0xac000002"},
+     {{cs, r14, 0x000000ff},
+      false,
+      al,
+      "cs r14 0x000000ff",
+      "cs_r14_"
+      "0x000000ff"},
+     {{ne, r2, 0x0003fc00}, false, al, "ne r2 0x0003fc00", "ne_r2_0x0003fc00"},
+     {{vs, r1, 0x002ac000}, false, al, "vs r1 0x002ac000", "vs_r1_0x002ac000"},
+     {{eq, r8, 0x002ac000}, false, al, "eq r8 0x002ac000", "eq_r8_0x002ac000"},
+     {{lt, r8, 0x0000ff00}, false, al, "lt r8 0x0000ff00", "lt_r8_0x0000ff00"},
+     {{vs, r9, 0xc000003f}, false, al, "vs r9 0xc000003f", "vs_r9_0xc000003f"},
+     {{mi, r11, 0xff000000},
+      false,
+      al,
+      "mi r11 0xff000000",
+      "mi_r11_"
+      "0xff000000"},
+     {{cs, r12, 0x03fc0000},
+      false,
+      al,
+      "cs r12 0x03fc0000",
+      "cs_r12_"
+      "0x03fc0000"},
+     {{lt, r5, 0xc000002a}, false, al, "lt r5 0xc000002a", "lt_r5_0xc000002a"},
+     {{vc, r6, 0x000000ab}, false, al, "vc r6 0x000000ab", "vc_r6_0x000000ab"},
+     {{ls, r10, 0x0ab00000},
+      false,
+      al,
+      "ls r10 0x0ab00000",
+      "ls_r10_"
+      "0x0ab00000"},
+     {{al, r11, 0x00ff0000},
+      false,
+      al,
+      "al r11 0x00ff0000",
+      "al_r11_"
+      "0x00ff0000"},
+     {{hi, r13, 0x00000ab0},
+      false,
+      al,
+      "hi r13 0x00000ab0",
+      "hi_r13_"
+      "0x00000ab0"},
+     {{ls, r0, 0xab000000}, false, al, "ls r0 0xab000000", "ls_r0_0xab000000"},
+     {{le, r5, 0xab000000}, false, al, "le r5 0xab000000", "le_r5_0xab000000"},
+     {{vs, r4, 0x00ff0000}, false, al, "vs r4 0x00ff0000", "vs_r4_0x00ff0000"},
+     {{al, r10, 0x03fc0000},
+      false,
+      al,
+      "al r10 0x03fc0000",
+      "al_r10_"
+      "0x03fc0000"},
+     {{al, r8, 0x000003fc}, false, al, "al r8 0x000003fc", "al_r8_0x000003fc"},
+     {{vs, r11, 0xab000000},
+      false,
+      al,
+      "vs r11 0xab000000",
+      "vs_r11_"
+      "0xab000000"},
+     {{eq, r2, 0x00000ff0}, false, al, "eq r2 0x00000ff0", "eq_r2_0x00000ff0"},
+     {{vc, r4, 0x00000ff0}, false, al, "vc r4 0x00000ff0", "vc_r4_0x00000ff0"},
+     {{vc, r9, 0x00002ac0}, false, al, "vc r9 0x00002ac0", "vc_r9_0x00002ac0"},
+     {{cc, r11, 0x00ff0000},
+      false,
+      al,
+      "cc r11 0x00ff0000",
+      "cc_r11_"
+      "0x00ff0000"},
+     {{cc, r13, 0x00ff0000},
+      false,
+      al,
+      "cc r13 0x00ff0000",
+      "cc_r13_"
+      "0x00ff0000"},
+     {{pl, r0, 0x00000ab0}, false, al, "pl r0 0x00000ab0", "pl_r0_0x00000ab0"},
+     {{al, r2, 0x02ac0000}, false, al, "al r2 0x02ac0000", "al_r2_0x02ac0000"},
+     {{hi, r11, 0xc000002a},
+      false,
+      al,
+      "hi r11 0xc000002a",
+      "hi_r11_"
+      "0xc000002a"},
+     {{ne, r3, 0xf000000f}, false, al, "ne r3 0xf000000f", "ne_r3_0xf000000f"},
+     {{cc, r15, 0x0ab00000},
+      false,
+      al,
+      "cc r15 0x0ab00000",
+      "cc_r15_"
+      "0x0ab00000"},
+     {{ge, r12, 0x00ff0000},
+      false,
+      al,
+      "ge r12 0x00ff0000",
+      "ge_r12_"
+      "0x00ff0000"},
+     {{le, r12, 0x002ac000},
+      false,
+      al,
+      "le r12 0x002ac000",
+      "le_r12_"
+      "0x002ac000"},
+     {{mi, r12, 0xc000003f},
+      false,
+      al,
+      "mi r12 0xc000003f",
+      "mi_r12_"
+      "0xc000003f"},
+     {{lt, r0, 0xfc000003}, false, al, "lt r0 0xfc000003", "lt_r0_0xfc000003"},
+     {{vc, r15, 0x000ab000},
+      false,
+      al,
+      "vc r15 0x000ab000",
+      "vc_r15_"
+      "0x000ab000"},
+     {{pl, r5, 0x3fc00000}, false, al, "pl r5 0x3fc00000", "pl_r5_0x3fc00000"},
+     {{vs, r15, 0x00ab0000},
+      false,
+      al,
+      "vs r15 0x00ab0000",
+      "vs_r15_"
+      "0x00ab0000"},
+     {{hi, r3, 0x00ff0000}, false, al, "hi r3 0x00ff0000", "hi_r3_0x00ff0000"},
+     {{lt, r8, 0x000000ff}, false, al, "lt r8 0x000000ff", "lt_r8_0x000000ff"},
+     {{le, r2, 0x000000ff}, false, al, "le r2 0x000000ff", "le_r2_0x000000ff"},
+     {{vs, r0, 0x0002ac00}, false, al, "vs r0 0x0002ac00", "vs_r0_0x0002ac00"},
+     {{vs, r2, 0xff000000}, false, al, "vs r2 0xff000000", "vs_r2_0xff000000"},
+     {{pl, r6, 0xab000000}, false, al, "pl r6 0xab000000", "pl_r6_0xab000000"},
+     {{ls, r4, 0x3fc00000}, false, al, "ls r4 0x3fc00000", "ls_r4_0x3fc00000"},
+     {{ls, r3, 0x000ab000}, false, al, "ls r3 0x000ab000", "ls_r3_0x000ab000"},
+     {{eq, r11, 0x000ab000},
+      false,
+      al,
+      "eq r11 0x000ab000",
+      "eq_r11_"
+      "0x000ab000"},
+     {{vc, r6, 0x03fc0000}, false, al, "vc r6 0x03fc0000", "vc_r6_0x03fc0000"},
+     {{mi, r14, 0x0000ab00},
+      false,
+      al,
+      "mi r14 0x0000ab00",
+      "mi_r14_"
+      "0x0000ab00"},
+     {{pl, r8, 0xab000000}, false, al, "pl r8 0xab000000", "pl_r8_0xab000000"},
+     {{pl, r8, 0xc000003f}, false, al, "pl r8 0xc000003f", "pl_r8_0xc000003f"},
+     {{eq, r14, 0x003fc000},
+      false,
+      al,
+      "eq r14 0x003fc000",
+      "eq_r14_"
+      "0x003fc000"},
+     {{vs, r9, 0x00ff0000}, false, al, "vs r9 0x00ff0000", "vs_r9_0x00ff0000"},
+     {{vs, r1, 0x00002ac0}, false, al, "vs r1 0x00002ac0", "vs_r1_0x00002ac0"},
+     {{le, r1, 0x00ff0000}, false, al, "le r1 0x00ff0000", "le_r1_0x00ff0000"},
+     {{lt, r7, 0x000ff000}, false, al, "lt r7 0x000ff000", "lt_r7_0x000ff000"},
+     {{mi, r6, 0x002ac000}, false, al, "mi r6 0x002ac000", "mi_r6_0x002ac000"},
+     {{vc, r11, 0xc000003f},
+      false,
+      al,
+      "vc r11 0xc000003f",
+      "vc_r11_"
+      "0xc000003f"},
+     {{lt, r4, 0x00000000}, false, al, "lt r4 0x00000000", "lt_r4_0x00000000"},
+     {{pl, r0, 0xac000002}, false, al, "pl r0 0xac000002", "pl_r0_0xac000002"},
+     {{ls, r10, 0xc000003f},
+      false,
+      al,
+      "ls r10 0xc000003f",
+      "ls_r10_"
+      "0xc000003f"},
+     {{cc, r15, 0xc000002a},
+      false,
+      al,
+      "cc r15 0xc000002a",
+      "cc_r15_0xc000002a"}};
 
 // These headers each contain an array of `TestResult` with the reference output
 // values. The reference arrays are names `kReference{mnemonic}`.
diff --git a/test/aarch32/test-assembler-cond-rd-operand-const-a32-cannot-use-pc.cc b/test/aarch32/test-assembler-cond-rd-operand-const-a32-cannot-use-pc.cc
index e012224..9d46a91 100644
--- a/test/aarch32/test-assembler-cond-rd-operand-const-a32-cannot-use-pc.cc
+++ b/test/aarch32/test-assembler-cond-rd-operand-const-a32-cannot-use-pc.cc
@@ -94,666 +94,1286 @@
 };
 
 // Each element of this array produce one instruction encoding.
-const TestData kTests[] = {
-    {{ls, r0, 0x003fc000}, false, al, "ls r0 0x003fc000", "ls_r0_0x003fc000"},
-    {{eq, r13, 0xff000000}, false, al, "eq r13 0xff000000", "eq_r13_"
-                                                            "0xff000000"},
-    {{al, r0, 0x0002ac00}, false, al, "al r0 0x0002ac00", "al_r0_0x0002ac00"},
-    {{gt, r13, 0x002ac000}, false, al, "gt r13 0x002ac000", "gt_r13_"
-                                                            "0x002ac000"},
-    {{mi, r3, 0x000002ac}, false, al, "mi r3 0x000002ac", "mi_r3_0x000002ac"},
-    {{ls, r0, 0x000000ff}, false, al, "ls r0 0x000000ff", "ls_r0_0x000000ff"},
-    {{ls, r7, 0x0000ab00}, false, al, "ls r7 0x0000ab00", "ls_r7_0x0000ab00"},
-    {{cc, r11, 0x0ff00000}, false, al, "cc r11 0x0ff00000", "cc_r11_"
-                                                            "0x0ff00000"},
-    {{vs, r5, 0xc000003f}, false, al, "vs r5 0xc000003f", "vs_r5_0xc000003f"},
-    {{gt, r3, 0x00ab0000}, false, al, "gt r3 0x00ab0000", "gt_r3_0x00ab0000"},
-    {{hi, r7, 0xff000000}, false, al, "hi r7 0xff000000", "hi_r7_0xff000000"},
-    {{vc, r10, 0xff000000}, false, al, "vc r10 0xff000000", "vc_r10_"
-                                                            "0xff000000"},
-    {{hi, r10, 0x002ac000}, false, al, "hi r10 0x002ac000", "hi_r10_"
-                                                            "0x002ac000"},
-    {{ne, r9, 0x00ff0000}, false, al, "ne r9 0x00ff0000", "ne_r9_0x00ff0000"},
-    {{ge, r3, 0xf000000f}, false, al, "ge r3 0xf000000f", "ge_r3_0xf000000f"},
-    {{hi, r0, 0x000ff000}, false, al, "hi r0 0x000ff000", "hi_r0_0x000ff000"},
-    {{mi, r2, 0x00002ac0}, false, al, "mi r2 0x00002ac0", "mi_r2_0x00002ac0"},
-    {{ge, r6, 0x000ab000}, false, al, "ge r6 0x000ab000", "ge_r6_0x000ab000"},
-    {{mi, r9, 0x00ff0000}, false, al, "mi r9 0x00ff0000", "mi_r9_0x00ff0000"},
-    {{cs, r2, 0x000ff000}, false, al, "cs r2 0x000ff000", "cs_r2_0x000ff000"},
-    {{lt, r5, 0x003fc000}, false, al, "lt r5 0x003fc000", "lt_r5_0x003fc000"},
-    {{al, r1, 0x000ff000}, false, al, "al r1 0x000ff000", "al_r1_0x000ff000"},
-    {{mi, r6, 0x000000ab}, false, al, "mi r6 0x000000ab", "mi_r6_0x000000ab"},
-    {{pl, r9, 0xac000002}, false, al, "pl r9 0xac000002", "pl_r9_0xac000002"},
-    {{hi, r8, 0x000ff000}, false, al, "hi r8 0x000ff000", "hi_r8_0x000ff000"},
-    {{vs, r0, 0x00002ac0}, false, al, "vs r0 0x00002ac0", "vs_r0_0x00002ac0"},
-    {{ls, r4, 0xab000000}, false, al, "ls r4 0xab000000", "ls_r4_0xab000000"},
-    {{vs, r6, 0x000ab000}, false, al, "vs r6 0x000ab000", "vs_r6_0x000ab000"},
-    {{vc, r13, 0x0000ab00}, false, al, "vc r13 0x0000ab00", "vc_r13_"
-                                                            "0x0000ab00"},
-    {{mi, r0, 0xab000000}, false, al, "mi r0 0xab000000", "mi_r0_0xab000000"},
-    {{vs, r9, 0x0ab00000}, false, al, "vs r9 0x0ab00000", "vs_r9_0x0ab00000"},
-    {{pl, r0, 0x00003fc0}, false, al, "pl r0 0x00003fc0", "pl_r0_0x00003fc0"},
-    {{al, r2, 0x0000ff00}, false, al, "al r2 0x0000ff00", "al_r2_0x0000ff00"},
-    {{gt, r11, 0x00000ab0}, false, al, "gt r11 0x00000ab0", "gt_r11_"
-                                                            "0x00000ab0"},
-    {{vs, r10, 0xac000002}, false, al, "vs r10 0xac000002", "vs_r10_"
-                                                            "0xac000002"},
-    {{cs, r3, 0x0002ac00}, false, al, "cs r3 0x0002ac00", "cs_r3_0x0002ac00"},
-    {{vc, r13, 0x000000ab}, false, al, "vc r13 0x000000ab", "vc_r13_"
-                                                            "0x000000ab"},
-    {{cs, r11, 0x003fc000}, false, al, "cs r11 0x003fc000", "cs_r11_"
-                                                            "0x003fc000"},
-    {{vs, r14, 0x0000ab00}, false, al, "vs r14 0x0000ab00", "vs_r14_"
-                                                            "0x0000ab00"},
-    {{eq, r11, 0xfc000003}, false, al, "eq r11 0xfc000003", "eq_r11_"
-                                                            "0xfc000003"},
-    {{pl, r13, 0x00000ab0}, false, al, "pl r13 0x00000ab0", "pl_r13_"
-                                                            "0x00000ab0"},
-    {{ge, r4, 0xb000000a}, false, al, "ge r4 0xb000000a", "ge_r4_0xb000000a"},
-    {{pl, r12, 0x00003fc0}, false, al, "pl r12 0x00003fc0", "pl_r12_"
-                                                            "0x00003fc0"},
-    {{le, r4, 0x0000ff00}, false, al, "le r4 0x0000ff00", "le_r4_0x0000ff00"},
-    {{pl, r4, 0x003fc000}, false, al, "pl r4 0x003fc000", "pl_r4_0x003fc000"},
-    {{hi, r0, 0x002ac000}, false, al, "hi r0 0x002ac000", "hi_r0_0x002ac000"},
-    {{mi, r1, 0x00003fc0}, false, al, "mi r1 0x00003fc0", "mi_r1_0x00003fc0"},
-    {{hi, r9, 0xf000000f}, false, al, "hi r9 0xf000000f", "hi_r9_0xf000000f"},
-    {{al, r11, 0x0000ab00}, false, al, "al r11 0x0000ab00", "al_r11_"
-                                                            "0x0000ab00"},
-    {{ne, r6, 0x00ab0000}, false, al, "ne r6 0x00ab0000", "ne_r6_0x00ab0000"},
-    {{lt, r4, 0xff000000}, false, al, "lt r4 0xff000000", "lt_r4_0xff000000"},
-    {{pl, r0, 0x0ab00000}, false, al, "pl r0 0x0ab00000", "pl_r0_0x0ab00000"},
-    {{ls, r2, 0xc000002a}, false, al, "ls r2 0xc000002a", "ls_r2_0xc000002a"},
-    {{lt, r5, 0x00003fc0}, false, al, "lt r5 0x00003fc0", "lt_r5_0x00003fc0"},
-    {{mi, r5, 0x000003fc}, false, al, "mi r5 0x000003fc", "mi_r5_0x000003fc"},
-    {{ls, r11, 0xb000000a}, false, al, "ls r11 0xb000000a", "ls_r11_"
-                                                            "0xb000000a"},
-    {{al, r3, 0x0000ff00}, false, al, "al r3 0x0000ff00", "al_r3_0x0000ff00"},
-    {{vs, r3, 0xfc000003}, false, al, "vs r3 0xfc000003", "vs_r3_0xfc000003"},
-    {{ne, r1, 0xc000002a}, false, al, "ne r1 0xc000002a", "ne_r1_0xc000002a"},
-    {{eq, r10, 0x0003fc00}, false, al, "eq r10 0x0003fc00", "eq_r10_"
-                                                            "0x0003fc00"},
-    {{eq, r3, 0xf000000f}, false, al, "eq r3 0xf000000f", "eq_r3_0xf000000f"},
-    {{vs, r5, 0x000ff000}, false, al, "vs r5 0x000ff000", "vs_r5_0x000ff000"},
-    {{ge, r12, 0x000000ab}, false, al, "ge r12 0x000000ab", "ge_r12_"
-                                                            "0x000000ab"},
-    {{vc, r12, 0xf000000f}, false, al, "vc r12 0xf000000f", "vc_r12_"
-                                                            "0xf000000f"},
-    {{lt, r11, 0x02ac0000}, false, al, "lt r11 0x02ac0000", "lt_r11_"
-                                                            "0x02ac0000"},
-    {{vs, r6, 0x003fc000}, false, al, "vs r6 0x003fc000", "vs_r6_0x003fc000"},
-    {{cs, r8, 0x3fc00000}, false, al, "cs r8 0x3fc00000", "cs_r8_0x3fc00000"},
-    {{le, r5, 0x0002ac00}, false, al, "le r5 0x0002ac00", "le_r5_0x0002ac00"},
-    {{ls, r9, 0x0002ac00}, false, al, "ls r9 0x0002ac00", "ls_r9_0x0002ac00"},
-    {{al, r4, 0x3fc00000}, false, al, "al r4 0x3fc00000", "al_r4_0x3fc00000"},
-    {{lt, r5, 0x000000ff}, false, al, "lt r5 0x000000ff", "lt_r5_0x000000ff"},
-    {{cs, r8, 0xc000002a}, false, al, "cs r8 0xc000002a", "cs_r8_0xc000002a"},
-    {{cs, r0, 0x00000ab0}, false, al, "cs r0 0x00000ab0", "cs_r0_0x00000ab0"},
-    {{cs, r2, 0x3fc00000}, false, al, "cs r2 0x3fc00000", "cs_r2_0x3fc00000"},
-    {{vs, r14, 0xab000000}, false, al, "vs r14 0xab000000", "vs_r14_"
-                                                            "0xab000000"},
-    {{ne, r8, 0x002ac000}, false, al, "ne r8 0x002ac000", "ne_r8_0x002ac000"},
-    {{vs, r1, 0x003fc000}, false, al, "vs r1 0x003fc000", "vs_r1_0x003fc000"},
-    {{al, r7, 0x003fc000}, false, al, "al r7 0x003fc000", "al_r7_0x003fc000"},
-    {{vs, r7, 0x000ab000}, false, al, "vs r7 0x000ab000", "vs_r7_0x000ab000"},
-    {{vc, r12, 0xb000000a}, false, al, "vc r12 0xb000000a", "vc_r12_"
-                                                            "0xb000000a"},
-    {{eq, r2, 0xc000002a}, false, al, "eq r2 0xc000002a", "eq_r2_0xc000002a"},
-    {{lt, r4, 0x0000ff00}, false, al, "lt r4 0x0000ff00", "lt_r4_0x0000ff00"},
-    {{eq, r8, 0x2ac00000}, false, al, "eq r8 0x2ac00000", "eq_r8_0x2ac00000"},
-    {{hi, r7, 0x3fc00000}, false, al, "hi r7 0x3fc00000", "hi_r7_0x3fc00000"},
-    {{mi, r13, 0x3fc00000}, false, al, "mi r13 0x3fc00000", "mi_r13_"
-                                                            "0x3fc00000"},
-    {{al, r2, 0x0002ac00}, false, al, "al r2 0x0002ac00", "al_r2_0x0002ac00"},
-    {{gt, r13, 0xab000000}, false, al, "gt r13 0xab000000", "gt_r13_"
-                                                            "0xab000000"},
-    {{vs, r3, 0x00000ab0}, false, al, "vs r3 0x00000ab0", "vs_r3_0x00000ab0"},
-    {{mi, r14, 0x00000000}, false, al, "mi r14 0x00000000", "mi_r14_"
-                                                            "0x00000000"},
-    {{vs, r10, 0x3fc00000}, false, al, "vs r10 0x3fc00000", "vs_r10_"
-                                                            "0x3fc00000"},
-    {{vc, r7, 0x0ff00000}, false, al, "vc r7 0x0ff00000", "vc_r7_0x0ff00000"},
-    {{al, r3, 0xf000000f}, false, al, "al r3 0xf000000f", "al_r3_0xf000000f"},
-    {{cs, r12, 0x03fc0000}, false, al, "cs r12 0x03fc0000", "cs_r12_"
-                                                            "0x03fc0000"},
-    {{hi, r14, 0xab000000}, false, al, "hi r14 0xab000000", "hi_r14_"
-                                                            "0xab000000"},
-    {{mi, r13, 0x000002ac}, false, al, "mi r13 0x000002ac", "mi_r13_"
-                                                            "0x000002ac"},
-    {{ge, r8, 0x2ac00000}, false, al, "ge r8 0x2ac00000", "ge_r8_0x2ac00000"},
-    {{vc, r14, 0x000003fc}, false, al, "vc r14 0x000003fc", "vc_r14_"
-                                                            "0x000003fc"},
-    {{mi, r4, 0x0000ab00}, false, al, "mi r4 0x0000ab00", "mi_r4_0x0000ab00"},
-    {{hi, r11, 0x0ff00000}, false, al, "hi r11 0x0ff00000", "hi_r11_"
-                                                            "0x0ff00000"},
-    {{gt, r8, 0x000ff000}, false, al, "gt r8 0x000ff000", "gt_r8_0x000ff000"},
-    {{lt, r1, 0x3fc00000}, false, al, "lt r1 0x3fc00000", "lt_r1_0x3fc00000"},
-    {{mi, r12, 0x000000ab}, false, al, "mi r12 0x000000ab", "mi_r12_"
-                                                            "0x000000ab"},
-    {{vs, r12, 0x000003fc}, false, al, "vs r12 0x000003fc", "vs_r12_"
-                                                            "0x000003fc"},
-    {{cs, r10, 0x000ff000}, false, al, "cs r10 0x000ff000", "cs_r10_"
-                                                            "0x000ff000"},
-    {{mi, r12, 0xfc000003}, false, al, "mi r12 0xfc000003", "mi_r12_"
-                                                            "0xfc000003"},
-    {{pl, r8, 0x000000ff}, false, al, "pl r8 0x000000ff", "pl_r8_0x000000ff"},
-    {{lt, r5, 0x00002ac0}, false, al, "lt r5 0x00002ac0", "lt_r5_0x00002ac0"},
-    {{ge, r0, 0xff000000}, false, al, "ge r0 0xff000000", "ge_r0_0xff000000"},
-    {{pl, r0, 0xab000000}, false, al, "pl r0 0xab000000", "pl_r0_0xab000000"},
-    {{ls, r8, 0x000ab000}, false, al, "ls r8 0x000ab000", "ls_r8_0x000ab000"},
-    {{al, r12, 0x00000ff0}, false, al, "al r12 0x00000ff0", "al_r12_"
-                                                            "0x00000ff0"},
-    {{hi, r5, 0x00003fc0}, false, al, "hi r5 0x00003fc0", "hi_r5_0x00003fc0"},
-    {{vs, r7, 0x0003fc00}, false, al, "vs r7 0x0003fc00", "vs_r7_0x0003fc00"},
-    {{ls, r13, 0x0ff00000}, false, al, "ls r13 0x0ff00000", "ls_r13_"
-                                                            "0x0ff00000"},
-    {{al, r7, 0x000000ab}, false, al, "al r7 0x000000ab", "al_r7_0x000000ab"},
-    {{lt, r6, 0x000003fc}, false, al, "lt r6 0x000003fc", "lt_r6_0x000003fc"},
-    {{mi, r9, 0xc000002a}, false, al, "mi r9 0xc000002a", "mi_r9_0xc000002a"},
-    {{ne, r11, 0x003fc000}, false, al, "ne r11 0x003fc000", "ne_r11_"
-                                                            "0x003fc000"},
-    {{cs, r4, 0x00000ab0}, false, al, "cs r4 0x00000ab0", "cs_r4_0x00000ab0"},
-    {{vc, r14, 0x2ac00000}, false, al, "vc r14 0x2ac00000", "vc_r14_"
-                                                            "0x2ac00000"},
-    {{vc, r8, 0x2ac00000}, false, al, "vc r8 0x2ac00000", "vc_r8_0x2ac00000"},
-    {{ge, r10, 0x003fc000}, false, al, "ge r10 0x003fc000", "ge_r10_"
-                                                            "0x003fc000"},
-    {{lt, r14, 0xb000000a}, false, al, "lt r14 0xb000000a", "lt_r14_"
-                                                            "0xb000000a"},
-    {{cs, r12, 0x000ff000}, false, al, "cs r12 0x000ff000", "cs_r12_"
-                                                            "0x000ff000"},
-    {{eq, r2, 0xac000002}, false, al, "eq r2 0xac000002", "eq_r2_0xac000002"},
-    {{le, r11, 0x2ac00000}, false, al, "le r11 0x2ac00000", "le_r11_"
-                                                            "0x2ac00000"},
-    {{le, r8, 0xab000000}, false, al, "le r8 0xab000000", "le_r8_0xab000000"},
-    {{lt, r5, 0x02ac0000}, false, al, "lt r5 0x02ac0000", "lt_r5_0x02ac0000"},
-    {{hi, r13, 0x003fc000}, false, al, "hi r13 0x003fc000", "hi_r13_"
-                                                            "0x003fc000"},
-    {{mi, r1, 0xfc000003}, false, al, "mi r1 0xfc000003", "mi_r1_0xfc000003"},
-    {{cc, r4, 0x0ab00000}, false, al, "cc r4 0x0ab00000", "cc_r4_0x0ab00000"},
-    {{lt, r7, 0x3fc00000}, false, al, "lt r7 0x3fc00000", "lt_r7_0x3fc00000"},
-    {{lt, r3, 0x000002ac}, false, al, "lt r3 0x000002ac", "lt_r3_0x000002ac"},
-    {{pl, r7, 0x00000000}, false, al, "pl r7 0x00000000", "pl_r7_0x00000000"},
-    {{lt, r2, 0x00000000}, false, al, "lt r2 0x00000000", "lt_r2_0x00000000"},
-    {{le, r1, 0x0ff00000}, false, al, "le r1 0x0ff00000", "le_r1_0x0ff00000"},
-    {{lt, r14, 0x0000ff00}, false, al, "lt r14 0x0000ff00", "lt_r14_"
-                                                            "0x0000ff00"},
-    {{cs, r11, 0x3fc00000}, false, al, "cs r11 0x3fc00000", "cs_r11_"
-                                                            "0x3fc00000"},
-    {{ls, r7, 0x00000ff0}, false, al, "ls r7 0x00000ff0", "ls_r7_0x00000ff0"},
-    {{vs, r3, 0x0ab00000}, false, al, "vs r3 0x0ab00000", "vs_r3_0x0ab00000"},
-    {{cs, r12, 0x0003fc00}, false, al, "cs r12 0x0003fc00", "cs_r12_"
-                                                            "0x0003fc00"},
-    {{vc, r3, 0xfc000003}, false, al, "vc r3 0xfc000003", "vc_r3_0xfc000003"},
-    {{vs, r14, 0x0ff00000}, false, al, "vs r14 0x0ff00000", "vs_r14_"
-                                                            "0x0ff00000"},
-    {{vc, r5, 0x00003fc0}, false, al, "vc r5 0x00003fc0", "vc_r5_0x00003fc0"},
-    {{cc, r14, 0x0ff00000}, false, al, "cc r14 0x0ff00000", "cc_r14_"
-                                                            "0x0ff00000"},
-    {{cs, r7, 0x0ff00000}, false, al, "cs r7 0x0ff00000", "cs_r7_0x0ff00000"},
-    {{al, r2, 0x00ab0000}, false, al, "al r2 0x00ab0000", "al_r2_0x00ab0000"},
-    {{gt, r0, 0x00000000}, false, al, "gt r0 0x00000000", "gt_r0_0x00000000"},
-    {{al, r6, 0x000003fc}, false, al, "al r6 0x000003fc", "al_r6_0x000003fc"},
-    {{ge, r2, 0x2ac00000}, false, al, "ge r2 0x2ac00000", "ge_r2_0x2ac00000"},
-    {{vs, r0, 0x03fc0000}, false, al, "vs r0 0x03fc0000", "vs_r0_0x03fc0000"},
-    {{cs, r12, 0x00003fc0}, false, al, "cs r12 0x00003fc0", "cs_r12_"
-                                                            "0x00003fc0"},
-    {{ge, r3, 0x2ac00000}, false, al, "ge r3 0x2ac00000", "ge_r3_0x2ac00000"},
-    {{le, r13, 0x0000ab00}, false, al, "le r13 0x0000ab00", "le_r13_"
-                                                            "0x0000ab00"},
-    {{al, r13, 0x02ac0000}, false, al, "al r13 0x02ac0000", "al_r13_"
-                                                            "0x02ac0000"},
-    {{mi, r4, 0xff000000}, false, al, "mi r4 0xff000000", "mi_r4_0xff000000"},
-    {{cs, r3, 0x00003fc0}, false, al, "cs r3 0x00003fc0", "cs_r3_0x00003fc0"},
-    {{ge, r13, 0x00ab0000}, false, al, "ge r13 0x00ab0000", "ge_r13_"
-                                                            "0x00ab0000"},
-    {{ne, r4, 0x00000ab0}, false, al, "ne r4 0x00000ab0", "ne_r4_0x00000ab0"},
-    {{cc, r3, 0xac000002}, false, al, "cc r3 0xac000002", "cc_r3_0xac000002"},
-    {{pl, r11, 0xab000000}, false, al, "pl r11 0xab000000", "pl_r11_"
-                                                            "0xab000000"},
-    {{eq, r13, 0xfc000003}, false, al, "eq r13 0xfc000003", "eq_r13_"
-                                                            "0xfc000003"},
-    {{ne, r5, 0xc000003f}, false, al, "ne r5 0xc000003f", "ne_r5_0xc000003f"},
-    {{hi, r7, 0xb000000a}, false, al, "hi r7 0xb000000a", "hi_r7_0xb000000a"},
-    {{al, r12, 0xc000002a}, false, al, "al r12 0xc000002a", "al_r12_"
-                                                            "0xc000002a"},
-    {{vs, r8, 0xf000000f}, false, al, "vs r8 0xf000000f", "vs_r8_0xf000000f"},
-    {{cs, r6, 0x00ff0000}, false, al, "cs r6 0x00ff0000", "cs_r6_0x00ff0000"},
-    {{vs, r1, 0x00002ac0}, false, al, "vs r1 0x00002ac0", "vs_r1_0x00002ac0"},
-    {{ls, r2, 0x0ff00000}, false, al, "ls r2 0x0ff00000", "ls_r2_0x0ff00000"},
-    {{mi, r13, 0x0000ab00}, false, al, "mi r13 0x0000ab00", "mi_r13_"
-                                                            "0x0000ab00"},
-    {{al, r4, 0xff000000}, false, al, "al r4 0xff000000", "al_r4_0xff000000"},
-    {{ne, r1, 0x00002ac0}, false, al, "ne r1 0x00002ac0", "ne_r1_0x00002ac0"},
-    {{vc, r14, 0x000002ac}, false, al, "vc r14 0x000002ac", "vc_r14_"
-                                                            "0x000002ac"},
-    {{al, r9, 0xb000000a}, false, al, "al r9 0xb000000a", "al_r9_0xb000000a"},
-    {{ne, r9, 0x000002ac}, false, al, "ne r9 0x000002ac", "ne_r9_0x000002ac"},
-    {{hi, r7, 0x0ff00000}, false, al, "hi r7 0x0ff00000", "hi_r7_0x0ff00000"},
-    {{ne, r10, 0x000ab000}, false, al, "ne r10 0x000ab000", "ne_r10_"
-                                                            "0x000ab000"},
-    {{vs, r0, 0x0003fc00}, false, al, "vs r0 0x0003fc00", "vs_r0_0x0003fc00"},
-    {{cs, r9, 0x002ac000}, false, al, "cs r9 0x002ac000", "cs_r9_0x002ac000"},
-    {{eq, r3, 0x00000ff0}, false, al, "eq r3 0x00000ff0", "eq_r3_0x00000ff0"},
-    {{lt, r5, 0x00ab0000}, false, al, "lt r5 0x00ab0000", "lt_r5_0x00ab0000"},
-    {{pl, r1, 0x00ff0000}, false, al, "pl r1 0x00ff0000", "pl_r1_0x00ff0000"},
-    {{eq, r4, 0x0000ab00}, false, al, "eq r4 0x0000ab00", "eq_r4_0x0000ab00"},
-    {{mi, r13, 0x000000ab}, false, al, "mi r13 0x000000ab", "mi_r13_"
-                                                            "0x000000ab"},
-    {{pl, r12, 0x00000ff0}, false, al, "pl r12 0x00000ff0", "pl_r12_"
-                                                            "0x00000ff0"},
-    {{eq, r3, 0x00002ac0}, false, al, "eq r3 0x00002ac0", "eq_r3_0x00002ac0"},
-    {{le, r12, 0x002ac000}, false, al, "le r12 0x002ac000", "le_r12_"
-                                                            "0x002ac000"},
-    {{ge, r10, 0x000002ac}, false, al, "ge r10 0x000002ac", "ge_r10_"
-                                                            "0x000002ac"},
-    {{vs, r1, 0x00ff0000}, false, al, "vs r1 0x00ff0000", "vs_r1_0x00ff0000"},
-    {{pl, r8, 0x0000ff00}, false, al, "pl r8 0x0000ff00", "pl_r8_0x0000ff00"},
-    {{vs, r9, 0x000ab000}, false, al, "vs r9 0x000ab000", "vs_r9_0x000ab000"},
-    {{ls, r6, 0x003fc000}, false, al, "ls r6 0x003fc000", "ls_r6_0x003fc000"},
-    {{vs, r14, 0x0ab00000}, false, al, "vs r14 0x0ab00000", "vs_r14_"
-                                                            "0x0ab00000"},
-    {{mi, r14, 0xf000000f}, false, al, "mi r14 0xf000000f", "mi_r14_"
-                                                            "0xf000000f"},
-    {{vc, r6, 0xf000000f}, false, al, "vc r6 0xf000000f", "vc_r6_0xf000000f"},
-    {{ne, r4, 0x0000ff00}, false, al, "ne r4 0x0000ff00", "ne_r4_0x0000ff00"},
-    {{gt, r10, 0xfc000003}, false, al, "gt r10 0xfc000003", "gt_r10_"
-                                                            "0xfc000003"},
-    {{cs, r6, 0x3fc00000}, false, al, "cs r6 0x3fc00000", "cs_r6_0x3fc00000"},
-    {{al, r10, 0x0ff00000}, false, al, "al r10 0x0ff00000", "al_r10_"
-                                                            "0x0ff00000"},
-    {{pl, r12, 0x00000000}, false, al, "pl r12 0x00000000", "pl_r12_"
-                                                            "0x00000000"},
-    {{cc, r5, 0xfc000003}, false, al, "cc r5 0xfc000003", "cc_r5_0xfc000003"},
-    {{pl, r10, 0x0003fc00}, false, al, "pl r10 0x0003fc00", "pl_r10_"
-                                                            "0x0003fc00"},
-    {{eq, r8, 0xac000002}, false, al, "eq r8 0xac000002", "eq_r8_0xac000002"},
-    {{vs, r12, 0xac000002}, false, al, "vs r12 0xac000002", "vs_r12_"
-                                                            "0xac000002"},
-    {{ne, r9, 0x00ab0000}, false, al, "ne r9 0x00ab0000", "ne_r9_0x00ab0000"},
-    {{al, r1, 0x0002ac00}, false, al, "al r1 0x0002ac00", "al_r1_0x0002ac00"},
-    {{ne, r6, 0x0000ff00}, false, al, "ne r6 0x0000ff00", "ne_r6_0x0000ff00"},
-    {{mi, r3, 0x03fc0000}, false, al, "mi r3 0x03fc0000", "mi_r3_0x03fc0000"},
-    {{ge, r10, 0x0002ac00}, false, al, "ge r10 0x0002ac00", "ge_r10_"
-                                                            "0x0002ac00"},
-    {{vc, r5, 0xb000000a}, false, al, "vc r5 0xb000000a", "vc_r5_0xb000000a"},
-    {{pl, r1, 0x000003fc}, false, al, "pl r1 0x000003fc", "pl_r1_0x000003fc"},
-    {{mi, r2, 0x02ac0000}, false, al, "mi r2 0x02ac0000", "mi_r2_0x02ac0000"},
-    {{gt, r7, 0x0003fc00}, false, al, "gt r7 0x0003fc00", "gt_r7_0x0003fc00"},
-    {{vs, r0, 0x00000000}, false, al, "vs r0 0x00000000", "vs_r0_0x00000000"},
-    {{vc, r11, 0xc000003f}, false, al, "vc r11 0xc000003f", "vc_r11_"
-                                                            "0xc000003f"},
-    {{vc, r13, 0x0ab00000}, false, al, "vc r13 0x0ab00000", "vc_r13_"
-                                                            "0x0ab00000"},
-    {{ge, r5, 0x0002ac00}, false, al, "ge r5 0x0002ac00", "ge_r5_0x0002ac00"},
-    {{ge, r8, 0xc000003f}, false, al, "ge r8 0xc000003f", "ge_r8_0xc000003f"},
-    {{al, r14, 0x000002ac}, false, al, "al r14 0x000002ac", "al_r14_"
-                                                            "0x000002ac"},
-    {{vs, r1, 0x00000000}, false, al, "vs r1 0x00000000", "vs_r1_0x00000000"},
-    {{vc, r2, 0x3fc00000}, false, al, "vc r2 0x3fc00000", "vc_r2_0x3fc00000"},
-    {{ne, r2, 0xc000003f}, false, al, "ne r2 0xc000003f", "ne_r2_0xc000003f"},
-    {{cs, r0, 0x0ab00000}, false, al, "cs r0 0x0ab00000", "cs_r0_0x0ab00000"},
-    {{le, r5, 0xfc000003}, false, al, "le r5 0xfc000003", "le_r5_0xfc000003"},
-    {{cs, r3, 0x000002ac}, false, al, "cs r3 0x000002ac", "cs_r3_0x000002ac"},
-    {{hi, r3, 0x0000ab00}, false, al, "hi r3 0x0000ab00", "hi_r3_0x0000ab00"},
-    {{ge, r9, 0x00ab0000}, false, al, "ge r9 0x00ab0000", "ge_r9_0x00ab0000"},
-    {{le, r0, 0x000ab000}, false, al, "le r0 0x000ab000", "le_r0_0x000ab000"},
-    {{cc, r7, 0x000003fc}, false, al, "cc r7 0x000003fc", "cc_r7_0x000003fc"},
-    {{pl, r7, 0x00002ac0}, false, al, "pl r7 0x00002ac0", "pl_r7_0x00002ac0"},
-    {{cc, r1, 0x00000ab0}, false, al, "cc r1 0x00000ab0", "cc_r1_0x00000ab0"},
-    {{le, r8, 0x0002ac00}, false, al, "le r8 0x0002ac00", "le_r8_0x0002ac00"},
-    {{mi, r9, 0x0003fc00}, false, al, "mi r9 0x0003fc00", "mi_r9_0x0003fc00"},
-    {{cs, r2, 0x000002ac}, false, al, "cs r2 0x000002ac", "cs_r2_0x000002ac"},
-    {{vc, r2, 0xb000000a}, false, al, "vc r2 0xb000000a", "vc_r2_0xb000000a"},
-    {{pl, r4, 0x000ab000}, false, al, "pl r4 0x000ab000", "pl_r4_0x000ab000"},
-    {{hi, r0, 0x0003fc00}, false, al, "hi r0 0x0003fc00", "hi_r0_0x0003fc00"},
-    {{vs, r12, 0x000ab000}, false, al, "vs r12 0x000ab000", "vs_r12_"
-                                                            "0x000ab000"},
-    {{lt, r9, 0x0003fc00}, false, al, "lt r9 0x0003fc00", "lt_r9_0x0003fc00"},
-    {{mi, r11, 0x00002ac0}, false, al, "mi r11 0x00002ac0", "mi_r11_"
-                                                            "0x00002ac0"},
-    {{ls, r13, 0x000ab000}, false, al, "ls r13 0x000ab000", "ls_r13_"
-                                                            "0x000ab000"},
-    {{al, r3, 0x3fc00000}, false, al, "al r3 0x3fc00000", "al_r3_0x3fc00000"},
-    {{eq, r14, 0x000000ff}, false, al, "eq r14 0x000000ff", "eq_r14_"
-                                                            "0x000000ff"},
-    {{le, r12, 0xff000000}, false, al, "le r12 0xff000000", "le_r12_"
-                                                            "0xff000000"},
-    {{gt, r8, 0xff000000}, false, al, "gt r8 0xff000000", "gt_r8_0xff000000"},
-    {{eq, r0, 0x00ff0000}, false, al, "eq r0 0x00ff0000", "eq_r0_0x00ff0000"},
-    {{cc, r5, 0xff000000}, false, al, "cc r5 0xff000000", "cc_r5_0xff000000"},
-    {{mi, r2, 0x0003fc00}, false, al, "mi r2 0x0003fc00", "mi_r2_0x0003fc00"},
-    {{cs, r10, 0xf000000f}, false, al, "cs r10 0xf000000f", "cs_r10_"
-                                                            "0xf000000f"},
-    {{eq, r0, 0xab000000}, false, al, "eq r0 0xab000000", "eq_r0_0xab000000"},
-    {{al, r1, 0x03fc0000}, false, al, "al r1 0x03fc0000", "al_r1_0x03fc0000"},
-    {{ne, r5, 0xff000000}, false, al, "ne r5 0xff000000", "ne_r5_0xff000000"},
-    {{ne, r1, 0x03fc0000}, false, al, "ne r1 0x03fc0000", "ne_r1_0x03fc0000"},
-    {{ls, r1, 0x000ff000}, false, al, "ls r1 0x000ff000", "ls_r1_0x000ff000"},
-    {{vc, r0, 0x00003fc0}, false, al, "vc r0 0x00003fc0", "vc_r0_0x00003fc0"},
-    {{eq, r4, 0x0003fc00}, false, al, "eq r4 0x0003fc00", "eq_r4_0x0003fc00"},
-    {{mi, r3, 0xab000000}, false, al, "mi r3 0xab000000", "mi_r3_0xab000000"},
-    {{mi, r5, 0xfc000003}, false, al, "mi r5 0xfc000003", "mi_r5_0xfc000003"},
-    {{vs, r8, 0xab000000}, false, al, "vs r8 0xab000000", "vs_r8_0xab000000"},
-    {{cs, r9, 0x00ff0000}, false, al, "cs r9 0x00ff0000", "cs_r9_0x00ff0000"},
-    {{ge, r7, 0x00000ab0}, false, al, "ge r7 0x00000ab0", "ge_r7_0x00000ab0"},
-    {{al, r9, 0xf000000f}, false, al, "al r9 0xf000000f", "al_r9_0xf000000f"},
-    {{vc, r10, 0x000000ff}, false, al, "vc r10 0x000000ff", "vc_r10_"
-                                                            "0x000000ff"},
-    {{al, r4, 0x00ab0000}, false, al, "al r4 0x00ab0000", "al_r4_0x00ab0000"},
-    {{ls, r6, 0x0000ff00}, false, al, "ls r6 0x0000ff00", "ls_r6_0x0000ff00"},
-    {{cc, r14, 0x0ab00000}, false, al, "cc r14 0x0ab00000", "cc_r14_"
-                                                            "0x0ab00000"},
-    {{le, r5, 0x3fc00000}, false, al, "le r5 0x3fc00000", "le_r5_0x3fc00000"},
-    {{ne, r12, 0x0ff00000}, false, al, "ne r12 0x0ff00000", "ne_r12_"
-                                                            "0x0ff00000"},
-    {{cc, r11, 0xf000000f}, false, al, "cc r11 0xf000000f", "cc_r11_"
-                                                            "0xf000000f"},
-    {{lt, r9, 0x000003fc}, false, al, "lt r9 0x000003fc", "lt_r9_0x000003fc"},
-    {{ne, r7, 0x000002ac}, false, al, "ne r7 0x000002ac", "ne_r7_0x000002ac"},
-    {{ge, r5, 0x00003fc0}, false, al, "ge r5 0x00003fc0", "ge_r5_0x00003fc0"},
-    {{lt, r14, 0x00002ac0}, false, al, "lt r14 0x00002ac0", "lt_r14_"
-                                                            "0x00002ac0"},
-    {{vs, r8, 0x0002ac00}, false, al, "vs r8 0x0002ac00", "vs_r8_0x0002ac00"},
-    {{gt, r7, 0x0000ff00}, false, al, "gt r7 0x0000ff00", "gt_r7_0x0000ff00"},
-    {{gt, r11, 0x000002ac}, false, al, "gt r11 0x000002ac", "gt_r11_"
-                                                            "0x000002ac"},
-    {{lt, r12, 0x00003fc0}, false, al, "lt r12 0x00003fc0", "lt_r12_"
-                                                            "0x00003fc0"},
-    {{gt, r4, 0x00ff0000}, false, al, "gt r4 0x00ff0000", "gt_r4_0x00ff0000"},
-    {{gt, r0, 0x000ff000}, false, al, "gt r0 0x000ff000", "gt_r0_0x000ff000"},
-    {{hi, r3, 0x0002ac00}, false, al, "hi r3 0x0002ac00", "hi_r3_0x0002ac00"},
-    {{al, r6, 0x003fc000}, false, al, "al r6 0x003fc000", "al_r6_0x003fc000"},
-    {{al, r5, 0x0003fc00}, false, al, "al r5 0x0003fc00", "al_r5_0x0003fc00"},
-    {{mi, r14, 0x03fc0000}, false, al, "mi r14 0x03fc0000", "mi_r14_"
-                                                            "0x03fc0000"},
-    {{le, r10, 0x0ab00000}, false, al, "le r10 0x0ab00000", "le_r10_"
-                                                            "0x0ab00000"},
-    {{vc, r4, 0xab000000}, false, al, "vc r4 0xab000000", "vc_r4_0xab000000"},
-    {{lt, r12, 0xf000000f}, false, al, "lt r12 0xf000000f", "lt_r12_"
-                                                            "0xf000000f"},
-    {{le, r12, 0xf000000f}, false, al, "le r12 0xf000000f", "le_r12_"
-                                                            "0xf000000f"},
-    {{pl, r3, 0xfc000003}, false, al, "pl r3 0xfc000003", "pl_r3_0xfc000003"},
-    {{ls, r9, 0x000003fc}, false, al, "ls r9 0x000003fc", "ls_r9_0x000003fc"},
-    {{hi, r0, 0x00ff0000}, false, al, "hi r0 0x00ff0000", "hi_r0_0x00ff0000"},
-    {{ge, r5, 0x000000ab}, false, al, "ge r5 0x000000ab", "ge_r5_0x000000ab"},
-    {{pl, r1, 0x00000000}, false, al, "pl r1 0x00000000", "pl_r1_0x00000000"},
-    {{vs, r11, 0x0002ac00}, false, al, "vs r11 0x0002ac00", "vs_r11_"
-                                                            "0x0002ac00"},
-    {{cc, r10, 0xac000002}, false, al, "cc r10 0xac000002", "cc_r10_"
-                                                            "0xac000002"},
-    {{al, r2, 0x00000000}, false, al, "al r2 0x00000000", "al_r2_0x00000000"},
-    {{eq, r8, 0xab000000}, false, al, "eq r8 0xab000000", "eq_r8_0xab000000"},
-    {{al, r5, 0xb000000a}, false, al, "al r5 0xb000000a", "al_r5_0xb000000a"},
-    {{cs, r8, 0x000003fc}, false, al, "cs r8 0x000003fc", "cs_r8_0x000003fc"},
-    {{ge, r5, 0xc000003f}, false, al, "ge r5 0xc000003f", "ge_r5_0xc000003f"},
-    {{eq, r5, 0x00000ff0}, false, al, "eq r5 0x00000ff0", "eq_r5_0x00000ff0"},
-    {{eq, r5, 0x000ff000}, false, al, "eq r5 0x000ff000", "eq_r5_0x000ff000"},
-    {{ls, r7, 0x00000000}, false, al, "ls r7 0x00000000", "ls_r7_0x00000000"},
-    {{vc, r9, 0x00ff0000}, false, al, "vc r9 0x00ff0000", "vc_r9_0x00ff0000"},
-    {{le, r6, 0x00000ff0}, false, al, "le r6 0x00000ff0", "le_r6_0x00000ff0"},
-    {{pl, r10, 0xac000002}, false, al, "pl r10 0xac000002", "pl_r10_"
-                                                            "0xac000002"},
-    {{vs, r13, 0x3fc00000}, false, al, "vs r13 0x3fc00000", "vs_r13_"
-                                                            "0x3fc00000"},
-    {{gt, r12, 0x000ab000}, false, al, "gt r12 0x000ab000", "gt_r12_"
-                                                            "0x000ab000"},
-    {{pl, r7, 0x0000ff00}, false, al, "pl r7 0x0000ff00", "pl_r7_0x0000ff00"},
-    {{hi, r13, 0xab000000}, false, al, "hi r13 0xab000000", "hi_r13_"
-                                                            "0xab000000"},
-    {{vc, r3, 0x00003fc0}, false, al, "vc r3 0x00003fc0", "vc_r3_0x00003fc0"},
-    {{eq, r8, 0x03fc0000}, false, al, "eq r8 0x03fc0000", "eq_r8_0x03fc0000"},
-    {{ge, r7, 0x00ab0000}, false, al, "ge r7 0x00ab0000", "ge_r7_0x00ab0000"},
-    {{ls, r5, 0x00000ab0}, false, al, "ls r5 0x00000ab0", "ls_r5_0x00000ab0"},
-    {{ls, r8, 0xb000000a}, false, al, "ls r8 0xb000000a", "ls_r8_0xb000000a"},
-    {{cs, r2, 0xab000000}, false, al, "cs r2 0xab000000", "cs_r2_0xab000000"},
-    {{ne, r1, 0x0ab00000}, false, al, "ne r1 0x0ab00000", "ne_r1_0x0ab00000"},
-    {{hi, r3, 0x0ab00000}, false, al, "hi r3 0x0ab00000", "hi_r3_0x0ab00000"},
-    {{vc, r1, 0x00ab0000}, false, al, "vc r1 0x00ab0000", "vc_r1_0x00ab0000"},
-    {{gt, r12, 0x0003fc00}, false, al, "gt r12 0x0003fc00", "gt_r12_"
-                                                            "0x0003fc00"},
-    {{lt, r11, 0x00000ff0}, false, al, "lt r11 0x00000ff0", "lt_r11_"
-                                                            "0x00000ff0"},
-    {{ne, r5, 0xc000002a}, false, al, "ne r5 0xc000002a", "ne_r5_0xc000002a"},
-    {{vc, r6, 0x000003fc}, false, al, "vc r6 0x000003fc", "vc_r6_0x000003fc"},
-    {{gt, r1, 0xab000000}, false, al, "gt r1 0xab000000", "gt_r1_0xab000000"},
-    {{gt, r5, 0x3fc00000}, false, al, "gt r5 0x3fc00000", "gt_r5_0x3fc00000"},
-    {{cs, r3, 0x00002ac0}, false, al, "cs r3 0x00002ac0", "cs_r3_0x00002ac0"},
-    {{mi, r0, 0xff000000}, false, al, "mi r0 0xff000000", "mi_r0_0xff000000"},
-    {{cs, r3, 0x00000ff0}, false, al, "cs r3 0x00000ff0", "cs_r3_0x00000ff0"},
-    {{le, r13, 0xff000000}, false, al, "le r13 0xff000000", "le_r13_"
-                                                            "0xff000000"},
-    {{hi, r8, 0x00000000}, false, al, "hi r8 0x00000000", "hi_r8_0x00000000"},
-    {{vc, r12, 0x0002ac00}, false, al, "vc r12 0x0002ac00", "vc_r12_"
-                                                            "0x0002ac00"},
-    {{eq, r9, 0x00000ff0}, false, al, "eq r9 0x00000ff0", "eq_r9_0x00000ff0"},
-    {{vc, r14, 0x0ff00000}, false, al, "vc r14 0x0ff00000", "vc_r14_"
-                                                            "0x0ff00000"},
-    {{hi, r2, 0x00ff0000}, false, al, "hi r2 0x00ff0000", "hi_r2_0x00ff0000"},
-    {{al, r2, 0x03fc0000}, false, al, "al r2 0x03fc0000", "al_r2_0x03fc0000"},
-    {{mi, r14, 0x0ab00000}, false, al, "mi r14 0x0ab00000", "mi_r14_"
-                                                            "0x0ab00000"},
-    {{vs, r11, 0x000ff000}, false, al, "vs r11 0x000ff000", "vs_r11_"
-                                                            "0x000ff000"},
-    {{le, r11, 0x0003fc00}, false, al, "le r11 0x0003fc00", "le_r11_"
-                                                            "0x0003fc00"},
-    {{eq, r6, 0x002ac000}, false, al, "eq r6 0x002ac000", "eq_r6_0x002ac000"},
-    {{ne, r12, 0xab000000}, false, al, "ne r12 0xab000000", "ne_r12_"
-                                                            "0xab000000"},
-    {{eq, r4, 0x000ff000}, false, al, "eq r4 0x000ff000", "eq_r4_0x000ff000"},
-    {{cs, r6, 0x000003fc}, false, al, "cs r6 0x000003fc", "cs_r6_0x000003fc"},
-    {{le, r13, 0xf000000f}, false, al, "le r13 0xf000000f", "le_r13_"
-                                                            "0xf000000f"},
-    {{vs, r3, 0x02ac0000}, false, al, "vs r3 0x02ac0000", "vs_r3_0x02ac0000"},
-    {{lt, r3, 0xab000000}, false, al, "lt r3 0xab000000", "lt_r3_0xab000000"},
-    {{pl, r5, 0xab000000}, false, al, "pl r5 0xab000000", "pl_r5_0xab000000"},
-    {{mi, r10, 0x00002ac0}, false, al, "mi r10 0x00002ac0", "mi_r10_"
-                                                            "0x00002ac0"},
-    {{vc, r3, 0x000000ab}, false, al, "vc r3 0x000000ab", "vc_r3_0x000000ab"},
-    {{pl, r10, 0x02ac0000}, false, al, "pl r10 0x02ac0000", "pl_r10_"
-                                                            "0x02ac0000"},
-    {{vs, r11, 0x3fc00000}, false, al, "vs r11 0x3fc00000", "vs_r11_"
-                                                            "0x3fc00000"},
-    {{cc, r7, 0x3fc00000}, false, al, "cc r7 0x3fc00000", "cc_r7_0x3fc00000"},
-    {{cs, r3, 0x0000ab00}, false, al, "cs r3 0x0000ab00", "cs_r3_0x0000ab00"},
-    {{cc, r14, 0x02ac0000}, false, al, "cc r14 0x02ac0000", "cc_r14_"
-                                                            "0x02ac0000"},
-    {{vs, r0, 0x2ac00000}, false, al, "vs r0 0x2ac00000", "vs_r0_0x2ac00000"},
-    {{gt, r13, 0x0ff00000}, false, al, "gt r13 0x0ff00000", "gt_r13_"
-                                                            "0x0ff00000"},
-    {{mi, r10, 0x2ac00000}, false, al, "mi r10 0x2ac00000", "mi_r10_"
-                                                            "0x2ac00000"},
-    {{ls, r2, 0x0ab00000}, false, al, "ls r2 0x0ab00000", "ls_r2_0x0ab00000"},
-    {{pl, r10, 0x000000ff}, false, al, "pl r10 0x000000ff", "pl_r10_"
-                                                            "0x000000ff"},
-    {{al, r9, 0x3fc00000}, false, al, "al r9 0x3fc00000", "al_r9_0x3fc00000"},
-    {{vs, r4, 0x2ac00000}, false, al, "vs r4 0x2ac00000", "vs_r4_0x2ac00000"},
-    {{vs, r12, 0x000ff000}, false, al, "vs r12 0x000ff000", "vs_r12_"
-                                                            "0x000ff000"},
-    {{ge, r7, 0xc000002a}, false, al, "ge r7 0xc000002a", "ge_r7_0xc000002a"},
-    {{vc, r7, 0x0002ac00}, false, al, "vc r7 0x0002ac00", "vc_r7_0x0002ac00"},
-    {{gt, r7, 0x000ab000}, false, al, "gt r7 0x000ab000", "gt_r7_0x000ab000"},
-    {{gt, r13, 0x000000ab}, false, al, "gt r13 0x000000ab", "gt_r13_"
-                                                            "0x000000ab"},
-    {{ne, r1, 0xfc000003}, false, al, "ne r1 0xfc000003", "ne_r1_0xfc000003"},
-    {{vc, r14, 0x000ab000}, false, al, "vc r14 0x000ab000", "vc_r14_"
-                                                            "0x000ab000"},
-    {{gt, r5, 0xf000000f}, false, al, "gt r5 0xf000000f", "gt_r5_0xf000000f"},
-    {{ge, r6, 0x00ff0000}, false, al, "ge r6 0x00ff0000", "ge_r6_0x00ff0000"},
-    {{ls, r12, 0x0000ff00}, false, al, "ls r12 0x0000ff00", "ls_r12_"
-                                                            "0x0000ff00"},
-    {{mi, r12, 0x03fc0000}, false, al, "mi r12 0x03fc0000", "mi_r12_"
-                                                            "0x03fc0000"},
-    {{vs, r10, 0x0003fc00}, false, al, "vs r10 0x0003fc00", "vs_r10_"
-                                                            "0x0003fc00"},
-    {{gt, r6, 0x0000ff00}, false, al, "gt r6 0x0000ff00", "gt_r6_0x0000ff00"},
-    {{pl, r6, 0x00ff0000}, false, al, "pl r6 0x00ff0000", "pl_r6_0x00ff0000"},
-    {{ne, r0, 0x002ac000}, false, al, "ne r0 0x002ac000", "ne_r0_0x002ac000"},
-    {{eq, r2, 0x003fc000}, false, al, "eq r2 0x003fc000", "eq_r2_0x003fc000"},
-    {{ne, r10, 0x000003fc}, false, al, "ne r10 0x000003fc", "ne_r10_"
-                                                            "0x000003fc"},
-    {{lt, r10, 0x02ac0000}, false, al, "lt r10 0x02ac0000", "lt_r10_"
-                                                            "0x02ac0000"},
-    {{lt, r2, 0x000ff000}, false, al, "lt r2 0x000ff000", "lt_r2_0x000ff000"},
-    {{pl, r3, 0x0000ab00}, false, al, "pl r3 0x0000ab00", "pl_r3_0x0000ab00"},
-    {{ge, r9, 0xc000003f}, false, al, "ge r9 0xc000003f", "ge_r9_0xc000003f"},
-    {{vs, r4, 0x000003fc}, false, al, "vs r4 0x000003fc", "vs_r4_0x000003fc"},
-    {{hi, r13, 0xf000000f}, false, al, "hi r13 0xf000000f", "hi_r13_"
-                                                            "0xf000000f"},
-    {{pl, r1, 0x02ac0000}, false, al, "pl r1 0x02ac0000", "pl_r1_0x02ac0000"},
-    {{pl, r1, 0x000000ff}, false, al, "pl r1 0x000000ff", "pl_r1_0x000000ff"},
-    {{al, r3, 0x00000ff0}, false, al, "al r3 0x00000ff0", "al_r3_0x00000ff0"},
-    {{gt, r0, 0x03fc0000}, false, al, "gt r0 0x03fc0000", "gt_r0_0x03fc0000"},
-    {{cc, r1, 0x2ac00000}, false, al, "cc r1 0x2ac00000", "cc_r1_0x2ac00000"},
-    {{mi, r9, 0xc000003f}, false, al, "mi r9 0xc000003f", "mi_r9_0xc000003f"},
-    {{vc, r4, 0xff000000}, false, al, "vc r4 0xff000000", "vc_r4_0xff000000"},
-    {{pl, r9, 0x0002ac00}, false, al, "pl r9 0x0002ac00", "pl_r9_0x0002ac00"},
-    {{vs, r8, 0x02ac0000}, false, al, "vs r8 0x02ac0000", "vs_r8_0x02ac0000"},
-    {{gt, r7, 0xf000000f}, false, al, "gt r7 0xf000000f", "gt_r7_0xf000000f"},
-    {{gt, r10, 0xff000000}, false, al, "gt r10 0xff000000", "gt_r10_"
-                                                            "0xff000000"},
-    {{cs, r0, 0x00003fc0}, false, al, "cs r0 0x00003fc0", "cs_r0_0x00003fc0"},
-    {{gt, r8, 0x03fc0000}, false, al, "gt r8 0x03fc0000", "gt_r8_0x03fc0000"},
-    {{ne, r8, 0x00002ac0}, false, al, "ne r8 0x00002ac0", "ne_r8_0x00002ac0"},
-    {{ne, r13, 0xc000002a}, false, al, "ne r13 0xc000002a", "ne_r13_"
-                                                            "0xc000002a"},
-    {{ne, r8, 0x3fc00000}, false, al, "ne r8 0x3fc00000", "ne_r8_0x3fc00000"},
-    {{vs, r2, 0x002ac000}, false, al, "vs r2 0x002ac000", "vs_r2_0x002ac000"},
-    {{vs, r7, 0x000000ab}, false, al, "vs r7 0x000000ab", "vs_r7_0x000000ab"},
-    {{cc, r6, 0x00000000}, false, al, "cc r6 0x00000000", "cc_r6_0x00000000"},
-    {{ls, r3, 0xf000000f}, false, al, "ls r3 0xf000000f", "ls_r3_0xf000000f"},
-    {{hi, r0, 0x000000ff}, false, al, "hi r0 0x000000ff", "hi_r0_0x000000ff"},
-    {{cs, r6, 0x00002ac0}, false, al, "cs r6 0x00002ac0", "cs_r6_0x00002ac0"},
-    {{al, r1, 0xb000000a}, false, al, "al r1 0xb000000a", "al_r1_0xb000000a"},
-    {{cc, r0, 0x00002ac0}, false, al, "cc r0 0x00002ac0", "cc_r0_0x00002ac0"},
-    {{cc, r12, 0x000003fc}, false, al, "cc r12 0x000003fc", "cc_r12_"
-                                                            "0x000003fc"},
-    {{ne, r14, 0xc000002a}, false, al, "ne r14 0xc000002a", "ne_r14_"
-                                                            "0xc000002a"},
-    {{al, r6, 0xc000003f}, false, al, "al r6 0xc000003f", "al_r6_0xc000003f"},
-    {{ls, r5, 0xf000000f}, false, al, "ls r5 0xf000000f", "ls_r5_0xf000000f"},
-    {{mi, r5, 0x03fc0000}, false, al, "mi r5 0x03fc0000", "mi_r5_0x03fc0000"},
-    {{cs, r14, 0xf000000f}, false, al, "cs r14 0xf000000f", "cs_r14_"
-                                                            "0xf000000f"},
-    {{hi, r0, 0x02ac0000}, false, al, "hi r0 0x02ac0000", "hi_r0_0x02ac0000"},
-    {{pl, r10, 0x00000000}, false, al, "pl r10 0x00000000", "pl_r10_"
-                                                            "0x00000000"},
-    {{ne, r6, 0xc000003f}, false, al, "ne r6 0xc000003f", "ne_r6_0xc000003f"},
-    {{mi, r6, 0x00002ac0}, false, al, "mi r6 0x00002ac0", "mi_r6_0x00002ac0"},
-    {{vs, r6, 0x000000ab}, false, al, "vs r6 0x000000ab", "vs_r6_0x000000ab"},
-    {{vc, r6, 0x3fc00000}, false, al, "vc r6 0x3fc00000", "vc_r6_0x3fc00000"},
-    {{al, r10, 0x3fc00000}, false, al, "al r10 0x3fc00000", "al_r10_"
-                                                            "0x3fc00000"},
-    {{eq, r7, 0xc000003f}, false, al, "eq r7 0xc000003f", "eq_r7_0xc000003f"},
-    {{vs, r9, 0x02ac0000}, false, al, "vs r9 0x02ac0000", "vs_r9_0x02ac0000"},
-    {{mi, r6, 0xac000002}, false, al, "mi r6 0xac000002", "mi_r6_0xac000002"},
-    {{vc, r8, 0xc000002a}, false, al, "vc r8 0xc000002a", "vc_r8_0xc000002a"},
-    {{pl, r2, 0x0000ab00}, false, al, "pl r2 0x0000ab00", "pl_r2_0x0000ab00"},
-    {{hi, r4, 0x00000ff0}, false, al, "hi r4 0x00000ff0", "hi_r4_0x00000ff0"},
-    {{al, r8, 0x003fc000}, false, al, "al r8 0x003fc000", "al_r8_0x003fc000"},
-    {{vs, r12, 0xfc000003}, false, al, "vs r12 0xfc000003", "vs_r12_"
-                                                            "0xfc000003"},
-    {{cs, r0, 0xac000002}, false, al, "cs r0 0xac000002", "cs_r0_0xac000002"},
-    {{mi, r4, 0x02ac0000}, false, al, "mi r4 0x02ac0000", "mi_r4_0x02ac0000"},
-    {{pl, r11, 0x00003fc0}, false, al, "pl r11 0x00003fc0", "pl_r11_"
-                                                            "0x00003fc0"},
-    {{pl, r13, 0xac000002}, false, al, "pl r13 0xac000002", "pl_r13_"
-                                                            "0xac000002"},
-    {{hi, r8, 0x0000ff00}, false, al, "hi r8 0x0000ff00", "hi_r8_0x0000ff00"},
-    {{cs, r13, 0x2ac00000}, false, al, "cs r13 0x2ac00000", "cs_r13_"
-                                                            "0x2ac00000"},
-    {{hi, r11, 0xc000003f}, false, al, "hi r11 0xc000003f", "hi_r11_"
-                                                            "0xc000003f"},
-    {{lt, r5, 0x000002ac}, false, al, "lt r5 0x000002ac", "lt_r5_0x000002ac"},
-    {{vs, r4, 0x0ff00000}, false, al, "vs r4 0x0ff00000", "vs_r4_0x0ff00000"},
-    {{lt, r2, 0x00000ab0}, false, al, "lt r2 0x00000ab0", "lt_r2_0x00000ab0"},
-    {{pl, r12, 0x000000ab}, false, al, "pl r12 0x000000ab", "pl_r12_"
-                                                            "0x000000ab"},
-    {{gt, r3, 0xb000000a}, false, al, "gt r3 0xb000000a", "gt_r3_0xb000000a"},
-    {{hi, r12, 0x0002ac00}, false, al, "hi r12 0x0002ac00", "hi_r12_"
-                                                            "0x0002ac00"},
-    {{le, r0, 0x00ff0000}, false, al, "le r0 0x00ff0000", "le_r0_0x00ff0000"},
-    {{eq, r6, 0x000ab000}, false, al, "eq r6 0x000ab000", "eq_r6_0x000ab000"},
-    {{lt, r6, 0x0ff00000}, false, al, "lt r6 0x0ff00000", "lt_r6_0x0ff00000"},
-    {{mi, r4, 0x000ff000}, false, al, "mi r4 0x000ff000", "mi_r4_0x000ff000"},
-    {{le, r3, 0x0ab00000}, false, al, "le r3 0x0ab00000", "le_r3_0x0ab00000"},
-    {{ge, r3, 0xac000002}, false, al, "ge r3 0xac000002", "ge_r3_0xac000002"},
-    {{gt, r13, 0x00000ff0}, false, al, "gt r13 0x00000ff0", "gt_r13_"
-                                                            "0x00000ff0"},
-    {{le, r10, 0x0000ff00}, false, al, "le r10 0x0000ff00", "le_r10_"
-                                                            "0x0000ff00"},
-    {{lt, r14, 0x00ab0000}, false, al, "lt r14 0x00ab0000", "lt_r14_"
-                                                            "0x00ab0000"},
-    {{mi, r2, 0x00003fc0}, false, al, "mi r2 0x00003fc0", "mi_r2_0x00003fc0"},
-    {{ge, r9, 0x00002ac0}, false, al, "ge r9 0x00002ac0", "ge_r9_0x00002ac0"},
-    {{al, r11, 0x2ac00000}, false, al, "al r11 0x2ac00000", "al_r11_"
-                                                            "0x2ac00000"},
-    {{pl, r6, 0x00000000}, false, al, "pl r6 0x00000000", "pl_r6_0x00000000"},
-    {{ls, r2, 0x002ac000}, false, al, "ls r2 0x002ac000", "ls_r2_0x002ac000"},
-    {{lt, r0, 0xf000000f}, false, al, "lt r0 0xf000000f", "lt_r0_0xf000000f"},
-    {{cs, r6, 0x00000ff0}, false, al, "cs r6 0x00000ff0", "cs_r6_0x00000ff0"},
-    {{lt, r12, 0x00000ff0}, false, al, "lt r12 0x00000ff0", "lt_r12_"
-                                                            "0x00000ff0"},
-    {{al, r6, 0xff000000}, false, al, "al r6 0xff000000", "al_r6_0xff000000"},
-    {{gt, r4, 0x0000ff00}, false, al, "gt r4 0x0000ff00", "gt_r4_0x0000ff00"},
-    {{al, r14, 0x0000ff00}, false, al, "al r14 0x0000ff00", "al_r14_"
-                                                            "0x0000ff00"},
-    {{al, r10, 0xf000000f}, false, al, "al r10 0xf000000f", "al_r10_"
-                                                            "0xf000000f"},
-    {{mi, r3, 0x0003fc00}, false, al, "mi r3 0x0003fc00", "mi_r3_0x0003fc00"},
-    {{pl, r0, 0xf000000f}, false, al, "pl r0 0xf000000f", "pl_r0_0xf000000f"},
-    {{al, r6, 0x00000ab0}, false, al, "al r6 0x00000ab0", "al_r6_0x00000ab0"},
-    {{le, r8, 0x000002ac}, false, al, "le r8 0x000002ac", "le_r8_0x000002ac"},
-    {{ge, r14, 0x00000000}, false, al, "ge r14 0x00000000", "ge_r14_"
-                                                            "0x00000000"},
-    {{eq, r1, 0xff000000}, false, al, "eq r1 0xff000000", "eq_r1_0xff000000"},
-    {{mi, r14, 0x00000ff0}, false, al, "mi r14 0x00000ff0", "mi_r14_"
-                                                            "0x00000ff0"},
-    {{eq, r3, 0xff000000}, false, al, "eq r3 0xff000000", "eq_r3_0xff000000"},
-    {{mi, r0, 0x0000ab00}, false, al, "mi r0 0x0000ab00", "mi_r0_0x0000ab00"},
-    {{mi, r5, 0x000ff000}, false, al, "mi r5 0x000ff000", "mi_r5_0x000ff000"},
-    {{vs, r3, 0x0ff00000}, false, al, "vs r3 0x0ff00000", "vs_r3_0x0ff00000"},
-    {{gt, r14, 0x0ff00000}, false, al, "gt r14 0x0ff00000", "gt_r14_"
-                                                            "0x0ff00000"},
-    {{le, r6, 0x000003fc}, false, al, "le r6 0x000003fc", "le_r6_0x000003fc"},
-    {{vs, r6, 0xab000000}, false, al, "vs r6 0xab000000", "vs_r6_0xab000000"},
-    {{le, r0, 0x000000ab}, false, al, "le r0 0x000000ab", "le_r0_0x000000ab"},
-    {{cc, r9, 0x0ab00000}, false, al, "cc r9 0x0ab00000", "cc_r9_0x0ab00000"},
-    {{vs, r10, 0x0ff00000}, false, al, "vs r10 0x0ff00000", "vs_r10_"
-                                                            "0x0ff00000"},
-    {{gt, r3, 0x002ac000}, false, al, "gt r3 0x002ac000", "gt_r3_0x002ac000"},
-    {{le, r2, 0x0ab00000}, false, al, "le r2 0x0ab00000", "le_r2_0x0ab00000"},
-    {{ne, r14, 0xc000003f}, false, al, "ne r14 0xc000003f", "ne_r14_"
-                                                            "0xc000003f"},
-    {{ne, r14, 0x000ff000}, false, al, "ne r14 0x000ff000", "ne_r14_"
-                                                            "0x000ff000"},
-    {{hi, r3, 0xb000000a}, false, al, "hi r3 0xb000000a", "hi_r3_0xb000000a"},
-    {{cs, r7, 0x000000ab}, false, al, "cs r7 0x000000ab", "cs_r7_0x000000ab"},
-    {{eq, r12, 0x3fc00000}, false, al, "eq r12 0x3fc00000", "eq_r12_"
-                                                            "0x3fc00000"},
-    {{ls, r5, 0x03fc0000}, false, al, "ls r5 0x03fc0000", "ls_r5_0x03fc0000"},
-    {{ne, r13, 0x003fc000}, false, al, "ne r13 0x003fc000", "ne_r13_"
-                                                            "0x003fc000"},
-    {{hi, r6, 0xac000002}, false, al, "hi r6 0xac000002", "hi_r6_0xac000002"},
-    {{vc, r6, 0xfc000003}, false, al, "vc r6 0xfc000003", "vc_r6_0xfc000003"},
-    {{pl, r10, 0x00ab0000}, false, al, "pl r10 0x00ab0000", "pl_r10_"
-                                                            "0x00ab0000"},
-    {{vc, r6, 0x0000ff00}, false, al, "vc r6 0x0000ff00", "vc_r6_0x0000ff00"},
-    {{cs, r0, 0x003fc000}, false, al, "cs r0 0x003fc000", "cs_r0_0x003fc000"},
-    {{hi, r5, 0x000003fc}, false, al, "hi r5 0x000003fc", "hi_r5_0x000003fc"},
-    {{mi, r7, 0x0002ac00}, false, al, "mi r7 0x0002ac00", "mi_r7_0x0002ac00"},
-    {{ne, r0, 0x02ac0000}, false, al, "ne r0 0x02ac0000", "ne_r0_0x02ac0000"},
-    {{vs, r12, 0xc000002a}, false, al, "vs r12 0xc000002a", "vs_r12_"
-                                                            "0xc000002a"},
-    {{al, r12, 0x000002ac}, false, al, "al r12 0x000002ac", "al_r12_"
-                                                            "0x000002ac"},
-    {{cs, r4, 0x3fc00000}, false, al, "cs r4 0x3fc00000", "cs_r4_0x3fc00000"},
-    {{ne, r9, 0x00000ab0}, false, al, "ne r9 0x00000ab0", "ne_r9_0x00000ab0"},
-    {{eq, r14, 0x0003fc00},
-     false,
-     al,
-     "eq r14 0x0003fc00",
-     "eq_r14_0x0003fc00"}};
+const TestData kTests[] =
+    {{{ls, r0, 0x003fc000}, false, al, "ls r0 0x003fc000", "ls_r0_0x003fc000"},
+     {{eq, r13, 0xff000000},
+      false,
+      al,
+      "eq r13 0xff000000",
+      "eq_r13_"
+      "0xff000000"},
+     {{al, r0, 0x0002ac00}, false, al, "al r0 0x0002ac00", "al_r0_0x0002ac00"},
+     {{gt, r13, 0x002ac000},
+      false,
+      al,
+      "gt r13 0x002ac000",
+      "gt_r13_"
+      "0x002ac000"},
+     {{mi, r3, 0x000002ac}, false, al, "mi r3 0x000002ac", "mi_r3_0x000002ac"},
+     {{ls, r0, 0x000000ff}, false, al, "ls r0 0x000000ff", "ls_r0_0x000000ff"},
+     {{ls, r7, 0x0000ab00}, false, al, "ls r7 0x0000ab00", "ls_r7_0x0000ab00"},
+     {{cc, r11, 0x0ff00000},
+      false,
+      al,
+      "cc r11 0x0ff00000",
+      "cc_r11_"
+      "0x0ff00000"},
+     {{vs, r5, 0xc000003f}, false, al, "vs r5 0xc000003f", "vs_r5_0xc000003f"},
+     {{gt, r3, 0x00ab0000}, false, al, "gt r3 0x00ab0000", "gt_r3_0x00ab0000"},
+     {{hi, r7, 0xff000000}, false, al, "hi r7 0xff000000", "hi_r7_0xff000000"},
+     {{vc, r10, 0xff000000},
+      false,
+      al,
+      "vc r10 0xff000000",
+      "vc_r10_"
+      "0xff000000"},
+     {{hi, r10, 0x002ac000},
+      false,
+      al,
+      "hi r10 0x002ac000",
+      "hi_r10_"
+      "0x002ac000"},
+     {{ne, r9, 0x00ff0000}, false, al, "ne r9 0x00ff0000", "ne_r9_0x00ff0000"},
+     {{ge, r3, 0xf000000f}, false, al, "ge r3 0xf000000f", "ge_r3_0xf000000f"},
+     {{hi, r0, 0x000ff000}, false, al, "hi r0 0x000ff000", "hi_r0_0x000ff000"},
+     {{mi, r2, 0x00002ac0}, false, al, "mi r2 0x00002ac0", "mi_r2_0x00002ac0"},
+     {{ge, r6, 0x000ab000}, false, al, "ge r6 0x000ab000", "ge_r6_0x000ab000"},
+     {{mi, r9, 0x00ff0000}, false, al, "mi r9 0x00ff0000", "mi_r9_0x00ff0000"},
+     {{cs, r2, 0x000ff000}, false, al, "cs r2 0x000ff000", "cs_r2_0x000ff000"},
+     {{lt, r5, 0x003fc000}, false, al, "lt r5 0x003fc000", "lt_r5_0x003fc000"},
+     {{al, r1, 0x000ff000}, false, al, "al r1 0x000ff000", "al_r1_0x000ff000"},
+     {{mi, r6, 0x000000ab}, false, al, "mi r6 0x000000ab", "mi_r6_0x000000ab"},
+     {{pl, r9, 0xac000002}, false, al, "pl r9 0xac000002", "pl_r9_0xac000002"},
+     {{hi, r8, 0x000ff000}, false, al, "hi r8 0x000ff000", "hi_r8_0x000ff000"},
+     {{vs, r0, 0x00002ac0}, false, al, "vs r0 0x00002ac0", "vs_r0_0x00002ac0"},
+     {{ls, r4, 0xab000000}, false, al, "ls r4 0xab000000", "ls_r4_0xab000000"},
+     {{vs, r6, 0x000ab000}, false, al, "vs r6 0x000ab000", "vs_r6_0x000ab000"},
+     {{vc, r13, 0x0000ab00},
+      false,
+      al,
+      "vc r13 0x0000ab00",
+      "vc_r13_"
+      "0x0000ab00"},
+     {{mi, r0, 0xab000000}, false, al, "mi r0 0xab000000", "mi_r0_0xab000000"},
+     {{vs, r9, 0x0ab00000}, false, al, "vs r9 0x0ab00000", "vs_r9_0x0ab00000"},
+     {{pl, r0, 0x00003fc0}, false, al, "pl r0 0x00003fc0", "pl_r0_0x00003fc0"},
+     {{al, r2, 0x0000ff00}, false, al, "al r2 0x0000ff00", "al_r2_0x0000ff00"},
+     {{gt, r11, 0x00000ab0},
+      false,
+      al,
+      "gt r11 0x00000ab0",
+      "gt_r11_"
+      "0x00000ab0"},
+     {{vs, r10, 0xac000002},
+      false,
+      al,
+      "vs r10 0xac000002",
+      "vs_r10_"
+      "0xac000002"},
+     {{cs, r3, 0x0002ac00}, false, al, "cs r3 0x0002ac00", "cs_r3_0x0002ac00"},
+     {{vc, r13, 0x000000ab},
+      false,
+      al,
+      "vc r13 0x000000ab",
+      "vc_r13_"
+      "0x000000ab"},
+     {{cs, r11, 0x003fc000},
+      false,
+      al,
+      "cs r11 0x003fc000",
+      "cs_r11_"
+      "0x003fc000"},
+     {{vs, r14, 0x0000ab00},
+      false,
+      al,
+      "vs r14 0x0000ab00",
+      "vs_r14_"
+      "0x0000ab00"},
+     {{eq, r11, 0xfc000003},
+      false,
+      al,
+      "eq r11 0xfc000003",
+      "eq_r11_"
+      "0xfc000003"},
+     {{pl, r13, 0x00000ab0},
+      false,
+      al,
+      "pl r13 0x00000ab0",
+      "pl_r13_"
+      "0x00000ab0"},
+     {{ge, r4, 0xb000000a}, false, al, "ge r4 0xb000000a", "ge_r4_0xb000000a"},
+     {{pl, r12, 0x00003fc0},
+      false,
+      al,
+      "pl r12 0x00003fc0",
+      "pl_r12_"
+      "0x00003fc0"},
+     {{le, r4, 0x0000ff00}, false, al, "le r4 0x0000ff00", "le_r4_0x0000ff00"},
+     {{pl, r4, 0x003fc000}, false, al, "pl r4 0x003fc000", "pl_r4_0x003fc000"},
+     {{hi, r0, 0x002ac000}, false, al, "hi r0 0x002ac000", "hi_r0_0x002ac000"},
+     {{mi, r1, 0x00003fc0}, false, al, "mi r1 0x00003fc0", "mi_r1_0x00003fc0"},
+     {{hi, r9, 0xf000000f}, false, al, "hi r9 0xf000000f", "hi_r9_0xf000000f"},
+     {{al, r11, 0x0000ab00},
+      false,
+      al,
+      "al r11 0x0000ab00",
+      "al_r11_"
+      "0x0000ab00"},
+     {{ne, r6, 0x00ab0000}, false, al, "ne r6 0x00ab0000", "ne_r6_0x00ab0000"},
+     {{lt, r4, 0xff000000}, false, al, "lt r4 0xff000000", "lt_r4_0xff000000"},
+     {{pl, r0, 0x0ab00000}, false, al, "pl r0 0x0ab00000", "pl_r0_0x0ab00000"},
+     {{ls, r2, 0xc000002a}, false, al, "ls r2 0xc000002a", "ls_r2_0xc000002a"},
+     {{lt, r5, 0x00003fc0}, false, al, "lt r5 0x00003fc0", "lt_r5_0x00003fc0"},
+     {{mi, r5, 0x000003fc}, false, al, "mi r5 0x000003fc", "mi_r5_0x000003fc"},
+     {{ls, r11, 0xb000000a},
+      false,
+      al,
+      "ls r11 0xb000000a",
+      "ls_r11_"
+      "0xb000000a"},
+     {{al, r3, 0x0000ff00}, false, al, "al r3 0x0000ff00", "al_r3_0x0000ff00"},
+     {{vs, r3, 0xfc000003}, false, al, "vs r3 0xfc000003", "vs_r3_0xfc000003"},
+     {{ne, r1, 0xc000002a}, false, al, "ne r1 0xc000002a", "ne_r1_0xc000002a"},
+     {{eq, r10, 0x0003fc00},
+      false,
+      al,
+      "eq r10 0x0003fc00",
+      "eq_r10_"
+      "0x0003fc00"},
+     {{eq, r3, 0xf000000f}, false, al, "eq r3 0xf000000f", "eq_r3_0xf000000f"},
+     {{vs, r5, 0x000ff000}, false, al, "vs r5 0x000ff000", "vs_r5_0x000ff000"},
+     {{ge, r12, 0x000000ab},
+      false,
+      al,
+      "ge r12 0x000000ab",
+      "ge_r12_"
+      "0x000000ab"},
+     {{vc, r12, 0xf000000f},
+      false,
+      al,
+      "vc r12 0xf000000f",
+      "vc_r12_"
+      "0xf000000f"},
+     {{lt, r11, 0x02ac0000},
+      false,
+      al,
+      "lt r11 0x02ac0000",
+      "lt_r11_"
+      "0x02ac0000"},
+     {{vs, r6, 0x003fc000}, false, al, "vs r6 0x003fc000", "vs_r6_0x003fc000"},
+     {{cs, r8, 0x3fc00000}, false, al, "cs r8 0x3fc00000", "cs_r8_0x3fc00000"},
+     {{le, r5, 0x0002ac00}, false, al, "le r5 0x0002ac00", "le_r5_0x0002ac00"},
+     {{ls, r9, 0x0002ac00}, false, al, "ls r9 0x0002ac00", "ls_r9_0x0002ac00"},
+     {{al, r4, 0x3fc00000}, false, al, "al r4 0x3fc00000", "al_r4_0x3fc00000"},
+     {{lt, r5, 0x000000ff}, false, al, "lt r5 0x000000ff", "lt_r5_0x000000ff"},
+     {{cs, r8, 0xc000002a}, false, al, "cs r8 0xc000002a", "cs_r8_0xc000002a"},
+     {{cs, r0, 0x00000ab0}, false, al, "cs r0 0x00000ab0", "cs_r0_0x00000ab0"},
+     {{cs, r2, 0x3fc00000}, false, al, "cs r2 0x3fc00000", "cs_r2_0x3fc00000"},
+     {{vs, r14, 0xab000000},
+      false,
+      al,
+      "vs r14 0xab000000",
+      "vs_r14_"
+      "0xab000000"},
+     {{ne, r8, 0x002ac000}, false, al, "ne r8 0x002ac000", "ne_r8_0x002ac000"},
+     {{vs, r1, 0x003fc000}, false, al, "vs r1 0x003fc000", "vs_r1_0x003fc000"},
+     {{al, r7, 0x003fc000}, false, al, "al r7 0x003fc000", "al_r7_0x003fc000"},
+     {{vs, r7, 0x000ab000}, false, al, "vs r7 0x000ab000", "vs_r7_0x000ab000"},
+     {{vc, r12, 0xb000000a},
+      false,
+      al,
+      "vc r12 0xb000000a",
+      "vc_r12_"
+      "0xb000000a"},
+     {{eq, r2, 0xc000002a}, false, al, "eq r2 0xc000002a", "eq_r2_0xc000002a"},
+     {{lt, r4, 0x0000ff00}, false, al, "lt r4 0x0000ff00", "lt_r4_0x0000ff00"},
+     {{eq, r8, 0x2ac00000}, false, al, "eq r8 0x2ac00000", "eq_r8_0x2ac00000"},
+     {{hi, r7, 0x3fc00000}, false, al, "hi r7 0x3fc00000", "hi_r7_0x3fc00000"},
+     {{mi, r13, 0x3fc00000},
+      false,
+      al,
+      "mi r13 0x3fc00000",
+      "mi_r13_"
+      "0x3fc00000"},
+     {{al, r2, 0x0002ac00}, false, al, "al r2 0x0002ac00", "al_r2_0x0002ac00"},
+     {{gt, r13, 0xab000000},
+      false,
+      al,
+      "gt r13 0xab000000",
+      "gt_r13_"
+      "0xab000000"},
+     {{vs, r3, 0x00000ab0}, false, al, "vs r3 0x00000ab0", "vs_r3_0x00000ab0"},
+     {{mi, r14, 0x00000000},
+      false,
+      al,
+      "mi r14 0x00000000",
+      "mi_r14_"
+      "0x00000000"},
+     {{vs, r10, 0x3fc00000},
+      false,
+      al,
+      "vs r10 0x3fc00000",
+      "vs_r10_"
+      "0x3fc00000"},
+     {{vc, r7, 0x0ff00000}, false, al, "vc r7 0x0ff00000", "vc_r7_0x0ff00000"},
+     {{al, r3, 0xf000000f}, false, al, "al r3 0xf000000f", "al_r3_0xf000000f"},
+     {{cs, r12, 0x03fc0000},
+      false,
+      al,
+      "cs r12 0x03fc0000",
+      "cs_r12_"
+      "0x03fc0000"},
+     {{hi, r14, 0xab000000},
+      false,
+      al,
+      "hi r14 0xab000000",
+      "hi_r14_"
+      "0xab000000"},
+     {{mi, r13, 0x000002ac},
+      false,
+      al,
+      "mi r13 0x000002ac",
+      "mi_r13_"
+      "0x000002ac"},
+     {{ge, r8, 0x2ac00000}, false, al, "ge r8 0x2ac00000", "ge_r8_0x2ac00000"},
+     {{vc, r14, 0x000003fc},
+      false,
+      al,
+      "vc r14 0x000003fc",
+      "vc_r14_"
+      "0x000003fc"},
+     {{mi, r4, 0x0000ab00}, false, al, "mi r4 0x0000ab00", "mi_r4_0x0000ab00"},
+     {{hi, r11, 0x0ff00000},
+      false,
+      al,
+      "hi r11 0x0ff00000",
+      "hi_r11_"
+      "0x0ff00000"},
+     {{gt, r8, 0x000ff000}, false, al, "gt r8 0x000ff000", "gt_r8_0x000ff000"},
+     {{lt, r1, 0x3fc00000}, false, al, "lt r1 0x3fc00000", "lt_r1_0x3fc00000"},
+     {{mi, r12, 0x000000ab},
+      false,
+      al,
+      "mi r12 0x000000ab",
+      "mi_r12_"
+      "0x000000ab"},
+     {{vs, r12, 0x000003fc},
+      false,
+      al,
+      "vs r12 0x000003fc",
+      "vs_r12_"
+      "0x000003fc"},
+     {{cs, r10, 0x000ff000},
+      false,
+      al,
+      "cs r10 0x000ff000",
+      "cs_r10_"
+      "0x000ff000"},
+     {{mi, r12, 0xfc000003},
+      false,
+      al,
+      "mi r12 0xfc000003",
+      "mi_r12_"
+      "0xfc000003"},
+     {{pl, r8, 0x000000ff}, false, al, "pl r8 0x000000ff", "pl_r8_0x000000ff"},
+     {{lt, r5, 0x00002ac0}, false, al, "lt r5 0x00002ac0", "lt_r5_0x00002ac0"},
+     {{ge, r0, 0xff000000}, false, al, "ge r0 0xff000000", "ge_r0_0xff000000"},
+     {{pl, r0, 0xab000000}, false, al, "pl r0 0xab000000", "pl_r0_0xab000000"},
+     {{ls, r8, 0x000ab000}, false, al, "ls r8 0x000ab000", "ls_r8_0x000ab000"},
+     {{al, r12, 0x00000ff0},
+      false,
+      al,
+      "al r12 0x00000ff0",
+      "al_r12_"
+      "0x00000ff0"},
+     {{hi, r5, 0x00003fc0}, false, al, "hi r5 0x00003fc0", "hi_r5_0x00003fc0"},
+     {{vs, r7, 0x0003fc00}, false, al, "vs r7 0x0003fc00", "vs_r7_0x0003fc00"},
+     {{ls, r13, 0x0ff00000},
+      false,
+      al,
+      "ls r13 0x0ff00000",
+      "ls_r13_"
+      "0x0ff00000"},
+     {{al, r7, 0x000000ab}, false, al, "al r7 0x000000ab", "al_r7_0x000000ab"},
+     {{lt, r6, 0x000003fc}, false, al, "lt r6 0x000003fc", "lt_r6_0x000003fc"},
+     {{mi, r9, 0xc000002a}, false, al, "mi r9 0xc000002a", "mi_r9_0xc000002a"},
+     {{ne, r11, 0x003fc000},
+      false,
+      al,
+      "ne r11 0x003fc000",
+      "ne_r11_"
+      "0x003fc000"},
+     {{cs, r4, 0x00000ab0}, false, al, "cs r4 0x00000ab0", "cs_r4_0x00000ab0"},
+     {{vc, r14, 0x2ac00000},
+      false,
+      al,
+      "vc r14 0x2ac00000",
+      "vc_r14_"
+      "0x2ac00000"},
+     {{vc, r8, 0x2ac00000}, false, al, "vc r8 0x2ac00000", "vc_r8_0x2ac00000"},
+     {{ge, r10, 0x003fc000},
+      false,
+      al,
+      "ge r10 0x003fc000",
+      "ge_r10_"
+      "0x003fc000"},
+     {{lt, r14, 0xb000000a},
+      false,
+      al,
+      "lt r14 0xb000000a",
+      "lt_r14_"
+      "0xb000000a"},
+     {{cs, r12, 0x000ff000},
+      false,
+      al,
+      "cs r12 0x000ff000",
+      "cs_r12_"
+      "0x000ff000"},
+     {{eq, r2, 0xac000002}, false, al, "eq r2 0xac000002", "eq_r2_0xac000002"},
+     {{le, r11, 0x2ac00000},
+      false,
+      al,
+      "le r11 0x2ac00000",
+      "le_r11_"
+      "0x2ac00000"},
+     {{le, r8, 0xab000000}, false, al, "le r8 0xab000000", "le_r8_0xab000000"},
+     {{lt, r5, 0x02ac0000}, false, al, "lt r5 0x02ac0000", "lt_r5_0x02ac0000"},
+     {{hi, r13, 0x003fc000},
+      false,
+      al,
+      "hi r13 0x003fc000",
+      "hi_r13_"
+      "0x003fc000"},
+     {{mi, r1, 0xfc000003}, false, al, "mi r1 0xfc000003", "mi_r1_0xfc000003"},
+     {{cc, r4, 0x0ab00000}, false, al, "cc r4 0x0ab00000", "cc_r4_0x0ab00000"},
+     {{lt, r7, 0x3fc00000}, false, al, "lt r7 0x3fc00000", "lt_r7_0x3fc00000"},
+     {{lt, r3, 0x000002ac}, false, al, "lt r3 0x000002ac", "lt_r3_0x000002ac"},
+     {{pl, r7, 0x00000000}, false, al, "pl r7 0x00000000", "pl_r7_0x00000000"},
+     {{lt, r2, 0x00000000}, false, al, "lt r2 0x00000000", "lt_r2_0x00000000"},
+     {{le, r1, 0x0ff00000}, false, al, "le r1 0x0ff00000", "le_r1_0x0ff00000"},
+     {{lt, r14, 0x0000ff00},
+      false,
+      al,
+      "lt r14 0x0000ff00",
+      "lt_r14_"
+      "0x0000ff00"},
+     {{cs, r11, 0x3fc00000},
+      false,
+      al,
+      "cs r11 0x3fc00000",
+      "cs_r11_"
+      "0x3fc00000"},
+     {{ls, r7, 0x00000ff0}, false, al, "ls r7 0x00000ff0", "ls_r7_0x00000ff0"},
+     {{vs, r3, 0x0ab00000}, false, al, "vs r3 0x0ab00000", "vs_r3_0x0ab00000"},
+     {{cs, r12, 0x0003fc00},
+      false,
+      al,
+      "cs r12 0x0003fc00",
+      "cs_r12_"
+      "0x0003fc00"},
+     {{vc, r3, 0xfc000003}, false, al, "vc r3 0xfc000003", "vc_r3_0xfc000003"},
+     {{vs, r14, 0x0ff00000},
+      false,
+      al,
+      "vs r14 0x0ff00000",
+      "vs_r14_"
+      "0x0ff00000"},
+     {{vc, r5, 0x00003fc0}, false, al, "vc r5 0x00003fc0", "vc_r5_0x00003fc0"},
+     {{cc, r14, 0x0ff00000},
+      false,
+      al,
+      "cc r14 0x0ff00000",
+      "cc_r14_"
+      "0x0ff00000"},
+     {{cs, r7, 0x0ff00000}, false, al, "cs r7 0x0ff00000", "cs_r7_0x0ff00000"},
+     {{al, r2, 0x00ab0000}, false, al, "al r2 0x00ab0000", "al_r2_0x00ab0000"},
+     {{gt, r0, 0x00000000}, false, al, "gt r0 0x00000000", "gt_r0_0x00000000"},
+     {{al, r6, 0x000003fc}, false, al, "al r6 0x000003fc", "al_r6_0x000003fc"},
+     {{ge, r2, 0x2ac00000}, false, al, "ge r2 0x2ac00000", "ge_r2_0x2ac00000"},
+     {{vs, r0, 0x03fc0000}, false, al, "vs r0 0x03fc0000", "vs_r0_0x03fc0000"},
+     {{cs, r12, 0x00003fc0},
+      false,
+      al,
+      "cs r12 0x00003fc0",
+      "cs_r12_"
+      "0x00003fc0"},
+     {{ge, r3, 0x2ac00000}, false, al, "ge r3 0x2ac00000", "ge_r3_0x2ac00000"},
+     {{le, r13, 0x0000ab00},
+      false,
+      al,
+      "le r13 0x0000ab00",
+      "le_r13_"
+      "0x0000ab00"},
+     {{al, r13, 0x02ac0000},
+      false,
+      al,
+      "al r13 0x02ac0000",
+      "al_r13_"
+      "0x02ac0000"},
+     {{mi, r4, 0xff000000}, false, al, "mi r4 0xff000000", "mi_r4_0xff000000"},
+     {{cs, r3, 0x00003fc0}, false, al, "cs r3 0x00003fc0", "cs_r3_0x00003fc0"},
+     {{ge, r13, 0x00ab0000},
+      false,
+      al,
+      "ge r13 0x00ab0000",
+      "ge_r13_"
+      "0x00ab0000"},
+     {{ne, r4, 0x00000ab0}, false, al, "ne r4 0x00000ab0", "ne_r4_0x00000ab0"},
+     {{cc, r3, 0xac000002}, false, al, "cc r3 0xac000002", "cc_r3_0xac000002"},
+     {{pl, r11, 0xab000000},
+      false,
+      al,
+      "pl r11 0xab000000",
+      "pl_r11_"
+      "0xab000000"},
+     {{eq, r13, 0xfc000003},
+      false,
+      al,
+      "eq r13 0xfc000003",
+      "eq_r13_"
+      "0xfc000003"},
+     {{ne, r5, 0xc000003f}, false, al, "ne r5 0xc000003f", "ne_r5_0xc000003f"},
+     {{hi, r7, 0xb000000a}, false, al, "hi r7 0xb000000a", "hi_r7_0xb000000a"},
+     {{al, r12, 0xc000002a},
+      false,
+      al,
+      "al r12 0xc000002a",
+      "al_r12_"
+      "0xc000002a"},
+     {{vs, r8, 0xf000000f}, false, al, "vs r8 0xf000000f", "vs_r8_0xf000000f"},
+     {{cs, r6, 0x00ff0000}, false, al, "cs r6 0x00ff0000", "cs_r6_0x00ff0000"},
+     {{vs, r1, 0x00002ac0}, false, al, "vs r1 0x00002ac0", "vs_r1_0x00002ac0"},
+     {{ls, r2, 0x0ff00000}, false, al, "ls r2 0x0ff00000", "ls_r2_0x0ff00000"},
+     {{mi, r13, 0x0000ab00},
+      false,
+      al,
+      "mi r13 0x0000ab00",
+      "mi_r13_"
+      "0x0000ab00"},
+     {{al, r4, 0xff000000}, false, al, "al r4 0xff000000", "al_r4_0xff000000"},
+     {{ne, r1, 0x00002ac0}, false, al, "ne r1 0x00002ac0", "ne_r1_0x00002ac0"},
+     {{vc, r14, 0x000002ac},
+      false,
+      al,
+      "vc r14 0x000002ac",
+      "vc_r14_"
+      "0x000002ac"},
+     {{al, r9, 0xb000000a}, false, al, "al r9 0xb000000a", "al_r9_0xb000000a"},
+     {{ne, r9, 0x000002ac}, false, al, "ne r9 0x000002ac", "ne_r9_0x000002ac"},
+     {{hi, r7, 0x0ff00000}, false, al, "hi r7 0x0ff00000", "hi_r7_0x0ff00000"},
+     {{ne, r10, 0x000ab000},
+      false,
+      al,
+      "ne r10 0x000ab000",
+      "ne_r10_"
+      "0x000ab000"},
+     {{vs, r0, 0x0003fc00}, false, al, "vs r0 0x0003fc00", "vs_r0_0x0003fc00"},
+     {{cs, r9, 0x002ac000}, false, al, "cs r9 0x002ac000", "cs_r9_0x002ac000"},
+     {{eq, r3, 0x00000ff0}, false, al, "eq r3 0x00000ff0", "eq_r3_0x00000ff0"},
+     {{lt, r5, 0x00ab0000}, false, al, "lt r5 0x00ab0000", "lt_r5_0x00ab0000"},
+     {{pl, r1, 0x00ff0000}, false, al, "pl r1 0x00ff0000", "pl_r1_0x00ff0000"},
+     {{eq, r4, 0x0000ab00}, false, al, "eq r4 0x0000ab00", "eq_r4_0x0000ab00"},
+     {{mi, r13, 0x000000ab},
+      false,
+      al,
+      "mi r13 0x000000ab",
+      "mi_r13_"
+      "0x000000ab"},
+     {{pl, r12, 0x00000ff0},
+      false,
+      al,
+      "pl r12 0x00000ff0",
+      "pl_r12_"
+      "0x00000ff0"},
+     {{eq, r3, 0x00002ac0}, false, al, "eq r3 0x00002ac0", "eq_r3_0x00002ac0"},
+     {{le, r12, 0x002ac000},
+      false,
+      al,
+      "le r12 0x002ac000",
+      "le_r12_"
+      "0x002ac000"},
+     {{ge, r10, 0x000002ac},
+      false,
+      al,
+      "ge r10 0x000002ac",
+      "ge_r10_"
+      "0x000002ac"},
+     {{vs, r1, 0x00ff0000}, false, al, "vs r1 0x00ff0000", "vs_r1_0x00ff0000"},
+     {{pl, r8, 0x0000ff00}, false, al, "pl r8 0x0000ff00", "pl_r8_0x0000ff00"},
+     {{vs, r9, 0x000ab000}, false, al, "vs r9 0x000ab000", "vs_r9_0x000ab000"},
+     {{ls, r6, 0x003fc000}, false, al, "ls r6 0x003fc000", "ls_r6_0x003fc000"},
+     {{vs, r14, 0x0ab00000},
+      false,
+      al,
+      "vs r14 0x0ab00000",
+      "vs_r14_"
+      "0x0ab00000"},
+     {{mi, r14, 0xf000000f},
+      false,
+      al,
+      "mi r14 0xf000000f",
+      "mi_r14_"
+      "0xf000000f"},
+     {{vc, r6, 0xf000000f}, false, al, "vc r6 0xf000000f", "vc_r6_0xf000000f"},
+     {{ne, r4, 0x0000ff00}, false, al, "ne r4 0x0000ff00", "ne_r4_0x0000ff00"},
+     {{gt, r10, 0xfc000003},
+      false,
+      al,
+      "gt r10 0xfc000003",
+      "gt_r10_"
+      "0xfc000003"},
+     {{cs, r6, 0x3fc00000}, false, al, "cs r6 0x3fc00000", "cs_r6_0x3fc00000"},
+     {{al, r10, 0x0ff00000},
+      false,
+      al,
+      "al r10 0x0ff00000",
+      "al_r10_"
+      "0x0ff00000"},
+     {{pl, r12, 0x00000000},
+      false,
+      al,
+      "pl r12 0x00000000",
+      "pl_r12_"
+      "0x00000000"},
+     {{cc, r5, 0xfc000003}, false, al, "cc r5 0xfc000003", "cc_r5_0xfc000003"},
+     {{pl, r10, 0x0003fc00},
+      false,
+      al,
+      "pl r10 0x0003fc00",
+      "pl_r10_"
+      "0x0003fc00"},
+     {{eq, r8, 0xac000002}, false, al, "eq r8 0xac000002", "eq_r8_0xac000002"},
+     {{vs, r12, 0xac000002},
+      false,
+      al,
+      "vs r12 0xac000002",
+      "vs_r12_"
+      "0xac000002"},
+     {{ne, r9, 0x00ab0000}, false, al, "ne r9 0x00ab0000", "ne_r9_0x00ab0000"},
+     {{al, r1, 0x0002ac00}, false, al, "al r1 0x0002ac00", "al_r1_0x0002ac00"},
+     {{ne, r6, 0x0000ff00}, false, al, "ne r6 0x0000ff00", "ne_r6_0x0000ff00"},
+     {{mi, r3, 0x03fc0000}, false, al, "mi r3 0x03fc0000", "mi_r3_0x03fc0000"},
+     {{ge, r10, 0x0002ac00},
+      false,
+      al,
+      "ge r10 0x0002ac00",
+      "ge_r10_"
+      "0x0002ac00"},
+     {{vc, r5, 0xb000000a}, false, al, "vc r5 0xb000000a", "vc_r5_0xb000000a"},
+     {{pl, r1, 0x000003fc}, false, al, "pl r1 0x000003fc", "pl_r1_0x000003fc"},
+     {{mi, r2, 0x02ac0000}, false, al, "mi r2 0x02ac0000", "mi_r2_0x02ac0000"},
+     {{gt, r7, 0x0003fc00}, false, al, "gt r7 0x0003fc00", "gt_r7_0x0003fc00"},
+     {{vs, r0, 0x00000000}, false, al, "vs r0 0x00000000", "vs_r0_0x00000000"},
+     {{vc, r11, 0xc000003f},
+      false,
+      al,
+      "vc r11 0xc000003f",
+      "vc_r11_"
+      "0xc000003f"},
+     {{vc, r13, 0x0ab00000},
+      false,
+      al,
+      "vc r13 0x0ab00000",
+      "vc_r13_"
+      "0x0ab00000"},
+     {{ge, r5, 0x0002ac00}, false, al, "ge r5 0x0002ac00", "ge_r5_0x0002ac00"},
+     {{ge, r8, 0xc000003f}, false, al, "ge r8 0xc000003f", "ge_r8_0xc000003f"},
+     {{al, r14, 0x000002ac},
+      false,
+      al,
+      "al r14 0x000002ac",
+      "al_r14_"
+      "0x000002ac"},
+     {{vs, r1, 0x00000000}, false, al, "vs r1 0x00000000", "vs_r1_0x00000000"},
+     {{vc, r2, 0x3fc00000}, false, al, "vc r2 0x3fc00000", "vc_r2_0x3fc00000"},
+     {{ne, r2, 0xc000003f}, false, al, "ne r2 0xc000003f", "ne_r2_0xc000003f"},
+     {{cs, r0, 0x0ab00000}, false, al, "cs r0 0x0ab00000", "cs_r0_0x0ab00000"},
+     {{le, r5, 0xfc000003}, false, al, "le r5 0xfc000003", "le_r5_0xfc000003"},
+     {{cs, r3, 0x000002ac}, false, al, "cs r3 0x000002ac", "cs_r3_0x000002ac"},
+     {{hi, r3, 0x0000ab00}, false, al, "hi r3 0x0000ab00", "hi_r3_0x0000ab00"},
+     {{ge, r9, 0x00ab0000}, false, al, "ge r9 0x00ab0000", "ge_r9_0x00ab0000"},
+     {{le, r0, 0x000ab000}, false, al, "le r0 0x000ab000", "le_r0_0x000ab000"},
+     {{cc, r7, 0x000003fc}, false, al, "cc r7 0x000003fc", "cc_r7_0x000003fc"},
+     {{pl, r7, 0x00002ac0}, false, al, "pl r7 0x00002ac0", "pl_r7_0x00002ac0"},
+     {{cc, r1, 0x00000ab0}, false, al, "cc r1 0x00000ab0", "cc_r1_0x00000ab0"},
+     {{le, r8, 0x0002ac00}, false, al, "le r8 0x0002ac00", "le_r8_0x0002ac00"},
+     {{mi, r9, 0x0003fc00}, false, al, "mi r9 0x0003fc00", "mi_r9_0x0003fc00"},
+     {{cs, r2, 0x000002ac}, false, al, "cs r2 0x000002ac", "cs_r2_0x000002ac"},
+     {{vc, r2, 0xb000000a}, false, al, "vc r2 0xb000000a", "vc_r2_0xb000000a"},
+     {{pl, r4, 0x000ab000}, false, al, "pl r4 0x000ab000", "pl_r4_0x000ab000"},
+     {{hi, r0, 0x0003fc00}, false, al, "hi r0 0x0003fc00", "hi_r0_0x0003fc00"},
+     {{vs, r12, 0x000ab000},
+      false,
+      al,
+      "vs r12 0x000ab000",
+      "vs_r12_"
+      "0x000ab000"},
+     {{lt, r9, 0x0003fc00}, false, al, "lt r9 0x0003fc00", "lt_r9_0x0003fc00"},
+     {{mi, r11, 0x00002ac0},
+      false,
+      al,
+      "mi r11 0x00002ac0",
+      "mi_r11_"
+      "0x00002ac0"},
+     {{ls, r13, 0x000ab000},
+      false,
+      al,
+      "ls r13 0x000ab000",
+      "ls_r13_"
+      "0x000ab000"},
+     {{al, r3, 0x3fc00000}, false, al, "al r3 0x3fc00000", "al_r3_0x3fc00000"},
+     {{eq, r14, 0x000000ff},
+      false,
+      al,
+      "eq r14 0x000000ff",
+      "eq_r14_"
+      "0x000000ff"},
+     {{le, r12, 0xff000000},
+      false,
+      al,
+      "le r12 0xff000000",
+      "le_r12_"
+      "0xff000000"},
+     {{gt, r8, 0xff000000}, false, al, "gt r8 0xff000000", "gt_r8_0xff000000"},
+     {{eq, r0, 0x00ff0000}, false, al, "eq r0 0x00ff0000", "eq_r0_0x00ff0000"},
+     {{cc, r5, 0xff000000}, false, al, "cc r5 0xff000000", "cc_r5_0xff000000"},
+     {{mi, r2, 0x0003fc00}, false, al, "mi r2 0x0003fc00", "mi_r2_0x0003fc00"},
+     {{cs, r10, 0xf000000f},
+      false,
+      al,
+      "cs r10 0xf000000f",
+      "cs_r10_"
+      "0xf000000f"},
+     {{eq, r0, 0xab000000}, false, al, "eq r0 0xab000000", "eq_r0_0xab000000"},
+     {{al, r1, 0x03fc0000}, false, al, "al r1 0x03fc0000", "al_r1_0x03fc0000"},
+     {{ne, r5, 0xff000000}, false, al, "ne r5 0xff000000", "ne_r5_0xff000000"},
+     {{ne, r1, 0x03fc0000}, false, al, "ne r1 0x03fc0000", "ne_r1_0x03fc0000"},
+     {{ls, r1, 0x000ff000}, false, al, "ls r1 0x000ff000", "ls_r1_0x000ff000"},
+     {{vc, r0, 0x00003fc0}, false, al, "vc r0 0x00003fc0", "vc_r0_0x00003fc0"},
+     {{eq, r4, 0x0003fc00}, false, al, "eq r4 0x0003fc00", "eq_r4_0x0003fc00"},
+     {{mi, r3, 0xab000000}, false, al, "mi r3 0xab000000", "mi_r3_0xab000000"},
+     {{mi, r5, 0xfc000003}, false, al, "mi r5 0xfc000003", "mi_r5_0xfc000003"},
+     {{vs, r8, 0xab000000}, false, al, "vs r8 0xab000000", "vs_r8_0xab000000"},
+     {{cs, r9, 0x00ff0000}, false, al, "cs r9 0x00ff0000", "cs_r9_0x00ff0000"},
+     {{ge, r7, 0x00000ab0}, false, al, "ge r7 0x00000ab0", "ge_r7_0x00000ab0"},
+     {{al, r9, 0xf000000f}, false, al, "al r9 0xf000000f", "al_r9_0xf000000f"},
+     {{vc, r10, 0x000000ff},
+      false,
+      al,
+      "vc r10 0x000000ff",
+      "vc_r10_"
+      "0x000000ff"},
+     {{al, r4, 0x00ab0000}, false, al, "al r4 0x00ab0000", "al_r4_0x00ab0000"},
+     {{ls, r6, 0x0000ff00}, false, al, "ls r6 0x0000ff00", "ls_r6_0x0000ff00"},
+     {{cc, r14, 0x0ab00000},
+      false,
+      al,
+      "cc r14 0x0ab00000",
+      "cc_r14_"
+      "0x0ab00000"},
+     {{le, r5, 0x3fc00000}, false, al, "le r5 0x3fc00000", "le_r5_0x3fc00000"},
+     {{ne, r12, 0x0ff00000},
+      false,
+      al,
+      "ne r12 0x0ff00000",
+      "ne_r12_"
+      "0x0ff00000"},
+     {{cc, r11, 0xf000000f},
+      false,
+      al,
+      "cc r11 0xf000000f",
+      "cc_r11_"
+      "0xf000000f"},
+     {{lt, r9, 0x000003fc}, false, al, "lt r9 0x000003fc", "lt_r9_0x000003fc"},
+     {{ne, r7, 0x000002ac}, false, al, "ne r7 0x000002ac", "ne_r7_0x000002ac"},
+     {{ge, r5, 0x00003fc0}, false, al, "ge r5 0x00003fc0", "ge_r5_0x00003fc0"},
+     {{lt, r14, 0x00002ac0},
+      false,
+      al,
+      "lt r14 0x00002ac0",
+      "lt_r14_"
+      "0x00002ac0"},
+     {{vs, r8, 0x0002ac00}, false, al, "vs r8 0x0002ac00", "vs_r8_0x0002ac00"},
+     {{gt, r7, 0x0000ff00}, false, al, "gt r7 0x0000ff00", "gt_r7_0x0000ff00"},
+     {{gt, r11, 0x000002ac},
+      false,
+      al,
+      "gt r11 0x000002ac",
+      "gt_r11_"
+      "0x000002ac"},
+     {{lt, r12, 0x00003fc0},
+      false,
+      al,
+      "lt r12 0x00003fc0",
+      "lt_r12_"
+      "0x00003fc0"},
+     {{gt, r4, 0x00ff0000}, false, al, "gt r4 0x00ff0000", "gt_r4_0x00ff0000"},
+     {{gt, r0, 0x000ff000}, false, al, "gt r0 0x000ff000", "gt_r0_0x000ff000"},
+     {{hi, r3, 0x0002ac00}, false, al, "hi r3 0x0002ac00", "hi_r3_0x0002ac00"},
+     {{al, r6, 0x003fc000}, false, al, "al r6 0x003fc000", "al_r6_0x003fc000"},
+     {{al, r5, 0x0003fc00}, false, al, "al r5 0x0003fc00", "al_r5_0x0003fc00"},
+     {{mi, r14, 0x03fc0000},
+      false,
+      al,
+      "mi r14 0x03fc0000",
+      "mi_r14_"
+      "0x03fc0000"},
+     {{le, r10, 0x0ab00000},
+      false,
+      al,
+      "le r10 0x0ab00000",
+      "le_r10_"
+      "0x0ab00000"},
+     {{vc, r4, 0xab000000}, false, al, "vc r4 0xab000000", "vc_r4_0xab000000"},
+     {{lt, r12, 0xf000000f},
+      false,
+      al,
+      "lt r12 0xf000000f",
+      "lt_r12_"
+      "0xf000000f"},
+     {{le, r12, 0xf000000f},
+      false,
+      al,
+      "le r12 0xf000000f",
+      "le_r12_"
+      "0xf000000f"},
+     {{pl, r3, 0xfc000003}, false, al, "pl r3 0xfc000003", "pl_r3_0xfc000003"},
+     {{ls, r9, 0x000003fc}, false, al, "ls r9 0x000003fc", "ls_r9_0x000003fc"},
+     {{hi, r0, 0x00ff0000}, false, al, "hi r0 0x00ff0000", "hi_r0_0x00ff0000"},
+     {{ge, r5, 0x000000ab}, false, al, "ge r5 0x000000ab", "ge_r5_0x000000ab"},
+     {{pl, r1, 0x00000000}, false, al, "pl r1 0x00000000", "pl_r1_0x00000000"},
+     {{vs, r11, 0x0002ac00},
+      false,
+      al,
+      "vs r11 0x0002ac00",
+      "vs_r11_"
+      "0x0002ac00"},
+     {{cc, r10, 0xac000002},
+      false,
+      al,
+      "cc r10 0xac000002",
+      "cc_r10_"
+      "0xac000002"},
+     {{al, r2, 0x00000000}, false, al, "al r2 0x00000000", "al_r2_0x00000000"},
+     {{eq, r8, 0xab000000}, false, al, "eq r8 0xab000000", "eq_r8_0xab000000"},
+     {{al, r5, 0xb000000a}, false, al, "al r5 0xb000000a", "al_r5_0xb000000a"},
+     {{cs, r8, 0x000003fc}, false, al, "cs r8 0x000003fc", "cs_r8_0x000003fc"},
+     {{ge, r5, 0xc000003f}, false, al, "ge r5 0xc000003f", "ge_r5_0xc000003f"},
+     {{eq, r5, 0x00000ff0}, false, al, "eq r5 0x00000ff0", "eq_r5_0x00000ff0"},
+     {{eq, r5, 0x000ff000}, false, al, "eq r5 0x000ff000", "eq_r5_0x000ff000"},
+     {{ls, r7, 0x00000000}, false, al, "ls r7 0x00000000", "ls_r7_0x00000000"},
+     {{vc, r9, 0x00ff0000}, false, al, "vc r9 0x00ff0000", "vc_r9_0x00ff0000"},
+     {{le, r6, 0x00000ff0}, false, al, "le r6 0x00000ff0", "le_r6_0x00000ff0"},
+     {{pl, r10, 0xac000002},
+      false,
+      al,
+      "pl r10 0xac000002",
+      "pl_r10_"
+      "0xac000002"},
+     {{vs, r13, 0x3fc00000},
+      false,
+      al,
+      "vs r13 0x3fc00000",
+      "vs_r13_"
+      "0x3fc00000"},
+     {{gt, r12, 0x000ab000},
+      false,
+      al,
+      "gt r12 0x000ab000",
+      "gt_r12_"
+      "0x000ab000"},
+     {{pl, r7, 0x0000ff00}, false, al, "pl r7 0x0000ff00", "pl_r7_0x0000ff00"},
+     {{hi, r13, 0xab000000},
+      false,
+      al,
+      "hi r13 0xab000000",
+      "hi_r13_"
+      "0xab000000"},
+     {{vc, r3, 0x00003fc0}, false, al, "vc r3 0x00003fc0", "vc_r3_0x00003fc0"},
+     {{eq, r8, 0x03fc0000}, false, al, "eq r8 0x03fc0000", "eq_r8_0x03fc0000"},
+     {{ge, r7, 0x00ab0000}, false, al, "ge r7 0x00ab0000", "ge_r7_0x00ab0000"},
+     {{ls, r5, 0x00000ab0}, false, al, "ls r5 0x00000ab0", "ls_r5_0x00000ab0"},
+     {{ls, r8, 0xb000000a}, false, al, "ls r8 0xb000000a", "ls_r8_0xb000000a"},
+     {{cs, r2, 0xab000000}, false, al, "cs r2 0xab000000", "cs_r2_0xab000000"},
+     {{ne, r1, 0x0ab00000}, false, al, "ne r1 0x0ab00000", "ne_r1_0x0ab00000"},
+     {{hi, r3, 0x0ab00000}, false, al, "hi r3 0x0ab00000", "hi_r3_0x0ab00000"},
+     {{vc, r1, 0x00ab0000}, false, al, "vc r1 0x00ab0000", "vc_r1_0x00ab0000"},
+     {{gt, r12, 0x0003fc00},
+      false,
+      al,
+      "gt r12 0x0003fc00",
+      "gt_r12_"
+      "0x0003fc00"},
+     {{lt, r11, 0x00000ff0},
+      false,
+      al,
+      "lt r11 0x00000ff0",
+      "lt_r11_"
+      "0x00000ff0"},
+     {{ne, r5, 0xc000002a}, false, al, "ne r5 0xc000002a", "ne_r5_0xc000002a"},
+     {{vc, r6, 0x000003fc}, false, al, "vc r6 0x000003fc", "vc_r6_0x000003fc"},
+     {{gt, r1, 0xab000000}, false, al, "gt r1 0xab000000", "gt_r1_0xab000000"},
+     {{gt, r5, 0x3fc00000}, false, al, "gt r5 0x3fc00000", "gt_r5_0x3fc00000"},
+     {{cs, r3, 0x00002ac0}, false, al, "cs r3 0x00002ac0", "cs_r3_0x00002ac0"},
+     {{mi, r0, 0xff000000}, false, al, "mi r0 0xff000000", "mi_r0_0xff000000"},
+     {{cs, r3, 0x00000ff0}, false, al, "cs r3 0x00000ff0", "cs_r3_0x00000ff0"},
+     {{le, r13, 0xff000000},
+      false,
+      al,
+      "le r13 0xff000000",
+      "le_r13_"
+      "0xff000000"},
+     {{hi, r8, 0x00000000}, false, al, "hi r8 0x00000000", "hi_r8_0x00000000"},
+     {{vc, r12, 0x0002ac00},
+      false,
+      al,
+      "vc r12 0x0002ac00",
+      "vc_r12_"
+      "0x0002ac00"},
+     {{eq, r9, 0x00000ff0}, false, al, "eq r9 0x00000ff0", "eq_r9_0x00000ff0"},
+     {{vc, r14, 0x0ff00000},
+      false,
+      al,
+      "vc r14 0x0ff00000",
+      "vc_r14_"
+      "0x0ff00000"},
+     {{hi, r2, 0x00ff0000}, false, al, "hi r2 0x00ff0000", "hi_r2_0x00ff0000"},
+     {{al, r2, 0x03fc0000}, false, al, "al r2 0x03fc0000", "al_r2_0x03fc0000"},
+     {{mi, r14, 0x0ab00000},
+      false,
+      al,
+      "mi r14 0x0ab00000",
+      "mi_r14_"
+      "0x0ab00000"},
+     {{vs, r11, 0x000ff000},
+      false,
+      al,
+      "vs r11 0x000ff000",
+      "vs_r11_"
+      "0x000ff000"},
+     {{le, r11, 0x0003fc00},
+      false,
+      al,
+      "le r11 0x0003fc00",
+      "le_r11_"
+      "0x0003fc00"},
+     {{eq, r6, 0x002ac000}, false, al, "eq r6 0x002ac000", "eq_r6_0x002ac000"},
+     {{ne, r12, 0xab000000},
+      false,
+      al,
+      "ne r12 0xab000000",
+      "ne_r12_"
+      "0xab000000"},
+     {{eq, r4, 0x000ff000}, false, al, "eq r4 0x000ff000", "eq_r4_0x000ff000"},
+     {{cs, r6, 0x000003fc}, false, al, "cs r6 0x000003fc", "cs_r6_0x000003fc"},
+     {{le, r13, 0xf000000f},
+      false,
+      al,
+      "le r13 0xf000000f",
+      "le_r13_"
+      "0xf000000f"},
+     {{vs, r3, 0x02ac0000}, false, al, "vs r3 0x02ac0000", "vs_r3_0x02ac0000"},
+     {{lt, r3, 0xab000000}, false, al, "lt r3 0xab000000", "lt_r3_0xab000000"},
+     {{pl, r5, 0xab000000}, false, al, "pl r5 0xab000000", "pl_r5_0xab000000"},
+     {{mi, r10, 0x00002ac0},
+      false,
+      al,
+      "mi r10 0x00002ac0",
+      "mi_r10_"
+      "0x00002ac0"},
+     {{vc, r3, 0x000000ab}, false, al, "vc r3 0x000000ab", "vc_r3_0x000000ab"},
+     {{pl, r10, 0x02ac0000},
+      false,
+      al,
+      "pl r10 0x02ac0000",
+      "pl_r10_"
+      "0x02ac0000"},
+     {{vs, r11, 0x3fc00000},
+      false,
+      al,
+      "vs r11 0x3fc00000",
+      "vs_r11_"
+      "0x3fc00000"},
+     {{cc, r7, 0x3fc00000}, false, al, "cc r7 0x3fc00000", "cc_r7_0x3fc00000"},
+     {{cs, r3, 0x0000ab00}, false, al, "cs r3 0x0000ab00", "cs_r3_0x0000ab00"},
+     {{cc, r14, 0x02ac0000},
+      false,
+      al,
+      "cc r14 0x02ac0000",
+      "cc_r14_"
+      "0x02ac0000"},
+     {{vs, r0, 0x2ac00000}, false, al, "vs r0 0x2ac00000", "vs_r0_0x2ac00000"},
+     {{gt, r13, 0x0ff00000},
+      false,
+      al,
+      "gt r13 0x0ff00000",
+      "gt_r13_"
+      "0x0ff00000"},
+     {{mi, r10, 0x2ac00000},
+      false,
+      al,
+      "mi r10 0x2ac00000",
+      "mi_r10_"
+      "0x2ac00000"},
+     {{ls, r2, 0x0ab00000}, false, al, "ls r2 0x0ab00000", "ls_r2_0x0ab00000"},
+     {{pl, r10, 0x000000ff},
+      false,
+      al,
+      "pl r10 0x000000ff",
+      "pl_r10_"
+      "0x000000ff"},
+     {{al, r9, 0x3fc00000}, false, al, "al r9 0x3fc00000", "al_r9_0x3fc00000"},
+     {{vs, r4, 0x2ac00000}, false, al, "vs r4 0x2ac00000", "vs_r4_0x2ac00000"},
+     {{vs, r12, 0x000ff000},
+      false,
+      al,
+      "vs r12 0x000ff000",
+      "vs_r12_"
+      "0x000ff000"},
+     {{ge, r7, 0xc000002a}, false, al, "ge r7 0xc000002a", "ge_r7_0xc000002a"},
+     {{vc, r7, 0x0002ac00}, false, al, "vc r7 0x0002ac00", "vc_r7_0x0002ac00"},
+     {{gt, r7, 0x000ab000}, false, al, "gt r7 0x000ab000", "gt_r7_0x000ab000"},
+     {{gt, r13, 0x000000ab},
+      false,
+      al,
+      "gt r13 0x000000ab",
+      "gt_r13_"
+      "0x000000ab"},
+     {{ne, r1, 0xfc000003}, false, al, "ne r1 0xfc000003", "ne_r1_0xfc000003"},
+     {{vc, r14, 0x000ab000},
+      false,
+      al,
+      "vc r14 0x000ab000",
+      "vc_r14_"
+      "0x000ab000"},
+     {{gt, r5, 0xf000000f}, false, al, "gt r5 0xf000000f", "gt_r5_0xf000000f"},
+     {{ge, r6, 0x00ff0000}, false, al, "ge r6 0x00ff0000", "ge_r6_0x00ff0000"},
+     {{ls, r12, 0x0000ff00},
+      false,
+      al,
+      "ls r12 0x0000ff00",
+      "ls_r12_"
+      "0x0000ff00"},
+     {{mi, r12, 0x03fc0000},
+      false,
+      al,
+      "mi r12 0x03fc0000",
+      "mi_r12_"
+      "0x03fc0000"},
+     {{vs, r10, 0x0003fc00},
+      false,
+      al,
+      "vs r10 0x0003fc00",
+      "vs_r10_"
+      "0x0003fc00"},
+     {{gt, r6, 0x0000ff00}, false, al, "gt r6 0x0000ff00", "gt_r6_0x0000ff00"},
+     {{pl, r6, 0x00ff0000}, false, al, "pl r6 0x00ff0000", "pl_r6_0x00ff0000"},
+     {{ne, r0, 0x002ac000}, false, al, "ne r0 0x002ac000", "ne_r0_0x002ac000"},
+     {{eq, r2, 0x003fc000}, false, al, "eq r2 0x003fc000", "eq_r2_0x003fc000"},
+     {{ne, r10, 0x000003fc},
+      false,
+      al,
+      "ne r10 0x000003fc",
+      "ne_r10_"
+      "0x000003fc"},
+     {{lt, r10, 0x02ac0000},
+      false,
+      al,
+      "lt r10 0x02ac0000",
+      "lt_r10_"
+      "0x02ac0000"},
+     {{lt, r2, 0x000ff000}, false, al, "lt r2 0x000ff000", "lt_r2_0x000ff000"},
+     {{pl, r3, 0x0000ab00}, false, al, "pl r3 0x0000ab00", "pl_r3_0x0000ab00"},
+     {{ge, r9, 0xc000003f}, false, al, "ge r9 0xc000003f", "ge_r9_0xc000003f"},
+     {{vs, r4, 0x000003fc}, false, al, "vs r4 0x000003fc", "vs_r4_0x000003fc"},
+     {{hi, r13, 0xf000000f},
+      false,
+      al,
+      "hi r13 0xf000000f",
+      "hi_r13_"
+      "0xf000000f"},
+     {{pl, r1, 0x02ac0000}, false, al, "pl r1 0x02ac0000", "pl_r1_0x02ac0000"},
+     {{pl, r1, 0x000000ff}, false, al, "pl r1 0x000000ff", "pl_r1_0x000000ff"},
+     {{al, r3, 0x00000ff0}, false, al, "al r3 0x00000ff0", "al_r3_0x00000ff0"},
+     {{gt, r0, 0x03fc0000}, false, al, "gt r0 0x03fc0000", "gt_r0_0x03fc0000"},
+     {{cc, r1, 0x2ac00000}, false, al, "cc r1 0x2ac00000", "cc_r1_0x2ac00000"},
+     {{mi, r9, 0xc000003f}, false, al, "mi r9 0xc000003f", "mi_r9_0xc000003f"},
+     {{vc, r4, 0xff000000}, false, al, "vc r4 0xff000000", "vc_r4_0xff000000"},
+     {{pl, r9, 0x0002ac00}, false, al, "pl r9 0x0002ac00", "pl_r9_0x0002ac00"},
+     {{vs, r8, 0x02ac0000}, false, al, "vs r8 0x02ac0000", "vs_r8_0x02ac0000"},
+     {{gt, r7, 0xf000000f}, false, al, "gt r7 0xf000000f", "gt_r7_0xf000000f"},
+     {{gt, r10, 0xff000000},
+      false,
+      al,
+      "gt r10 0xff000000",
+      "gt_r10_"
+      "0xff000000"},
+     {{cs, r0, 0x00003fc0}, false, al, "cs r0 0x00003fc0", "cs_r0_0x00003fc0"},
+     {{gt, r8, 0x03fc0000}, false, al, "gt r8 0x03fc0000", "gt_r8_0x03fc0000"},
+     {{ne, r8, 0x00002ac0}, false, al, "ne r8 0x00002ac0", "ne_r8_0x00002ac0"},
+     {{ne, r13, 0xc000002a},
+      false,
+      al,
+      "ne r13 0xc000002a",
+      "ne_r13_"
+      "0xc000002a"},
+     {{ne, r8, 0x3fc00000}, false, al, "ne r8 0x3fc00000", "ne_r8_0x3fc00000"},
+     {{vs, r2, 0x002ac000}, false, al, "vs r2 0x002ac000", "vs_r2_0x002ac000"},
+     {{vs, r7, 0x000000ab}, false, al, "vs r7 0x000000ab", "vs_r7_0x000000ab"},
+     {{cc, r6, 0x00000000}, false, al, "cc r6 0x00000000", "cc_r6_0x00000000"},
+     {{ls, r3, 0xf000000f}, false, al, "ls r3 0xf000000f", "ls_r3_0xf000000f"},
+     {{hi, r0, 0x000000ff}, false, al, "hi r0 0x000000ff", "hi_r0_0x000000ff"},
+     {{cs, r6, 0x00002ac0}, false, al, "cs r6 0x00002ac0", "cs_r6_0x00002ac0"},
+     {{al, r1, 0xb000000a}, false, al, "al r1 0xb000000a", "al_r1_0xb000000a"},
+     {{cc, r0, 0x00002ac0}, false, al, "cc r0 0x00002ac0", "cc_r0_0x00002ac0"},
+     {{cc, r12, 0x000003fc},
+      false,
+      al,
+      "cc r12 0x000003fc",
+      "cc_r12_"
+      "0x000003fc"},
+     {{ne, r14, 0xc000002a},
+      false,
+      al,
+      "ne r14 0xc000002a",
+      "ne_r14_"
+      "0xc000002a"},
+     {{al, r6, 0xc000003f}, false, al, "al r6 0xc000003f", "al_r6_0xc000003f"},
+     {{ls, r5, 0xf000000f}, false, al, "ls r5 0xf000000f", "ls_r5_0xf000000f"},
+     {{mi, r5, 0x03fc0000}, false, al, "mi r5 0x03fc0000", "mi_r5_0x03fc0000"},
+     {{cs, r14, 0xf000000f},
+      false,
+      al,
+      "cs r14 0xf000000f",
+      "cs_r14_"
+      "0xf000000f"},
+     {{hi, r0, 0x02ac0000}, false, al, "hi r0 0x02ac0000", "hi_r0_0x02ac0000"},
+     {{pl, r10, 0x00000000},
+      false,
+      al,
+      "pl r10 0x00000000",
+      "pl_r10_"
+      "0x00000000"},
+     {{ne, r6, 0xc000003f}, false, al, "ne r6 0xc000003f", "ne_r6_0xc000003f"},
+     {{mi, r6, 0x00002ac0}, false, al, "mi r6 0x00002ac0", "mi_r6_0x00002ac0"},
+     {{vs, r6, 0x000000ab}, false, al, "vs r6 0x000000ab", "vs_r6_0x000000ab"},
+     {{vc, r6, 0x3fc00000}, false, al, "vc r6 0x3fc00000", "vc_r6_0x3fc00000"},
+     {{al, r10, 0x3fc00000},
+      false,
+      al,
+      "al r10 0x3fc00000",
+      "al_r10_"
+      "0x3fc00000"},
+     {{eq, r7, 0xc000003f}, false, al, "eq r7 0xc000003f", "eq_r7_0xc000003f"},
+     {{vs, r9, 0x02ac0000}, false, al, "vs r9 0x02ac0000", "vs_r9_0x02ac0000"},
+     {{mi, r6, 0xac000002}, false, al, "mi r6 0xac000002", "mi_r6_0xac000002"},
+     {{vc, r8, 0xc000002a}, false, al, "vc r8 0xc000002a", "vc_r8_0xc000002a"},
+     {{pl, r2, 0x0000ab00}, false, al, "pl r2 0x0000ab00", "pl_r2_0x0000ab00"},
+     {{hi, r4, 0x00000ff0}, false, al, "hi r4 0x00000ff0", "hi_r4_0x00000ff0"},
+     {{al, r8, 0x003fc000}, false, al, "al r8 0x003fc000", "al_r8_0x003fc000"},
+     {{vs, r12, 0xfc000003},
+      false,
+      al,
+      "vs r12 0xfc000003",
+      "vs_r12_"
+      "0xfc000003"},
+     {{cs, r0, 0xac000002}, false, al, "cs r0 0xac000002", "cs_r0_0xac000002"},
+     {{mi, r4, 0x02ac0000}, false, al, "mi r4 0x02ac0000", "mi_r4_0x02ac0000"},
+     {{pl, r11, 0x00003fc0},
+      false,
+      al,
+      "pl r11 0x00003fc0",
+      "pl_r11_"
+      "0x00003fc0"},
+     {{pl, r13, 0xac000002},
+      false,
+      al,
+      "pl r13 0xac000002",
+      "pl_r13_"
+      "0xac000002"},
+     {{hi, r8, 0x0000ff00}, false, al, "hi r8 0x0000ff00", "hi_r8_0x0000ff00"},
+     {{cs, r13, 0x2ac00000},
+      false,
+      al,
+      "cs r13 0x2ac00000",
+      "cs_r13_"
+      "0x2ac00000"},
+     {{hi, r11, 0xc000003f},
+      false,
+      al,
+      "hi r11 0xc000003f",
+      "hi_r11_"
+      "0xc000003f"},
+     {{lt, r5, 0x000002ac}, false, al, "lt r5 0x000002ac", "lt_r5_0x000002ac"},
+     {{vs, r4, 0x0ff00000}, false, al, "vs r4 0x0ff00000", "vs_r4_0x0ff00000"},
+     {{lt, r2, 0x00000ab0}, false, al, "lt r2 0x00000ab0", "lt_r2_0x00000ab0"},
+     {{pl, r12, 0x000000ab},
+      false,
+      al,
+      "pl r12 0x000000ab",
+      "pl_r12_"
+      "0x000000ab"},
+     {{gt, r3, 0xb000000a}, false, al, "gt r3 0xb000000a", "gt_r3_0xb000000a"},
+     {{hi, r12, 0x0002ac00},
+      false,
+      al,
+      "hi r12 0x0002ac00",
+      "hi_r12_"
+      "0x0002ac00"},
+     {{le, r0, 0x00ff0000}, false, al, "le r0 0x00ff0000", "le_r0_0x00ff0000"},
+     {{eq, r6, 0x000ab000}, false, al, "eq r6 0x000ab000", "eq_r6_0x000ab000"},
+     {{lt, r6, 0x0ff00000}, false, al, "lt r6 0x0ff00000", "lt_r6_0x0ff00000"},
+     {{mi, r4, 0x000ff000}, false, al, "mi r4 0x000ff000", "mi_r4_0x000ff000"},
+     {{le, r3, 0x0ab00000}, false, al, "le r3 0x0ab00000", "le_r3_0x0ab00000"},
+     {{ge, r3, 0xac000002}, false, al, "ge r3 0xac000002", "ge_r3_0xac000002"},
+     {{gt, r13, 0x00000ff0},
+      false,
+      al,
+      "gt r13 0x00000ff0",
+      "gt_r13_"
+      "0x00000ff0"},
+     {{le, r10, 0x0000ff00},
+      false,
+      al,
+      "le r10 0x0000ff00",
+      "le_r10_"
+      "0x0000ff00"},
+     {{lt, r14, 0x00ab0000},
+      false,
+      al,
+      "lt r14 0x00ab0000",
+      "lt_r14_"
+      "0x00ab0000"},
+     {{mi, r2, 0x00003fc0}, false, al, "mi r2 0x00003fc0", "mi_r2_0x00003fc0"},
+     {{ge, r9, 0x00002ac0}, false, al, "ge r9 0x00002ac0", "ge_r9_0x00002ac0"},
+     {{al, r11, 0x2ac00000},
+      false,
+      al,
+      "al r11 0x2ac00000",
+      "al_r11_"
+      "0x2ac00000"},
+     {{pl, r6, 0x00000000}, false, al, "pl r6 0x00000000", "pl_r6_0x00000000"},
+     {{ls, r2, 0x002ac000}, false, al, "ls r2 0x002ac000", "ls_r2_0x002ac000"},
+     {{lt, r0, 0xf000000f}, false, al, "lt r0 0xf000000f", "lt_r0_0xf000000f"},
+     {{cs, r6, 0x00000ff0}, false, al, "cs r6 0x00000ff0", "cs_r6_0x00000ff0"},
+     {{lt, r12, 0x00000ff0},
+      false,
+      al,
+      "lt r12 0x00000ff0",
+      "lt_r12_"
+      "0x00000ff0"},
+     {{al, r6, 0xff000000}, false, al, "al r6 0xff000000", "al_r6_0xff000000"},
+     {{gt, r4, 0x0000ff00}, false, al, "gt r4 0x0000ff00", "gt_r4_0x0000ff00"},
+     {{al, r14, 0x0000ff00},
+      false,
+      al,
+      "al r14 0x0000ff00",
+      "al_r14_"
+      "0x0000ff00"},
+     {{al, r10, 0xf000000f},
+      false,
+      al,
+      "al r10 0xf000000f",
+      "al_r10_"
+      "0xf000000f"},
+     {{mi, r3, 0x0003fc00}, false, al, "mi r3 0x0003fc00", "mi_r3_0x0003fc00"},
+     {{pl, r0, 0xf000000f}, false, al, "pl r0 0xf000000f", "pl_r0_0xf000000f"},
+     {{al, r6, 0x00000ab0}, false, al, "al r6 0x00000ab0", "al_r6_0x00000ab0"},
+     {{le, r8, 0x000002ac}, false, al, "le r8 0x000002ac", "le_r8_0x000002ac"},
+     {{ge, r14, 0x00000000},
+      false,
+      al,
+      "ge r14 0x00000000",
+      "ge_r14_"
+      "0x00000000"},
+     {{eq, r1, 0xff000000}, false, al, "eq r1 0xff000000", "eq_r1_0xff000000"},
+     {{mi, r14, 0x00000ff0},
+      false,
+      al,
+      "mi r14 0x00000ff0",
+      "mi_r14_"
+      "0x00000ff0"},
+     {{eq, r3, 0xff000000}, false, al, "eq r3 0xff000000", "eq_r3_0xff000000"},
+     {{mi, r0, 0x0000ab00}, false, al, "mi r0 0x0000ab00", "mi_r0_0x0000ab00"},
+     {{mi, r5, 0x000ff000}, false, al, "mi r5 0x000ff000", "mi_r5_0x000ff000"},
+     {{vs, r3, 0x0ff00000}, false, al, "vs r3 0x0ff00000", "vs_r3_0x0ff00000"},
+     {{gt, r14, 0x0ff00000},
+      false,
+      al,
+      "gt r14 0x0ff00000",
+      "gt_r14_"
+      "0x0ff00000"},
+     {{le, r6, 0x000003fc}, false, al, "le r6 0x000003fc", "le_r6_0x000003fc"},
+     {{vs, r6, 0xab000000}, false, al, "vs r6 0xab000000", "vs_r6_0xab000000"},
+     {{le, r0, 0x000000ab}, false, al, "le r0 0x000000ab", "le_r0_0x000000ab"},
+     {{cc, r9, 0x0ab00000}, false, al, "cc r9 0x0ab00000", "cc_r9_0x0ab00000"},
+     {{vs, r10, 0x0ff00000},
+      false,
+      al,
+      "vs r10 0x0ff00000",
+      "vs_r10_"
+      "0x0ff00000"},
+     {{gt, r3, 0x002ac000}, false, al, "gt r3 0x002ac000", "gt_r3_0x002ac000"},
+     {{le, r2, 0x0ab00000}, false, al, "le r2 0x0ab00000", "le_r2_0x0ab00000"},
+     {{ne, r14, 0xc000003f},
+      false,
+      al,
+      "ne r14 0xc000003f",
+      "ne_r14_"
+      "0xc000003f"},
+     {{ne, r14, 0x000ff000},
+      false,
+      al,
+      "ne r14 0x000ff000",
+      "ne_r14_"
+      "0x000ff000"},
+     {{hi, r3, 0xb000000a}, false, al, "hi r3 0xb000000a", "hi_r3_0xb000000a"},
+     {{cs, r7, 0x000000ab}, false, al, "cs r7 0x000000ab", "cs_r7_0x000000ab"},
+     {{eq, r12, 0x3fc00000},
+      false,
+      al,
+      "eq r12 0x3fc00000",
+      "eq_r12_"
+      "0x3fc00000"},
+     {{ls, r5, 0x03fc0000}, false, al, "ls r5 0x03fc0000", "ls_r5_0x03fc0000"},
+     {{ne, r13, 0x003fc000},
+      false,
+      al,
+      "ne r13 0x003fc000",
+      "ne_r13_"
+      "0x003fc000"},
+     {{hi, r6, 0xac000002}, false, al, "hi r6 0xac000002", "hi_r6_0xac000002"},
+     {{vc, r6, 0xfc000003}, false, al, "vc r6 0xfc000003", "vc_r6_0xfc000003"},
+     {{pl, r10, 0x00ab0000},
+      false,
+      al,
+      "pl r10 0x00ab0000",
+      "pl_r10_"
+      "0x00ab0000"},
+     {{vc, r6, 0x0000ff00}, false, al, "vc r6 0x0000ff00", "vc_r6_0x0000ff00"},
+     {{cs, r0, 0x003fc000}, false, al, "cs r0 0x003fc000", "cs_r0_0x003fc000"},
+     {{hi, r5, 0x000003fc}, false, al, "hi r5 0x000003fc", "hi_r5_0x000003fc"},
+     {{mi, r7, 0x0002ac00}, false, al, "mi r7 0x0002ac00", "mi_r7_0x0002ac00"},
+     {{ne, r0, 0x02ac0000}, false, al, "ne r0 0x02ac0000", "ne_r0_0x02ac0000"},
+     {{vs, r12, 0xc000002a},
+      false,
+      al,
+      "vs r12 0xc000002a",
+      "vs_r12_"
+      "0xc000002a"},
+     {{al, r12, 0x000002ac},
+      false,
+      al,
+      "al r12 0x000002ac",
+      "al_r12_"
+      "0x000002ac"},
+     {{cs, r4, 0x3fc00000}, false, al, "cs r4 0x3fc00000", "cs_r4_0x3fc00000"},
+     {{ne, r9, 0x00000ab0}, false, al, "ne r9 0x00000ab0", "ne_r9_0x00000ab0"},
+     {{eq, r14, 0x0003fc00},
+      false,
+      al,
+      "eq r14 0x0003fc00",
+      "eq_r14_0x0003fc00"}};
 
 // These headers each contain an array of `TestResult` with the reference output
 // values. The reference arrays are names `kReference{mnemonic}`.
diff --git a/test/aarch32/test-assembler-cond-rd-operand-const-t32.cc b/test/aarch32/test-assembler-cond-rd-operand-const-t32.cc
index f11f2cd..dd8318f 100644
--- a/test/aarch32/test-assembler-cond-rd-operand-const-t32.cc
+++ b/test/aarch32/test-assembler-cond-rd-operand-const-t32.cc
@@ -98,1130 +98,2246 @@
 };
 
 // Each element of this array produce one instruction encoding.
-const TestData kTests[] = {
-    {{al, r0, 0x000001fe}, false, al, "al r0 0x000001fe", "al_r0_0x000001fe"},
-    {{al, r0, 0x000003fc}, false, al, "al r0 0x000003fc", "al_r0_0x000003fc"},
-    {{al, r0, 0x000007f8}, false, al, "al r0 0x000007f8", "al_r0_0x000007f8"},
-    {{al, r0, 0x00000ff0}, false, al, "al r0 0x00000ff0", "al_r0_0x00000ff0"},
-    {{al, r0, 0x00001fe0}, false, al, "al r0 0x00001fe0", "al_r0_0x00001fe0"},
-    {{al, r0, 0x00003fc0}, false, al, "al r0 0x00003fc0", "al_r0_0x00003fc0"},
-    {{al, r0, 0x00007f80}, false, al, "al r0 0x00007f80", "al_r0_0x00007f80"},
-    {{al, r0, 0x0000ff00}, false, al, "al r0 0x0000ff00", "al_r0_0x0000ff00"},
-    {{al, r0, 0x0001fe00}, false, al, "al r0 0x0001fe00", "al_r0_0x0001fe00"},
-    {{al, r0, 0x0003fc00}, false, al, "al r0 0x0003fc00", "al_r0_0x0003fc00"},
-    {{al, r0, 0x0007f800}, false, al, "al r0 0x0007f800", "al_r0_0x0007f800"},
-    {{al, r0, 0x000ff000}, false, al, "al r0 0x000ff000", "al_r0_0x000ff000"},
-    {{al, r0, 0x001fe000}, false, al, "al r0 0x001fe000", "al_r0_0x001fe000"},
-    {{al, r0, 0x003fc000}, false, al, "al r0 0x003fc000", "al_r0_0x003fc000"},
-    {{al, r0, 0x007f8000}, false, al, "al r0 0x007f8000", "al_r0_0x007f8000"},
-    {{al, r0, 0x00ff0000}, false, al, "al r0 0x00ff0000", "al_r0_0x00ff0000"},
-    {{al, r0, 0x01fe0000}, false, al, "al r0 0x01fe0000", "al_r0_0x01fe0000"},
-    {{al, r0, 0x03fc0000}, false, al, "al r0 0x03fc0000", "al_r0_0x03fc0000"},
-    {{al, r0, 0x07f80000}, false, al, "al r0 0x07f80000", "al_r0_0x07f80000"},
-    {{al, r0, 0x0ff00000}, false, al, "al r0 0x0ff00000", "al_r0_0x0ff00000"},
-    {{al, r0, 0x1fe00000}, false, al, "al r0 0x1fe00000", "al_r0_0x1fe00000"},
-    {{al, r0, 0x3fc00000}, false, al, "al r0 0x3fc00000", "al_r0_0x3fc00000"},
-    {{al, r0, 0x7f800000}, false, al, "al r0 0x7f800000", "al_r0_0x7f800000"},
-    {{al, r0, 0xff000000}, false, al, "al r0 0xff000000", "al_r0_0xff000000"},
-    {{al, r0, 0x000000ff}, false, al, "al r0 0x000000ff", "al_r0_0x000000ff"},
-    {{al, r0, 0x00ff00ff}, false, al, "al r0 0x00ff00ff", "al_r0_0x00ff00ff"},
-    {{al, r0, 0xff00ff00}, false, al, "al r0 0xff00ff00", "al_r0_0xff00ff00"},
-    {{al, r0, 0xffffffff}, false, al, "al r0 0xffffffff", "al_r0_0xffffffff"},
-    {{al, r0, 0x00000156}, false, al, "al r0 0x00000156", "al_r0_0x00000156"},
-    {{al, r0, 0x000002ac}, false, al, "al r0 0x000002ac", "al_r0_0x000002ac"},
-    {{al, r0, 0x00000558}, false, al, "al r0 0x00000558", "al_r0_0x00000558"},
-    {{al, r0, 0x00000ab0}, false, al, "al r0 0x00000ab0", "al_r0_0x00000ab0"},
-    {{al, r0, 0x00001560}, false, al, "al r0 0x00001560", "al_r0_0x00001560"},
-    {{al, r0, 0x00002ac0}, false, al, "al r0 0x00002ac0", "al_r0_0x00002ac0"},
-    {{al, r0, 0x00005580}, false, al, "al r0 0x00005580", "al_r0_0x00005580"},
-    {{al, r0, 0x0000ab00}, false, al, "al r0 0x0000ab00", "al_r0_0x0000ab00"},
-    {{al, r0, 0x00015600}, false, al, "al r0 0x00015600", "al_r0_0x00015600"},
-    {{al, r0, 0x0002ac00}, false, al, "al r0 0x0002ac00", "al_r0_0x0002ac00"},
-    {{al, r0, 0x00055800}, false, al, "al r0 0x00055800", "al_r0_0x00055800"},
-    {{al, r0, 0x000ab000}, false, al, "al r0 0x000ab000", "al_r0_0x000ab000"},
-    {{al, r0, 0x00156000}, false, al, "al r0 0x00156000", "al_r0_0x00156000"},
-    {{al, r0, 0x002ac000}, false, al, "al r0 0x002ac000", "al_r0_0x002ac000"},
-    {{al, r0, 0x00558000}, false, al, "al r0 0x00558000", "al_r0_0x00558000"},
-    {{al, r0, 0x00ab0000}, false, al, "al r0 0x00ab0000", "al_r0_0x00ab0000"},
-    {{al, r0, 0x01560000}, false, al, "al r0 0x01560000", "al_r0_0x01560000"},
-    {{al, r0, 0x02ac0000}, false, al, "al r0 0x02ac0000", "al_r0_0x02ac0000"},
-    {{al, r0, 0x05580000}, false, al, "al r0 0x05580000", "al_r0_0x05580000"},
-    {{al, r0, 0x0ab00000}, false, al, "al r0 0x0ab00000", "al_r0_0x0ab00000"},
-    {{al, r0, 0x15600000}, false, al, "al r0 0x15600000", "al_r0_0x15600000"},
-    {{al, r0, 0x2ac00000}, false, al, "al r0 0x2ac00000", "al_r0_0x2ac00000"},
-    {{al, r0, 0x55800000}, false, al, "al r0 0x55800000", "al_r0_0x55800000"},
-    {{al, r0, 0xab000000}, false, al, "al r0 0xab000000", "al_r0_0xab000000"},
-    {{al, r0, 0x000000ab}, false, al, "al r0 0x000000ab", "al_r0_0x000000ab"},
-    {{al, r0, 0x00ab00ab}, false, al, "al r0 0x00ab00ab", "al_r0_0x00ab00ab"},
-    {{al, r0, 0xab00ab00}, false, al, "al r0 0xab00ab00", "al_r0_0xab00ab00"},
-    {{al, r0, 0xabababab}, false, al, "al r0 0xabababab", "al_r0_0xabababab"},
-    {{al, r1, 0x000001fe}, false, al, "al r1 0x000001fe", "al_r1_0x000001fe"},
-    {{al, r1, 0x000003fc}, false, al, "al r1 0x000003fc", "al_r1_0x000003fc"},
-    {{al, r1, 0x000007f8}, false, al, "al r1 0x000007f8", "al_r1_0x000007f8"},
-    {{al, r1, 0x00000ff0}, false, al, "al r1 0x00000ff0", "al_r1_0x00000ff0"},
-    {{al, r1, 0x00001fe0}, false, al, "al r1 0x00001fe0", "al_r1_0x00001fe0"},
-    {{al, r1, 0x00003fc0}, false, al, "al r1 0x00003fc0", "al_r1_0x00003fc0"},
-    {{al, r1, 0x00007f80}, false, al, "al r1 0x00007f80", "al_r1_0x00007f80"},
-    {{al, r1, 0x0000ff00}, false, al, "al r1 0x0000ff00", "al_r1_0x0000ff00"},
-    {{al, r1, 0x0001fe00}, false, al, "al r1 0x0001fe00", "al_r1_0x0001fe00"},
-    {{al, r1, 0x0003fc00}, false, al, "al r1 0x0003fc00", "al_r1_0x0003fc00"},
-    {{al, r1, 0x0007f800}, false, al, "al r1 0x0007f800", "al_r1_0x0007f800"},
-    {{al, r1, 0x000ff000}, false, al, "al r1 0x000ff000", "al_r1_0x000ff000"},
-    {{al, r1, 0x001fe000}, false, al, "al r1 0x001fe000", "al_r1_0x001fe000"},
-    {{al, r1, 0x003fc000}, false, al, "al r1 0x003fc000", "al_r1_0x003fc000"},
-    {{al, r1, 0x007f8000}, false, al, "al r1 0x007f8000", "al_r1_0x007f8000"},
-    {{al, r1, 0x00ff0000}, false, al, "al r1 0x00ff0000", "al_r1_0x00ff0000"},
-    {{al, r1, 0x01fe0000}, false, al, "al r1 0x01fe0000", "al_r1_0x01fe0000"},
-    {{al, r1, 0x03fc0000}, false, al, "al r1 0x03fc0000", "al_r1_0x03fc0000"},
-    {{al, r1, 0x07f80000}, false, al, "al r1 0x07f80000", "al_r1_0x07f80000"},
-    {{al, r1, 0x0ff00000}, false, al, "al r1 0x0ff00000", "al_r1_0x0ff00000"},
-    {{al, r1, 0x1fe00000}, false, al, "al r1 0x1fe00000", "al_r1_0x1fe00000"},
-    {{al, r1, 0x3fc00000}, false, al, "al r1 0x3fc00000", "al_r1_0x3fc00000"},
-    {{al, r1, 0x7f800000}, false, al, "al r1 0x7f800000", "al_r1_0x7f800000"},
-    {{al, r1, 0xff000000}, false, al, "al r1 0xff000000", "al_r1_0xff000000"},
-    {{al, r1, 0x000000ff}, false, al, "al r1 0x000000ff", "al_r1_0x000000ff"},
-    {{al, r1, 0x00ff00ff}, false, al, "al r1 0x00ff00ff", "al_r1_0x00ff00ff"},
-    {{al, r1, 0xff00ff00}, false, al, "al r1 0xff00ff00", "al_r1_0xff00ff00"},
-    {{al, r1, 0xffffffff}, false, al, "al r1 0xffffffff", "al_r1_0xffffffff"},
-    {{al, r1, 0x00000156}, false, al, "al r1 0x00000156", "al_r1_0x00000156"},
-    {{al, r1, 0x000002ac}, false, al, "al r1 0x000002ac", "al_r1_0x000002ac"},
-    {{al, r1, 0x00000558}, false, al, "al r1 0x00000558", "al_r1_0x00000558"},
-    {{al, r1, 0x00000ab0}, false, al, "al r1 0x00000ab0", "al_r1_0x00000ab0"},
-    {{al, r1, 0x00001560}, false, al, "al r1 0x00001560", "al_r1_0x00001560"},
-    {{al, r1, 0x00002ac0}, false, al, "al r1 0x00002ac0", "al_r1_0x00002ac0"},
-    {{al, r1, 0x00005580}, false, al, "al r1 0x00005580", "al_r1_0x00005580"},
-    {{al, r1, 0x0000ab00}, false, al, "al r1 0x0000ab00", "al_r1_0x0000ab00"},
-    {{al, r1, 0x00015600}, false, al, "al r1 0x00015600", "al_r1_0x00015600"},
-    {{al, r1, 0x0002ac00}, false, al, "al r1 0x0002ac00", "al_r1_0x0002ac00"},
-    {{al, r1, 0x00055800}, false, al, "al r1 0x00055800", "al_r1_0x00055800"},
-    {{al, r1, 0x000ab000}, false, al, "al r1 0x000ab000", "al_r1_0x000ab000"},
-    {{al, r1, 0x00156000}, false, al, "al r1 0x00156000", "al_r1_0x00156000"},
-    {{al, r1, 0x002ac000}, false, al, "al r1 0x002ac000", "al_r1_0x002ac000"},
-    {{al, r1, 0x00558000}, false, al, "al r1 0x00558000", "al_r1_0x00558000"},
-    {{al, r1, 0x00ab0000}, false, al, "al r1 0x00ab0000", "al_r1_0x00ab0000"},
-    {{al, r1, 0x01560000}, false, al, "al r1 0x01560000", "al_r1_0x01560000"},
-    {{al, r1, 0x02ac0000}, false, al, "al r1 0x02ac0000", "al_r1_0x02ac0000"},
-    {{al, r1, 0x05580000}, false, al, "al r1 0x05580000", "al_r1_0x05580000"},
-    {{al, r1, 0x0ab00000}, false, al, "al r1 0x0ab00000", "al_r1_0x0ab00000"},
-    {{al, r1, 0x15600000}, false, al, "al r1 0x15600000", "al_r1_0x15600000"},
-    {{al, r1, 0x2ac00000}, false, al, "al r1 0x2ac00000", "al_r1_0x2ac00000"},
-    {{al, r1, 0x55800000}, false, al, "al r1 0x55800000", "al_r1_0x55800000"},
-    {{al, r1, 0xab000000}, false, al, "al r1 0xab000000", "al_r1_0xab000000"},
-    {{al, r1, 0x000000ab}, false, al, "al r1 0x000000ab", "al_r1_0x000000ab"},
-    {{al, r1, 0x00ab00ab}, false, al, "al r1 0x00ab00ab", "al_r1_0x00ab00ab"},
-    {{al, r1, 0xab00ab00}, false, al, "al r1 0xab00ab00", "al_r1_0xab00ab00"},
-    {{al, r1, 0xabababab}, false, al, "al r1 0xabababab", "al_r1_0xabababab"},
-    {{al, r2, 0x000001fe}, false, al, "al r2 0x000001fe", "al_r2_0x000001fe"},
-    {{al, r2, 0x000003fc}, false, al, "al r2 0x000003fc", "al_r2_0x000003fc"},
-    {{al, r2, 0x000007f8}, false, al, "al r2 0x000007f8", "al_r2_0x000007f8"},
-    {{al, r2, 0x00000ff0}, false, al, "al r2 0x00000ff0", "al_r2_0x00000ff0"},
-    {{al, r2, 0x00001fe0}, false, al, "al r2 0x00001fe0", "al_r2_0x00001fe0"},
-    {{al, r2, 0x00003fc0}, false, al, "al r2 0x00003fc0", "al_r2_0x00003fc0"},
-    {{al, r2, 0x00007f80}, false, al, "al r2 0x00007f80", "al_r2_0x00007f80"},
-    {{al, r2, 0x0000ff00}, false, al, "al r2 0x0000ff00", "al_r2_0x0000ff00"},
-    {{al, r2, 0x0001fe00}, false, al, "al r2 0x0001fe00", "al_r2_0x0001fe00"},
-    {{al, r2, 0x0003fc00}, false, al, "al r2 0x0003fc00", "al_r2_0x0003fc00"},
-    {{al, r2, 0x0007f800}, false, al, "al r2 0x0007f800", "al_r2_0x0007f800"},
-    {{al, r2, 0x000ff000}, false, al, "al r2 0x000ff000", "al_r2_0x000ff000"},
-    {{al, r2, 0x001fe000}, false, al, "al r2 0x001fe000", "al_r2_0x001fe000"},
-    {{al, r2, 0x003fc000}, false, al, "al r2 0x003fc000", "al_r2_0x003fc000"},
-    {{al, r2, 0x007f8000}, false, al, "al r2 0x007f8000", "al_r2_0x007f8000"},
-    {{al, r2, 0x00ff0000}, false, al, "al r2 0x00ff0000", "al_r2_0x00ff0000"},
-    {{al, r2, 0x01fe0000}, false, al, "al r2 0x01fe0000", "al_r2_0x01fe0000"},
-    {{al, r2, 0x03fc0000}, false, al, "al r2 0x03fc0000", "al_r2_0x03fc0000"},
-    {{al, r2, 0x07f80000}, false, al, "al r2 0x07f80000", "al_r2_0x07f80000"},
-    {{al, r2, 0x0ff00000}, false, al, "al r2 0x0ff00000", "al_r2_0x0ff00000"},
-    {{al, r2, 0x1fe00000}, false, al, "al r2 0x1fe00000", "al_r2_0x1fe00000"},
-    {{al, r2, 0x3fc00000}, false, al, "al r2 0x3fc00000", "al_r2_0x3fc00000"},
-    {{al, r2, 0x7f800000}, false, al, "al r2 0x7f800000", "al_r2_0x7f800000"},
-    {{al, r2, 0xff000000}, false, al, "al r2 0xff000000", "al_r2_0xff000000"},
-    {{al, r2, 0x000000ff}, false, al, "al r2 0x000000ff", "al_r2_0x000000ff"},
-    {{al, r2, 0x00ff00ff}, false, al, "al r2 0x00ff00ff", "al_r2_0x00ff00ff"},
-    {{al, r2, 0xff00ff00}, false, al, "al r2 0xff00ff00", "al_r2_0xff00ff00"},
-    {{al, r2, 0xffffffff}, false, al, "al r2 0xffffffff", "al_r2_0xffffffff"},
-    {{al, r2, 0x00000156}, false, al, "al r2 0x00000156", "al_r2_0x00000156"},
-    {{al, r2, 0x000002ac}, false, al, "al r2 0x000002ac", "al_r2_0x000002ac"},
-    {{al, r2, 0x00000558}, false, al, "al r2 0x00000558", "al_r2_0x00000558"},
-    {{al, r2, 0x00000ab0}, false, al, "al r2 0x00000ab0", "al_r2_0x00000ab0"},
-    {{al, r2, 0x00001560}, false, al, "al r2 0x00001560", "al_r2_0x00001560"},
-    {{al, r2, 0x00002ac0}, false, al, "al r2 0x00002ac0", "al_r2_0x00002ac0"},
-    {{al, r2, 0x00005580}, false, al, "al r2 0x00005580", "al_r2_0x00005580"},
-    {{al, r2, 0x0000ab00}, false, al, "al r2 0x0000ab00", "al_r2_0x0000ab00"},
-    {{al, r2, 0x00015600}, false, al, "al r2 0x00015600", "al_r2_0x00015600"},
-    {{al, r2, 0x0002ac00}, false, al, "al r2 0x0002ac00", "al_r2_0x0002ac00"},
-    {{al, r2, 0x00055800}, false, al, "al r2 0x00055800", "al_r2_0x00055800"},
-    {{al, r2, 0x000ab000}, false, al, "al r2 0x000ab000", "al_r2_0x000ab000"},
-    {{al, r2, 0x00156000}, false, al, "al r2 0x00156000", "al_r2_0x00156000"},
-    {{al, r2, 0x002ac000}, false, al, "al r2 0x002ac000", "al_r2_0x002ac000"},
-    {{al, r2, 0x00558000}, false, al, "al r2 0x00558000", "al_r2_0x00558000"},
-    {{al, r2, 0x00ab0000}, false, al, "al r2 0x00ab0000", "al_r2_0x00ab0000"},
-    {{al, r2, 0x01560000}, false, al, "al r2 0x01560000", "al_r2_0x01560000"},
-    {{al, r2, 0x02ac0000}, false, al, "al r2 0x02ac0000", "al_r2_0x02ac0000"},
-    {{al, r2, 0x05580000}, false, al, "al r2 0x05580000", "al_r2_0x05580000"},
-    {{al, r2, 0x0ab00000}, false, al, "al r2 0x0ab00000", "al_r2_0x0ab00000"},
-    {{al, r2, 0x15600000}, false, al, "al r2 0x15600000", "al_r2_0x15600000"},
-    {{al, r2, 0x2ac00000}, false, al, "al r2 0x2ac00000", "al_r2_0x2ac00000"},
-    {{al, r2, 0x55800000}, false, al, "al r2 0x55800000", "al_r2_0x55800000"},
-    {{al, r2, 0xab000000}, false, al, "al r2 0xab000000", "al_r2_0xab000000"},
-    {{al, r2, 0x000000ab}, false, al, "al r2 0x000000ab", "al_r2_0x000000ab"},
-    {{al, r2, 0x00ab00ab}, false, al, "al r2 0x00ab00ab", "al_r2_0x00ab00ab"},
-    {{al, r2, 0xab00ab00}, false, al, "al r2 0xab00ab00", "al_r2_0xab00ab00"},
-    {{al, r2, 0xabababab}, false, al, "al r2 0xabababab", "al_r2_0xabababab"},
-    {{al, r3, 0x000001fe}, false, al, "al r3 0x000001fe", "al_r3_0x000001fe"},
-    {{al, r3, 0x000003fc}, false, al, "al r3 0x000003fc", "al_r3_0x000003fc"},
-    {{al, r3, 0x000007f8}, false, al, "al r3 0x000007f8", "al_r3_0x000007f8"},
-    {{al, r3, 0x00000ff0}, false, al, "al r3 0x00000ff0", "al_r3_0x00000ff0"},
-    {{al, r3, 0x00001fe0}, false, al, "al r3 0x00001fe0", "al_r3_0x00001fe0"},
-    {{al, r3, 0x00003fc0}, false, al, "al r3 0x00003fc0", "al_r3_0x00003fc0"},
-    {{al, r3, 0x00007f80}, false, al, "al r3 0x00007f80", "al_r3_0x00007f80"},
-    {{al, r3, 0x0000ff00}, false, al, "al r3 0x0000ff00", "al_r3_0x0000ff00"},
-    {{al, r3, 0x0001fe00}, false, al, "al r3 0x0001fe00", "al_r3_0x0001fe00"},
-    {{al, r3, 0x0003fc00}, false, al, "al r3 0x0003fc00", "al_r3_0x0003fc00"},
-    {{al, r3, 0x0007f800}, false, al, "al r3 0x0007f800", "al_r3_0x0007f800"},
-    {{al, r3, 0x000ff000}, false, al, "al r3 0x000ff000", "al_r3_0x000ff000"},
-    {{al, r3, 0x001fe000}, false, al, "al r3 0x001fe000", "al_r3_0x001fe000"},
-    {{al, r3, 0x003fc000}, false, al, "al r3 0x003fc000", "al_r3_0x003fc000"},
-    {{al, r3, 0x007f8000}, false, al, "al r3 0x007f8000", "al_r3_0x007f8000"},
-    {{al, r3, 0x00ff0000}, false, al, "al r3 0x00ff0000", "al_r3_0x00ff0000"},
-    {{al, r3, 0x01fe0000}, false, al, "al r3 0x01fe0000", "al_r3_0x01fe0000"},
-    {{al, r3, 0x03fc0000}, false, al, "al r3 0x03fc0000", "al_r3_0x03fc0000"},
-    {{al, r3, 0x07f80000}, false, al, "al r3 0x07f80000", "al_r3_0x07f80000"},
-    {{al, r3, 0x0ff00000}, false, al, "al r3 0x0ff00000", "al_r3_0x0ff00000"},
-    {{al, r3, 0x1fe00000}, false, al, "al r3 0x1fe00000", "al_r3_0x1fe00000"},
-    {{al, r3, 0x3fc00000}, false, al, "al r3 0x3fc00000", "al_r3_0x3fc00000"},
-    {{al, r3, 0x7f800000}, false, al, "al r3 0x7f800000", "al_r3_0x7f800000"},
-    {{al, r3, 0xff000000}, false, al, "al r3 0xff000000", "al_r3_0xff000000"},
-    {{al, r3, 0x000000ff}, false, al, "al r3 0x000000ff", "al_r3_0x000000ff"},
-    {{al, r3, 0x00ff00ff}, false, al, "al r3 0x00ff00ff", "al_r3_0x00ff00ff"},
-    {{al, r3, 0xff00ff00}, false, al, "al r3 0xff00ff00", "al_r3_0xff00ff00"},
-    {{al, r3, 0xffffffff}, false, al, "al r3 0xffffffff", "al_r3_0xffffffff"},
-    {{al, r3, 0x00000156}, false, al, "al r3 0x00000156", "al_r3_0x00000156"},
-    {{al, r3, 0x000002ac}, false, al, "al r3 0x000002ac", "al_r3_0x000002ac"},
-    {{al, r3, 0x00000558}, false, al, "al r3 0x00000558", "al_r3_0x00000558"},
-    {{al, r3, 0x00000ab0}, false, al, "al r3 0x00000ab0", "al_r3_0x00000ab0"},
-    {{al, r3, 0x00001560}, false, al, "al r3 0x00001560", "al_r3_0x00001560"},
-    {{al, r3, 0x00002ac0}, false, al, "al r3 0x00002ac0", "al_r3_0x00002ac0"},
-    {{al, r3, 0x00005580}, false, al, "al r3 0x00005580", "al_r3_0x00005580"},
-    {{al, r3, 0x0000ab00}, false, al, "al r3 0x0000ab00", "al_r3_0x0000ab00"},
-    {{al, r3, 0x00015600}, false, al, "al r3 0x00015600", "al_r3_0x00015600"},
-    {{al, r3, 0x0002ac00}, false, al, "al r3 0x0002ac00", "al_r3_0x0002ac00"},
-    {{al, r3, 0x00055800}, false, al, "al r3 0x00055800", "al_r3_0x00055800"},
-    {{al, r3, 0x000ab000}, false, al, "al r3 0x000ab000", "al_r3_0x000ab000"},
-    {{al, r3, 0x00156000}, false, al, "al r3 0x00156000", "al_r3_0x00156000"},
-    {{al, r3, 0x002ac000}, false, al, "al r3 0x002ac000", "al_r3_0x002ac000"},
-    {{al, r3, 0x00558000}, false, al, "al r3 0x00558000", "al_r3_0x00558000"},
-    {{al, r3, 0x00ab0000}, false, al, "al r3 0x00ab0000", "al_r3_0x00ab0000"},
-    {{al, r3, 0x01560000}, false, al, "al r3 0x01560000", "al_r3_0x01560000"},
-    {{al, r3, 0x02ac0000}, false, al, "al r3 0x02ac0000", "al_r3_0x02ac0000"},
-    {{al, r3, 0x05580000}, false, al, "al r3 0x05580000", "al_r3_0x05580000"},
-    {{al, r3, 0x0ab00000}, false, al, "al r3 0x0ab00000", "al_r3_0x0ab00000"},
-    {{al, r3, 0x15600000}, false, al, "al r3 0x15600000", "al_r3_0x15600000"},
-    {{al, r3, 0x2ac00000}, false, al, "al r3 0x2ac00000", "al_r3_0x2ac00000"},
-    {{al, r3, 0x55800000}, false, al, "al r3 0x55800000", "al_r3_0x55800000"},
-    {{al, r3, 0xab000000}, false, al, "al r3 0xab000000", "al_r3_0xab000000"},
-    {{al, r3, 0x000000ab}, false, al, "al r3 0x000000ab", "al_r3_0x000000ab"},
-    {{al, r3, 0x00ab00ab}, false, al, "al r3 0x00ab00ab", "al_r3_0x00ab00ab"},
-    {{al, r3, 0xab00ab00}, false, al, "al r3 0xab00ab00", "al_r3_0xab00ab00"},
-    {{al, r3, 0xabababab}, false, al, "al r3 0xabababab", "al_r3_0xabababab"},
-    {{al, r4, 0x000001fe}, false, al, "al r4 0x000001fe", "al_r4_0x000001fe"},
-    {{al, r4, 0x000003fc}, false, al, "al r4 0x000003fc", "al_r4_0x000003fc"},
-    {{al, r4, 0x000007f8}, false, al, "al r4 0x000007f8", "al_r4_0x000007f8"},
-    {{al, r4, 0x00000ff0}, false, al, "al r4 0x00000ff0", "al_r4_0x00000ff0"},
-    {{al, r4, 0x00001fe0}, false, al, "al r4 0x00001fe0", "al_r4_0x00001fe0"},
-    {{al, r4, 0x00003fc0}, false, al, "al r4 0x00003fc0", "al_r4_0x00003fc0"},
-    {{al, r4, 0x00007f80}, false, al, "al r4 0x00007f80", "al_r4_0x00007f80"},
-    {{al, r4, 0x0000ff00}, false, al, "al r4 0x0000ff00", "al_r4_0x0000ff00"},
-    {{al, r4, 0x0001fe00}, false, al, "al r4 0x0001fe00", "al_r4_0x0001fe00"},
-    {{al, r4, 0x0003fc00}, false, al, "al r4 0x0003fc00", "al_r4_0x0003fc00"},
-    {{al, r4, 0x0007f800}, false, al, "al r4 0x0007f800", "al_r4_0x0007f800"},
-    {{al, r4, 0x000ff000}, false, al, "al r4 0x000ff000", "al_r4_0x000ff000"},
-    {{al, r4, 0x001fe000}, false, al, "al r4 0x001fe000", "al_r4_0x001fe000"},
-    {{al, r4, 0x003fc000}, false, al, "al r4 0x003fc000", "al_r4_0x003fc000"},
-    {{al, r4, 0x007f8000}, false, al, "al r4 0x007f8000", "al_r4_0x007f8000"},
-    {{al, r4, 0x00ff0000}, false, al, "al r4 0x00ff0000", "al_r4_0x00ff0000"},
-    {{al, r4, 0x01fe0000}, false, al, "al r4 0x01fe0000", "al_r4_0x01fe0000"},
-    {{al, r4, 0x03fc0000}, false, al, "al r4 0x03fc0000", "al_r4_0x03fc0000"},
-    {{al, r4, 0x07f80000}, false, al, "al r4 0x07f80000", "al_r4_0x07f80000"},
-    {{al, r4, 0x0ff00000}, false, al, "al r4 0x0ff00000", "al_r4_0x0ff00000"},
-    {{al, r4, 0x1fe00000}, false, al, "al r4 0x1fe00000", "al_r4_0x1fe00000"},
-    {{al, r4, 0x3fc00000}, false, al, "al r4 0x3fc00000", "al_r4_0x3fc00000"},
-    {{al, r4, 0x7f800000}, false, al, "al r4 0x7f800000", "al_r4_0x7f800000"},
-    {{al, r4, 0xff000000}, false, al, "al r4 0xff000000", "al_r4_0xff000000"},
-    {{al, r4, 0x000000ff}, false, al, "al r4 0x000000ff", "al_r4_0x000000ff"},
-    {{al, r4, 0x00ff00ff}, false, al, "al r4 0x00ff00ff", "al_r4_0x00ff00ff"},
-    {{al, r4, 0xff00ff00}, false, al, "al r4 0xff00ff00", "al_r4_0xff00ff00"},
-    {{al, r4, 0xffffffff}, false, al, "al r4 0xffffffff", "al_r4_0xffffffff"},
-    {{al, r4, 0x00000156}, false, al, "al r4 0x00000156", "al_r4_0x00000156"},
-    {{al, r4, 0x000002ac}, false, al, "al r4 0x000002ac", "al_r4_0x000002ac"},
-    {{al, r4, 0x00000558}, false, al, "al r4 0x00000558", "al_r4_0x00000558"},
-    {{al, r4, 0x00000ab0}, false, al, "al r4 0x00000ab0", "al_r4_0x00000ab0"},
-    {{al, r4, 0x00001560}, false, al, "al r4 0x00001560", "al_r4_0x00001560"},
-    {{al, r4, 0x00002ac0}, false, al, "al r4 0x00002ac0", "al_r4_0x00002ac0"},
-    {{al, r4, 0x00005580}, false, al, "al r4 0x00005580", "al_r4_0x00005580"},
-    {{al, r4, 0x0000ab00}, false, al, "al r4 0x0000ab00", "al_r4_0x0000ab00"},
-    {{al, r4, 0x00015600}, false, al, "al r4 0x00015600", "al_r4_0x00015600"},
-    {{al, r4, 0x0002ac00}, false, al, "al r4 0x0002ac00", "al_r4_0x0002ac00"},
-    {{al, r4, 0x00055800}, false, al, "al r4 0x00055800", "al_r4_0x00055800"},
-    {{al, r4, 0x000ab000}, false, al, "al r4 0x000ab000", "al_r4_0x000ab000"},
-    {{al, r4, 0x00156000}, false, al, "al r4 0x00156000", "al_r4_0x00156000"},
-    {{al, r4, 0x002ac000}, false, al, "al r4 0x002ac000", "al_r4_0x002ac000"},
-    {{al, r4, 0x00558000}, false, al, "al r4 0x00558000", "al_r4_0x00558000"},
-    {{al, r4, 0x00ab0000}, false, al, "al r4 0x00ab0000", "al_r4_0x00ab0000"},
-    {{al, r4, 0x01560000}, false, al, "al r4 0x01560000", "al_r4_0x01560000"},
-    {{al, r4, 0x02ac0000}, false, al, "al r4 0x02ac0000", "al_r4_0x02ac0000"},
-    {{al, r4, 0x05580000}, false, al, "al r4 0x05580000", "al_r4_0x05580000"},
-    {{al, r4, 0x0ab00000}, false, al, "al r4 0x0ab00000", "al_r4_0x0ab00000"},
-    {{al, r4, 0x15600000}, false, al, "al r4 0x15600000", "al_r4_0x15600000"},
-    {{al, r4, 0x2ac00000}, false, al, "al r4 0x2ac00000", "al_r4_0x2ac00000"},
-    {{al, r4, 0x55800000}, false, al, "al r4 0x55800000", "al_r4_0x55800000"},
-    {{al, r4, 0xab000000}, false, al, "al r4 0xab000000", "al_r4_0xab000000"},
-    {{al, r4, 0x000000ab}, false, al, "al r4 0x000000ab", "al_r4_0x000000ab"},
-    {{al, r4, 0x00ab00ab}, false, al, "al r4 0x00ab00ab", "al_r4_0x00ab00ab"},
-    {{al, r4, 0xab00ab00}, false, al, "al r4 0xab00ab00", "al_r4_0xab00ab00"},
-    {{al, r4, 0xabababab}, false, al, "al r4 0xabababab", "al_r4_0xabababab"},
-    {{al, r5, 0x000001fe}, false, al, "al r5 0x000001fe", "al_r5_0x000001fe"},
-    {{al, r5, 0x000003fc}, false, al, "al r5 0x000003fc", "al_r5_0x000003fc"},
-    {{al, r5, 0x000007f8}, false, al, "al r5 0x000007f8", "al_r5_0x000007f8"},
-    {{al, r5, 0x00000ff0}, false, al, "al r5 0x00000ff0", "al_r5_0x00000ff0"},
-    {{al, r5, 0x00001fe0}, false, al, "al r5 0x00001fe0", "al_r5_0x00001fe0"},
-    {{al, r5, 0x00003fc0}, false, al, "al r5 0x00003fc0", "al_r5_0x00003fc0"},
-    {{al, r5, 0x00007f80}, false, al, "al r5 0x00007f80", "al_r5_0x00007f80"},
-    {{al, r5, 0x0000ff00}, false, al, "al r5 0x0000ff00", "al_r5_0x0000ff00"},
-    {{al, r5, 0x0001fe00}, false, al, "al r5 0x0001fe00", "al_r5_0x0001fe00"},
-    {{al, r5, 0x0003fc00}, false, al, "al r5 0x0003fc00", "al_r5_0x0003fc00"},
-    {{al, r5, 0x0007f800}, false, al, "al r5 0x0007f800", "al_r5_0x0007f800"},
-    {{al, r5, 0x000ff000}, false, al, "al r5 0x000ff000", "al_r5_0x000ff000"},
-    {{al, r5, 0x001fe000}, false, al, "al r5 0x001fe000", "al_r5_0x001fe000"},
-    {{al, r5, 0x003fc000}, false, al, "al r5 0x003fc000", "al_r5_0x003fc000"},
-    {{al, r5, 0x007f8000}, false, al, "al r5 0x007f8000", "al_r5_0x007f8000"},
-    {{al, r5, 0x00ff0000}, false, al, "al r5 0x00ff0000", "al_r5_0x00ff0000"},
-    {{al, r5, 0x01fe0000}, false, al, "al r5 0x01fe0000", "al_r5_0x01fe0000"},
-    {{al, r5, 0x03fc0000}, false, al, "al r5 0x03fc0000", "al_r5_0x03fc0000"},
-    {{al, r5, 0x07f80000}, false, al, "al r5 0x07f80000", "al_r5_0x07f80000"},
-    {{al, r5, 0x0ff00000}, false, al, "al r5 0x0ff00000", "al_r5_0x0ff00000"},
-    {{al, r5, 0x1fe00000}, false, al, "al r5 0x1fe00000", "al_r5_0x1fe00000"},
-    {{al, r5, 0x3fc00000}, false, al, "al r5 0x3fc00000", "al_r5_0x3fc00000"},
-    {{al, r5, 0x7f800000}, false, al, "al r5 0x7f800000", "al_r5_0x7f800000"},
-    {{al, r5, 0xff000000}, false, al, "al r5 0xff000000", "al_r5_0xff000000"},
-    {{al, r5, 0x000000ff}, false, al, "al r5 0x000000ff", "al_r5_0x000000ff"},
-    {{al, r5, 0x00ff00ff}, false, al, "al r5 0x00ff00ff", "al_r5_0x00ff00ff"},
-    {{al, r5, 0xff00ff00}, false, al, "al r5 0xff00ff00", "al_r5_0xff00ff00"},
-    {{al, r5, 0xffffffff}, false, al, "al r5 0xffffffff", "al_r5_0xffffffff"},
-    {{al, r5, 0x00000156}, false, al, "al r5 0x00000156", "al_r5_0x00000156"},
-    {{al, r5, 0x000002ac}, false, al, "al r5 0x000002ac", "al_r5_0x000002ac"},
-    {{al, r5, 0x00000558}, false, al, "al r5 0x00000558", "al_r5_0x00000558"},
-    {{al, r5, 0x00000ab0}, false, al, "al r5 0x00000ab0", "al_r5_0x00000ab0"},
-    {{al, r5, 0x00001560}, false, al, "al r5 0x00001560", "al_r5_0x00001560"},
-    {{al, r5, 0x00002ac0}, false, al, "al r5 0x00002ac0", "al_r5_0x00002ac0"},
-    {{al, r5, 0x00005580}, false, al, "al r5 0x00005580", "al_r5_0x00005580"},
-    {{al, r5, 0x0000ab00}, false, al, "al r5 0x0000ab00", "al_r5_0x0000ab00"},
-    {{al, r5, 0x00015600}, false, al, "al r5 0x00015600", "al_r5_0x00015600"},
-    {{al, r5, 0x0002ac00}, false, al, "al r5 0x0002ac00", "al_r5_0x0002ac00"},
-    {{al, r5, 0x00055800}, false, al, "al r5 0x00055800", "al_r5_0x00055800"},
-    {{al, r5, 0x000ab000}, false, al, "al r5 0x000ab000", "al_r5_0x000ab000"},
-    {{al, r5, 0x00156000}, false, al, "al r5 0x00156000", "al_r5_0x00156000"},
-    {{al, r5, 0x002ac000}, false, al, "al r5 0x002ac000", "al_r5_0x002ac000"},
-    {{al, r5, 0x00558000}, false, al, "al r5 0x00558000", "al_r5_0x00558000"},
-    {{al, r5, 0x00ab0000}, false, al, "al r5 0x00ab0000", "al_r5_0x00ab0000"},
-    {{al, r5, 0x01560000}, false, al, "al r5 0x01560000", "al_r5_0x01560000"},
-    {{al, r5, 0x02ac0000}, false, al, "al r5 0x02ac0000", "al_r5_0x02ac0000"},
-    {{al, r5, 0x05580000}, false, al, "al r5 0x05580000", "al_r5_0x05580000"},
-    {{al, r5, 0x0ab00000}, false, al, "al r5 0x0ab00000", "al_r5_0x0ab00000"},
-    {{al, r5, 0x15600000}, false, al, "al r5 0x15600000", "al_r5_0x15600000"},
-    {{al, r5, 0x2ac00000}, false, al, "al r5 0x2ac00000", "al_r5_0x2ac00000"},
-    {{al, r5, 0x55800000}, false, al, "al r5 0x55800000", "al_r5_0x55800000"},
-    {{al, r5, 0xab000000}, false, al, "al r5 0xab000000", "al_r5_0xab000000"},
-    {{al, r5, 0x000000ab}, false, al, "al r5 0x000000ab", "al_r5_0x000000ab"},
-    {{al, r5, 0x00ab00ab}, false, al, "al r5 0x00ab00ab", "al_r5_0x00ab00ab"},
-    {{al, r5, 0xab00ab00}, false, al, "al r5 0xab00ab00", "al_r5_0xab00ab00"},
-    {{al, r5, 0xabababab}, false, al, "al r5 0xabababab", "al_r5_0xabababab"},
-    {{al, r6, 0x000001fe}, false, al, "al r6 0x000001fe", "al_r6_0x000001fe"},
-    {{al, r6, 0x000003fc}, false, al, "al r6 0x000003fc", "al_r6_0x000003fc"},
-    {{al, r6, 0x000007f8}, false, al, "al r6 0x000007f8", "al_r6_0x000007f8"},
-    {{al, r6, 0x00000ff0}, false, al, "al r6 0x00000ff0", "al_r6_0x00000ff0"},
-    {{al, r6, 0x00001fe0}, false, al, "al r6 0x00001fe0", "al_r6_0x00001fe0"},
-    {{al, r6, 0x00003fc0}, false, al, "al r6 0x00003fc0", "al_r6_0x00003fc0"},
-    {{al, r6, 0x00007f80}, false, al, "al r6 0x00007f80", "al_r6_0x00007f80"},
-    {{al, r6, 0x0000ff00}, false, al, "al r6 0x0000ff00", "al_r6_0x0000ff00"},
-    {{al, r6, 0x0001fe00}, false, al, "al r6 0x0001fe00", "al_r6_0x0001fe00"},
-    {{al, r6, 0x0003fc00}, false, al, "al r6 0x0003fc00", "al_r6_0x0003fc00"},
-    {{al, r6, 0x0007f800}, false, al, "al r6 0x0007f800", "al_r6_0x0007f800"},
-    {{al, r6, 0x000ff000}, false, al, "al r6 0x000ff000", "al_r6_0x000ff000"},
-    {{al, r6, 0x001fe000}, false, al, "al r6 0x001fe000", "al_r6_0x001fe000"},
-    {{al, r6, 0x003fc000}, false, al, "al r6 0x003fc000", "al_r6_0x003fc000"},
-    {{al, r6, 0x007f8000}, false, al, "al r6 0x007f8000", "al_r6_0x007f8000"},
-    {{al, r6, 0x00ff0000}, false, al, "al r6 0x00ff0000", "al_r6_0x00ff0000"},
-    {{al, r6, 0x01fe0000}, false, al, "al r6 0x01fe0000", "al_r6_0x01fe0000"},
-    {{al, r6, 0x03fc0000}, false, al, "al r6 0x03fc0000", "al_r6_0x03fc0000"},
-    {{al, r6, 0x07f80000}, false, al, "al r6 0x07f80000", "al_r6_0x07f80000"},
-    {{al, r6, 0x0ff00000}, false, al, "al r6 0x0ff00000", "al_r6_0x0ff00000"},
-    {{al, r6, 0x1fe00000}, false, al, "al r6 0x1fe00000", "al_r6_0x1fe00000"},
-    {{al, r6, 0x3fc00000}, false, al, "al r6 0x3fc00000", "al_r6_0x3fc00000"},
-    {{al, r6, 0x7f800000}, false, al, "al r6 0x7f800000", "al_r6_0x7f800000"},
-    {{al, r6, 0xff000000}, false, al, "al r6 0xff000000", "al_r6_0xff000000"},
-    {{al, r6, 0x000000ff}, false, al, "al r6 0x000000ff", "al_r6_0x000000ff"},
-    {{al, r6, 0x00ff00ff}, false, al, "al r6 0x00ff00ff", "al_r6_0x00ff00ff"},
-    {{al, r6, 0xff00ff00}, false, al, "al r6 0xff00ff00", "al_r6_0xff00ff00"},
-    {{al, r6, 0xffffffff}, false, al, "al r6 0xffffffff", "al_r6_0xffffffff"},
-    {{al, r6, 0x00000156}, false, al, "al r6 0x00000156", "al_r6_0x00000156"},
-    {{al, r6, 0x000002ac}, false, al, "al r6 0x000002ac", "al_r6_0x000002ac"},
-    {{al, r6, 0x00000558}, false, al, "al r6 0x00000558", "al_r6_0x00000558"},
-    {{al, r6, 0x00000ab0}, false, al, "al r6 0x00000ab0", "al_r6_0x00000ab0"},
-    {{al, r6, 0x00001560}, false, al, "al r6 0x00001560", "al_r6_0x00001560"},
-    {{al, r6, 0x00002ac0}, false, al, "al r6 0x00002ac0", "al_r6_0x00002ac0"},
-    {{al, r6, 0x00005580}, false, al, "al r6 0x00005580", "al_r6_0x00005580"},
-    {{al, r6, 0x0000ab00}, false, al, "al r6 0x0000ab00", "al_r6_0x0000ab00"},
-    {{al, r6, 0x00015600}, false, al, "al r6 0x00015600", "al_r6_0x00015600"},
-    {{al, r6, 0x0002ac00}, false, al, "al r6 0x0002ac00", "al_r6_0x0002ac00"},
-    {{al, r6, 0x00055800}, false, al, "al r6 0x00055800", "al_r6_0x00055800"},
-    {{al, r6, 0x000ab000}, false, al, "al r6 0x000ab000", "al_r6_0x000ab000"},
-    {{al, r6, 0x00156000}, false, al, "al r6 0x00156000", "al_r6_0x00156000"},
-    {{al, r6, 0x002ac000}, false, al, "al r6 0x002ac000", "al_r6_0x002ac000"},
-    {{al, r6, 0x00558000}, false, al, "al r6 0x00558000", "al_r6_0x00558000"},
-    {{al, r6, 0x00ab0000}, false, al, "al r6 0x00ab0000", "al_r6_0x00ab0000"},
-    {{al, r6, 0x01560000}, false, al, "al r6 0x01560000", "al_r6_0x01560000"},
-    {{al, r6, 0x02ac0000}, false, al, "al r6 0x02ac0000", "al_r6_0x02ac0000"},
-    {{al, r6, 0x05580000}, false, al, "al r6 0x05580000", "al_r6_0x05580000"},
-    {{al, r6, 0x0ab00000}, false, al, "al r6 0x0ab00000", "al_r6_0x0ab00000"},
-    {{al, r6, 0x15600000}, false, al, "al r6 0x15600000", "al_r6_0x15600000"},
-    {{al, r6, 0x2ac00000}, false, al, "al r6 0x2ac00000", "al_r6_0x2ac00000"},
-    {{al, r6, 0x55800000}, false, al, "al r6 0x55800000", "al_r6_0x55800000"},
-    {{al, r6, 0xab000000}, false, al, "al r6 0xab000000", "al_r6_0xab000000"},
-    {{al, r6, 0x000000ab}, false, al, "al r6 0x000000ab", "al_r6_0x000000ab"},
-    {{al, r6, 0x00ab00ab}, false, al, "al r6 0x00ab00ab", "al_r6_0x00ab00ab"},
-    {{al, r6, 0xab00ab00}, false, al, "al r6 0xab00ab00", "al_r6_0xab00ab00"},
-    {{al, r6, 0xabababab}, false, al, "al r6 0xabababab", "al_r6_0xabababab"},
-    {{al, r7, 0x000001fe}, false, al, "al r7 0x000001fe", "al_r7_0x000001fe"},
-    {{al, r7, 0x000003fc}, false, al, "al r7 0x000003fc", "al_r7_0x000003fc"},
-    {{al, r7, 0x000007f8}, false, al, "al r7 0x000007f8", "al_r7_0x000007f8"},
-    {{al, r7, 0x00000ff0}, false, al, "al r7 0x00000ff0", "al_r7_0x00000ff0"},
-    {{al, r7, 0x00001fe0}, false, al, "al r7 0x00001fe0", "al_r7_0x00001fe0"},
-    {{al, r7, 0x00003fc0}, false, al, "al r7 0x00003fc0", "al_r7_0x00003fc0"},
-    {{al, r7, 0x00007f80}, false, al, "al r7 0x00007f80", "al_r7_0x00007f80"},
-    {{al, r7, 0x0000ff00}, false, al, "al r7 0x0000ff00", "al_r7_0x0000ff00"},
-    {{al, r7, 0x0001fe00}, false, al, "al r7 0x0001fe00", "al_r7_0x0001fe00"},
-    {{al, r7, 0x0003fc00}, false, al, "al r7 0x0003fc00", "al_r7_0x0003fc00"},
-    {{al, r7, 0x0007f800}, false, al, "al r7 0x0007f800", "al_r7_0x0007f800"},
-    {{al, r7, 0x000ff000}, false, al, "al r7 0x000ff000", "al_r7_0x000ff000"},
-    {{al, r7, 0x001fe000}, false, al, "al r7 0x001fe000", "al_r7_0x001fe000"},
-    {{al, r7, 0x003fc000}, false, al, "al r7 0x003fc000", "al_r7_0x003fc000"},
-    {{al, r7, 0x007f8000}, false, al, "al r7 0x007f8000", "al_r7_0x007f8000"},
-    {{al, r7, 0x00ff0000}, false, al, "al r7 0x00ff0000", "al_r7_0x00ff0000"},
-    {{al, r7, 0x01fe0000}, false, al, "al r7 0x01fe0000", "al_r7_0x01fe0000"},
-    {{al, r7, 0x03fc0000}, false, al, "al r7 0x03fc0000", "al_r7_0x03fc0000"},
-    {{al, r7, 0x07f80000}, false, al, "al r7 0x07f80000", "al_r7_0x07f80000"},
-    {{al, r7, 0x0ff00000}, false, al, "al r7 0x0ff00000", "al_r7_0x0ff00000"},
-    {{al, r7, 0x1fe00000}, false, al, "al r7 0x1fe00000", "al_r7_0x1fe00000"},
-    {{al, r7, 0x3fc00000}, false, al, "al r7 0x3fc00000", "al_r7_0x3fc00000"},
-    {{al, r7, 0x7f800000}, false, al, "al r7 0x7f800000", "al_r7_0x7f800000"},
-    {{al, r7, 0xff000000}, false, al, "al r7 0xff000000", "al_r7_0xff000000"},
-    {{al, r7, 0x000000ff}, false, al, "al r7 0x000000ff", "al_r7_0x000000ff"},
-    {{al, r7, 0x00ff00ff}, false, al, "al r7 0x00ff00ff", "al_r7_0x00ff00ff"},
-    {{al, r7, 0xff00ff00}, false, al, "al r7 0xff00ff00", "al_r7_0xff00ff00"},
-    {{al, r7, 0xffffffff}, false, al, "al r7 0xffffffff", "al_r7_0xffffffff"},
-    {{al, r7, 0x00000156}, false, al, "al r7 0x00000156", "al_r7_0x00000156"},
-    {{al, r7, 0x000002ac}, false, al, "al r7 0x000002ac", "al_r7_0x000002ac"},
-    {{al, r7, 0x00000558}, false, al, "al r7 0x00000558", "al_r7_0x00000558"},
-    {{al, r7, 0x00000ab0}, false, al, "al r7 0x00000ab0", "al_r7_0x00000ab0"},
-    {{al, r7, 0x00001560}, false, al, "al r7 0x00001560", "al_r7_0x00001560"},
-    {{al, r7, 0x00002ac0}, false, al, "al r7 0x00002ac0", "al_r7_0x00002ac0"},
-    {{al, r7, 0x00005580}, false, al, "al r7 0x00005580", "al_r7_0x00005580"},
-    {{al, r7, 0x0000ab00}, false, al, "al r7 0x0000ab00", "al_r7_0x0000ab00"},
-    {{al, r7, 0x00015600}, false, al, "al r7 0x00015600", "al_r7_0x00015600"},
-    {{al, r7, 0x0002ac00}, false, al, "al r7 0x0002ac00", "al_r7_0x0002ac00"},
-    {{al, r7, 0x00055800}, false, al, "al r7 0x00055800", "al_r7_0x00055800"},
-    {{al, r7, 0x000ab000}, false, al, "al r7 0x000ab000", "al_r7_0x000ab000"},
-    {{al, r7, 0x00156000}, false, al, "al r7 0x00156000", "al_r7_0x00156000"},
-    {{al, r7, 0x002ac000}, false, al, "al r7 0x002ac000", "al_r7_0x002ac000"},
-    {{al, r7, 0x00558000}, false, al, "al r7 0x00558000", "al_r7_0x00558000"},
-    {{al, r7, 0x00ab0000}, false, al, "al r7 0x00ab0000", "al_r7_0x00ab0000"},
-    {{al, r7, 0x01560000}, false, al, "al r7 0x01560000", "al_r7_0x01560000"},
-    {{al, r7, 0x02ac0000}, false, al, "al r7 0x02ac0000", "al_r7_0x02ac0000"},
-    {{al, r7, 0x05580000}, false, al, "al r7 0x05580000", "al_r7_0x05580000"},
-    {{al, r7, 0x0ab00000}, false, al, "al r7 0x0ab00000", "al_r7_0x0ab00000"},
-    {{al, r7, 0x15600000}, false, al, "al r7 0x15600000", "al_r7_0x15600000"},
-    {{al, r7, 0x2ac00000}, false, al, "al r7 0x2ac00000", "al_r7_0x2ac00000"},
-    {{al, r7, 0x55800000}, false, al, "al r7 0x55800000", "al_r7_0x55800000"},
-    {{al, r7, 0xab000000}, false, al, "al r7 0xab000000", "al_r7_0xab000000"},
-    {{al, r7, 0x000000ab}, false, al, "al r7 0x000000ab", "al_r7_0x000000ab"},
-    {{al, r7, 0x00ab00ab}, false, al, "al r7 0x00ab00ab", "al_r7_0x00ab00ab"},
-    {{al, r7, 0xab00ab00}, false, al, "al r7 0xab00ab00", "al_r7_0xab00ab00"},
-    {{al, r7, 0xabababab}, false, al, "al r7 0xabababab", "al_r7_0xabababab"},
-    {{al, r8, 0x000001fe}, false, al, "al r8 0x000001fe", "al_r8_0x000001fe"},
-    {{al, r8, 0x000003fc}, false, al, "al r8 0x000003fc", "al_r8_0x000003fc"},
-    {{al, r8, 0x000007f8}, false, al, "al r8 0x000007f8", "al_r8_0x000007f8"},
-    {{al, r8, 0x00000ff0}, false, al, "al r8 0x00000ff0", "al_r8_0x00000ff0"},
-    {{al, r8, 0x00001fe0}, false, al, "al r8 0x00001fe0", "al_r8_0x00001fe0"},
-    {{al, r8, 0x00003fc0}, false, al, "al r8 0x00003fc0", "al_r8_0x00003fc0"},
-    {{al, r8, 0x00007f80}, false, al, "al r8 0x00007f80", "al_r8_0x00007f80"},
-    {{al, r8, 0x0000ff00}, false, al, "al r8 0x0000ff00", "al_r8_0x0000ff00"},
-    {{al, r8, 0x0001fe00}, false, al, "al r8 0x0001fe00", "al_r8_0x0001fe00"},
-    {{al, r8, 0x0003fc00}, false, al, "al r8 0x0003fc00", "al_r8_0x0003fc00"},
-    {{al, r8, 0x0007f800}, false, al, "al r8 0x0007f800", "al_r8_0x0007f800"},
-    {{al, r8, 0x000ff000}, false, al, "al r8 0x000ff000", "al_r8_0x000ff000"},
-    {{al, r8, 0x001fe000}, false, al, "al r8 0x001fe000", "al_r8_0x001fe000"},
-    {{al, r8, 0x003fc000}, false, al, "al r8 0x003fc000", "al_r8_0x003fc000"},
-    {{al, r8, 0x007f8000}, false, al, "al r8 0x007f8000", "al_r8_0x007f8000"},
-    {{al, r8, 0x00ff0000}, false, al, "al r8 0x00ff0000", "al_r8_0x00ff0000"},
-    {{al, r8, 0x01fe0000}, false, al, "al r8 0x01fe0000", "al_r8_0x01fe0000"},
-    {{al, r8, 0x03fc0000}, false, al, "al r8 0x03fc0000", "al_r8_0x03fc0000"},
-    {{al, r8, 0x07f80000}, false, al, "al r8 0x07f80000", "al_r8_0x07f80000"},
-    {{al, r8, 0x0ff00000}, false, al, "al r8 0x0ff00000", "al_r8_0x0ff00000"},
-    {{al, r8, 0x1fe00000}, false, al, "al r8 0x1fe00000", "al_r8_0x1fe00000"},
-    {{al, r8, 0x3fc00000}, false, al, "al r8 0x3fc00000", "al_r8_0x3fc00000"},
-    {{al, r8, 0x7f800000}, false, al, "al r8 0x7f800000", "al_r8_0x7f800000"},
-    {{al, r8, 0xff000000}, false, al, "al r8 0xff000000", "al_r8_0xff000000"},
-    {{al, r8, 0x000000ff}, false, al, "al r8 0x000000ff", "al_r8_0x000000ff"},
-    {{al, r8, 0x00ff00ff}, false, al, "al r8 0x00ff00ff", "al_r8_0x00ff00ff"},
-    {{al, r8, 0xff00ff00}, false, al, "al r8 0xff00ff00", "al_r8_0xff00ff00"},
-    {{al, r8, 0xffffffff}, false, al, "al r8 0xffffffff", "al_r8_0xffffffff"},
-    {{al, r8, 0x00000156}, false, al, "al r8 0x00000156", "al_r8_0x00000156"},
-    {{al, r8, 0x000002ac}, false, al, "al r8 0x000002ac", "al_r8_0x000002ac"},
-    {{al, r8, 0x00000558}, false, al, "al r8 0x00000558", "al_r8_0x00000558"},
-    {{al, r8, 0x00000ab0}, false, al, "al r8 0x00000ab0", "al_r8_0x00000ab0"},
-    {{al, r8, 0x00001560}, false, al, "al r8 0x00001560", "al_r8_0x00001560"},
-    {{al, r8, 0x00002ac0}, false, al, "al r8 0x00002ac0", "al_r8_0x00002ac0"},
-    {{al, r8, 0x00005580}, false, al, "al r8 0x00005580", "al_r8_0x00005580"},
-    {{al, r8, 0x0000ab00}, false, al, "al r8 0x0000ab00", "al_r8_0x0000ab00"},
-    {{al, r8, 0x00015600}, false, al, "al r8 0x00015600", "al_r8_0x00015600"},
-    {{al, r8, 0x0002ac00}, false, al, "al r8 0x0002ac00", "al_r8_0x0002ac00"},
-    {{al, r8, 0x00055800}, false, al, "al r8 0x00055800", "al_r8_0x00055800"},
-    {{al, r8, 0x000ab000}, false, al, "al r8 0x000ab000", "al_r8_0x000ab000"},
-    {{al, r8, 0x00156000}, false, al, "al r8 0x00156000", "al_r8_0x00156000"},
-    {{al, r8, 0x002ac000}, false, al, "al r8 0x002ac000", "al_r8_0x002ac000"},
-    {{al, r8, 0x00558000}, false, al, "al r8 0x00558000", "al_r8_0x00558000"},
-    {{al, r8, 0x00ab0000}, false, al, "al r8 0x00ab0000", "al_r8_0x00ab0000"},
-    {{al, r8, 0x01560000}, false, al, "al r8 0x01560000", "al_r8_0x01560000"},
-    {{al, r8, 0x02ac0000}, false, al, "al r8 0x02ac0000", "al_r8_0x02ac0000"},
-    {{al, r8, 0x05580000}, false, al, "al r8 0x05580000", "al_r8_0x05580000"},
-    {{al, r8, 0x0ab00000}, false, al, "al r8 0x0ab00000", "al_r8_0x0ab00000"},
-    {{al, r8, 0x15600000}, false, al, "al r8 0x15600000", "al_r8_0x15600000"},
-    {{al, r8, 0x2ac00000}, false, al, "al r8 0x2ac00000", "al_r8_0x2ac00000"},
-    {{al, r8, 0x55800000}, false, al, "al r8 0x55800000", "al_r8_0x55800000"},
-    {{al, r8, 0xab000000}, false, al, "al r8 0xab000000", "al_r8_0xab000000"},
-    {{al, r8, 0x000000ab}, false, al, "al r8 0x000000ab", "al_r8_0x000000ab"},
-    {{al, r8, 0x00ab00ab}, false, al, "al r8 0x00ab00ab", "al_r8_0x00ab00ab"},
-    {{al, r8, 0xab00ab00}, false, al, "al r8 0xab00ab00", "al_r8_0xab00ab00"},
-    {{al, r8, 0xabababab}, false, al, "al r8 0xabababab", "al_r8_0xabababab"},
-    {{al, r9, 0x000001fe}, false, al, "al r9 0x000001fe", "al_r9_0x000001fe"},
-    {{al, r9, 0x000003fc}, false, al, "al r9 0x000003fc", "al_r9_0x000003fc"},
-    {{al, r9, 0x000007f8}, false, al, "al r9 0x000007f8", "al_r9_0x000007f8"},
-    {{al, r9, 0x00000ff0}, false, al, "al r9 0x00000ff0", "al_r9_0x00000ff0"},
-    {{al, r9, 0x00001fe0}, false, al, "al r9 0x00001fe0", "al_r9_0x00001fe0"},
-    {{al, r9, 0x00003fc0}, false, al, "al r9 0x00003fc0", "al_r9_0x00003fc0"},
-    {{al, r9, 0x00007f80}, false, al, "al r9 0x00007f80", "al_r9_0x00007f80"},
-    {{al, r9, 0x0000ff00}, false, al, "al r9 0x0000ff00", "al_r9_0x0000ff00"},
-    {{al, r9, 0x0001fe00}, false, al, "al r9 0x0001fe00", "al_r9_0x0001fe00"},
-    {{al, r9, 0x0003fc00}, false, al, "al r9 0x0003fc00", "al_r9_0x0003fc00"},
-    {{al, r9, 0x0007f800}, false, al, "al r9 0x0007f800", "al_r9_0x0007f800"},
-    {{al, r9, 0x000ff000}, false, al, "al r9 0x000ff000", "al_r9_0x000ff000"},
-    {{al, r9, 0x001fe000}, false, al, "al r9 0x001fe000", "al_r9_0x001fe000"},
-    {{al, r9, 0x003fc000}, false, al, "al r9 0x003fc000", "al_r9_0x003fc000"},
-    {{al, r9, 0x007f8000}, false, al, "al r9 0x007f8000", "al_r9_0x007f8000"},
-    {{al, r9, 0x00ff0000}, false, al, "al r9 0x00ff0000", "al_r9_0x00ff0000"},
-    {{al, r9, 0x01fe0000}, false, al, "al r9 0x01fe0000", "al_r9_0x01fe0000"},
-    {{al, r9, 0x03fc0000}, false, al, "al r9 0x03fc0000", "al_r9_0x03fc0000"},
-    {{al, r9, 0x07f80000}, false, al, "al r9 0x07f80000", "al_r9_0x07f80000"},
-    {{al, r9, 0x0ff00000}, false, al, "al r9 0x0ff00000", "al_r9_0x0ff00000"},
-    {{al, r9, 0x1fe00000}, false, al, "al r9 0x1fe00000", "al_r9_0x1fe00000"},
-    {{al, r9, 0x3fc00000}, false, al, "al r9 0x3fc00000", "al_r9_0x3fc00000"},
-    {{al, r9, 0x7f800000}, false, al, "al r9 0x7f800000", "al_r9_0x7f800000"},
-    {{al, r9, 0xff000000}, false, al, "al r9 0xff000000", "al_r9_0xff000000"},
-    {{al, r9, 0x000000ff}, false, al, "al r9 0x000000ff", "al_r9_0x000000ff"},
-    {{al, r9, 0x00ff00ff}, false, al, "al r9 0x00ff00ff", "al_r9_0x00ff00ff"},
-    {{al, r9, 0xff00ff00}, false, al, "al r9 0xff00ff00", "al_r9_0xff00ff00"},
-    {{al, r9, 0xffffffff}, false, al, "al r9 0xffffffff", "al_r9_0xffffffff"},
-    {{al, r9, 0x00000156}, false, al, "al r9 0x00000156", "al_r9_0x00000156"},
-    {{al, r9, 0x000002ac}, false, al, "al r9 0x000002ac", "al_r9_0x000002ac"},
-    {{al, r9, 0x00000558}, false, al, "al r9 0x00000558", "al_r9_0x00000558"},
-    {{al, r9, 0x00000ab0}, false, al, "al r9 0x00000ab0", "al_r9_0x00000ab0"},
-    {{al, r9, 0x00001560}, false, al, "al r9 0x00001560", "al_r9_0x00001560"},
-    {{al, r9, 0x00002ac0}, false, al, "al r9 0x00002ac0", "al_r9_0x00002ac0"},
-    {{al, r9, 0x00005580}, false, al, "al r9 0x00005580", "al_r9_0x00005580"},
-    {{al, r9, 0x0000ab00}, false, al, "al r9 0x0000ab00", "al_r9_0x0000ab00"},
-    {{al, r9, 0x00015600}, false, al, "al r9 0x00015600", "al_r9_0x00015600"},
-    {{al, r9, 0x0002ac00}, false, al, "al r9 0x0002ac00", "al_r9_0x0002ac00"},
-    {{al, r9, 0x00055800}, false, al, "al r9 0x00055800", "al_r9_0x00055800"},
-    {{al, r9, 0x000ab000}, false, al, "al r9 0x000ab000", "al_r9_0x000ab000"},
-    {{al, r9, 0x00156000}, false, al, "al r9 0x00156000", "al_r9_0x00156000"},
-    {{al, r9, 0x002ac000}, false, al, "al r9 0x002ac000", "al_r9_0x002ac000"},
-    {{al, r9, 0x00558000}, false, al, "al r9 0x00558000", "al_r9_0x00558000"},
-    {{al, r9, 0x00ab0000}, false, al, "al r9 0x00ab0000", "al_r9_0x00ab0000"},
-    {{al, r9, 0x01560000}, false, al, "al r9 0x01560000", "al_r9_0x01560000"},
-    {{al, r9, 0x02ac0000}, false, al, "al r9 0x02ac0000", "al_r9_0x02ac0000"},
-    {{al, r9, 0x05580000}, false, al, "al r9 0x05580000", "al_r9_0x05580000"},
-    {{al, r9, 0x0ab00000}, false, al, "al r9 0x0ab00000", "al_r9_0x0ab00000"},
-    {{al, r9, 0x15600000}, false, al, "al r9 0x15600000", "al_r9_0x15600000"},
-    {{al, r9, 0x2ac00000}, false, al, "al r9 0x2ac00000", "al_r9_0x2ac00000"},
-    {{al, r9, 0x55800000}, false, al, "al r9 0x55800000", "al_r9_0x55800000"},
-    {{al, r9, 0xab000000}, false, al, "al r9 0xab000000", "al_r9_0xab000000"},
-    {{al, r9, 0x000000ab}, false, al, "al r9 0x000000ab", "al_r9_0x000000ab"},
-    {{al, r9, 0x00ab00ab}, false, al, "al r9 0x00ab00ab", "al_r9_0x00ab00ab"},
-    {{al, r9, 0xab00ab00}, false, al, "al r9 0xab00ab00", "al_r9_0xab00ab00"},
-    {{al, r9, 0xabababab}, false, al, "al r9 0xabababab", "al_r9_0xabababab"},
-    {{al, r10, 0x000001fe}, false, al, "al r10 0x000001fe", "al_r10_"
-                                                            "0x000001fe"},
-    {{al, r10, 0x000003fc}, false, al, "al r10 0x000003fc", "al_r10_"
-                                                            "0x000003fc"},
-    {{al, r10, 0x000007f8}, false, al, "al r10 0x000007f8", "al_r10_"
-                                                            "0x000007f8"},
-    {{al, r10, 0x00000ff0}, false, al, "al r10 0x00000ff0", "al_r10_"
-                                                            "0x00000ff0"},
-    {{al, r10, 0x00001fe0}, false, al, "al r10 0x00001fe0", "al_r10_"
-                                                            "0x00001fe0"},
-    {{al, r10, 0x00003fc0}, false, al, "al r10 0x00003fc0", "al_r10_"
-                                                            "0x00003fc0"},
-    {{al, r10, 0x00007f80}, false, al, "al r10 0x00007f80", "al_r10_"
-                                                            "0x00007f80"},
-    {{al, r10, 0x0000ff00}, false, al, "al r10 0x0000ff00", "al_r10_"
-                                                            "0x0000ff00"},
-    {{al, r10, 0x0001fe00}, false, al, "al r10 0x0001fe00", "al_r10_"
-                                                            "0x0001fe00"},
-    {{al, r10, 0x0003fc00}, false, al, "al r10 0x0003fc00", "al_r10_"
-                                                            "0x0003fc00"},
-    {{al, r10, 0x0007f800}, false, al, "al r10 0x0007f800", "al_r10_"
-                                                            "0x0007f800"},
-    {{al, r10, 0x000ff000}, false, al, "al r10 0x000ff000", "al_r10_"
-                                                            "0x000ff000"},
-    {{al, r10, 0x001fe000}, false, al, "al r10 0x001fe000", "al_r10_"
-                                                            "0x001fe000"},
-    {{al, r10, 0x003fc000}, false, al, "al r10 0x003fc000", "al_r10_"
-                                                            "0x003fc000"},
-    {{al, r10, 0x007f8000}, false, al, "al r10 0x007f8000", "al_r10_"
-                                                            "0x007f8000"},
-    {{al, r10, 0x00ff0000}, false, al, "al r10 0x00ff0000", "al_r10_"
-                                                            "0x00ff0000"},
-    {{al, r10, 0x01fe0000}, false, al, "al r10 0x01fe0000", "al_r10_"
-                                                            "0x01fe0000"},
-    {{al, r10, 0x03fc0000}, false, al, "al r10 0x03fc0000", "al_r10_"
-                                                            "0x03fc0000"},
-    {{al, r10, 0x07f80000}, false, al, "al r10 0x07f80000", "al_r10_"
-                                                            "0x07f80000"},
-    {{al, r10, 0x0ff00000}, false, al, "al r10 0x0ff00000", "al_r10_"
-                                                            "0x0ff00000"},
-    {{al, r10, 0x1fe00000}, false, al, "al r10 0x1fe00000", "al_r10_"
-                                                            "0x1fe00000"},
-    {{al, r10, 0x3fc00000}, false, al, "al r10 0x3fc00000", "al_r10_"
-                                                            "0x3fc00000"},
-    {{al, r10, 0x7f800000}, false, al, "al r10 0x7f800000", "al_r10_"
-                                                            "0x7f800000"},
-    {{al, r10, 0xff000000}, false, al, "al r10 0xff000000", "al_r10_"
-                                                            "0xff000000"},
-    {{al, r10, 0x000000ff}, false, al, "al r10 0x000000ff", "al_r10_"
-                                                            "0x000000ff"},
-    {{al, r10, 0x00ff00ff}, false, al, "al r10 0x00ff00ff", "al_r10_"
-                                                            "0x00ff00ff"},
-    {{al, r10, 0xff00ff00}, false, al, "al r10 0xff00ff00", "al_r10_"
-                                                            "0xff00ff00"},
-    {{al, r10, 0xffffffff}, false, al, "al r10 0xffffffff", "al_r10_"
-                                                            "0xffffffff"},
-    {{al, r10, 0x00000156}, false, al, "al r10 0x00000156", "al_r10_"
-                                                            "0x00000156"},
-    {{al, r10, 0x000002ac}, false, al, "al r10 0x000002ac", "al_r10_"
-                                                            "0x000002ac"},
-    {{al, r10, 0x00000558}, false, al, "al r10 0x00000558", "al_r10_"
-                                                            "0x00000558"},
-    {{al, r10, 0x00000ab0}, false, al, "al r10 0x00000ab0", "al_r10_"
-                                                            "0x00000ab0"},
-    {{al, r10, 0x00001560}, false, al, "al r10 0x00001560", "al_r10_"
-                                                            "0x00001560"},
-    {{al, r10, 0x00002ac0}, false, al, "al r10 0x00002ac0", "al_r10_"
-                                                            "0x00002ac0"},
-    {{al, r10, 0x00005580}, false, al, "al r10 0x00005580", "al_r10_"
-                                                            "0x00005580"},
-    {{al, r10, 0x0000ab00}, false, al, "al r10 0x0000ab00", "al_r10_"
-                                                            "0x0000ab00"},
-    {{al, r10, 0x00015600}, false, al, "al r10 0x00015600", "al_r10_"
-                                                            "0x00015600"},
-    {{al, r10, 0x0002ac00}, false, al, "al r10 0x0002ac00", "al_r10_"
-                                                            "0x0002ac00"},
-    {{al, r10, 0x00055800}, false, al, "al r10 0x00055800", "al_r10_"
-                                                            "0x00055800"},
-    {{al, r10, 0x000ab000}, false, al, "al r10 0x000ab000", "al_r10_"
-                                                            "0x000ab000"},
-    {{al, r10, 0x00156000}, false, al, "al r10 0x00156000", "al_r10_"
-                                                            "0x00156000"},
-    {{al, r10, 0x002ac000}, false, al, "al r10 0x002ac000", "al_r10_"
-                                                            "0x002ac000"},
-    {{al, r10, 0x00558000}, false, al, "al r10 0x00558000", "al_r10_"
-                                                            "0x00558000"},
-    {{al, r10, 0x00ab0000}, false, al, "al r10 0x00ab0000", "al_r10_"
-                                                            "0x00ab0000"},
-    {{al, r10, 0x01560000}, false, al, "al r10 0x01560000", "al_r10_"
-                                                            "0x01560000"},
-    {{al, r10, 0x02ac0000}, false, al, "al r10 0x02ac0000", "al_r10_"
-                                                            "0x02ac0000"},
-    {{al, r10, 0x05580000}, false, al, "al r10 0x05580000", "al_r10_"
-                                                            "0x05580000"},
-    {{al, r10, 0x0ab00000}, false, al, "al r10 0x0ab00000", "al_r10_"
-                                                            "0x0ab00000"},
-    {{al, r10, 0x15600000}, false, al, "al r10 0x15600000", "al_r10_"
-                                                            "0x15600000"},
-    {{al, r10, 0x2ac00000}, false, al, "al r10 0x2ac00000", "al_r10_"
-                                                            "0x2ac00000"},
-    {{al, r10, 0x55800000}, false, al, "al r10 0x55800000", "al_r10_"
-                                                            "0x55800000"},
-    {{al, r10, 0xab000000}, false, al, "al r10 0xab000000", "al_r10_"
-                                                            "0xab000000"},
-    {{al, r10, 0x000000ab}, false, al, "al r10 0x000000ab", "al_r10_"
-                                                            "0x000000ab"},
-    {{al, r10, 0x00ab00ab}, false, al, "al r10 0x00ab00ab", "al_r10_"
-                                                            "0x00ab00ab"},
-    {{al, r10, 0xab00ab00}, false, al, "al r10 0xab00ab00", "al_r10_"
-                                                            "0xab00ab00"},
-    {{al, r10, 0xabababab}, false, al, "al r10 0xabababab", "al_r10_"
-                                                            "0xabababab"},
-    {{al, r11, 0x000001fe}, false, al, "al r11 0x000001fe", "al_r11_"
-                                                            "0x000001fe"},
-    {{al, r11, 0x000003fc}, false, al, "al r11 0x000003fc", "al_r11_"
-                                                            "0x000003fc"},
-    {{al, r11, 0x000007f8}, false, al, "al r11 0x000007f8", "al_r11_"
-                                                            "0x000007f8"},
-    {{al, r11, 0x00000ff0}, false, al, "al r11 0x00000ff0", "al_r11_"
-                                                            "0x00000ff0"},
-    {{al, r11, 0x00001fe0}, false, al, "al r11 0x00001fe0", "al_r11_"
-                                                            "0x00001fe0"},
-    {{al, r11, 0x00003fc0}, false, al, "al r11 0x00003fc0", "al_r11_"
-                                                            "0x00003fc0"},
-    {{al, r11, 0x00007f80}, false, al, "al r11 0x00007f80", "al_r11_"
-                                                            "0x00007f80"},
-    {{al, r11, 0x0000ff00}, false, al, "al r11 0x0000ff00", "al_r11_"
-                                                            "0x0000ff00"},
-    {{al, r11, 0x0001fe00}, false, al, "al r11 0x0001fe00", "al_r11_"
-                                                            "0x0001fe00"},
-    {{al, r11, 0x0003fc00}, false, al, "al r11 0x0003fc00", "al_r11_"
-                                                            "0x0003fc00"},
-    {{al, r11, 0x0007f800}, false, al, "al r11 0x0007f800", "al_r11_"
-                                                            "0x0007f800"},
-    {{al, r11, 0x000ff000}, false, al, "al r11 0x000ff000", "al_r11_"
-                                                            "0x000ff000"},
-    {{al, r11, 0x001fe000}, false, al, "al r11 0x001fe000", "al_r11_"
-                                                            "0x001fe000"},
-    {{al, r11, 0x003fc000}, false, al, "al r11 0x003fc000", "al_r11_"
-                                                            "0x003fc000"},
-    {{al, r11, 0x007f8000}, false, al, "al r11 0x007f8000", "al_r11_"
-                                                            "0x007f8000"},
-    {{al, r11, 0x00ff0000}, false, al, "al r11 0x00ff0000", "al_r11_"
-                                                            "0x00ff0000"},
-    {{al, r11, 0x01fe0000}, false, al, "al r11 0x01fe0000", "al_r11_"
-                                                            "0x01fe0000"},
-    {{al, r11, 0x03fc0000}, false, al, "al r11 0x03fc0000", "al_r11_"
-                                                            "0x03fc0000"},
-    {{al, r11, 0x07f80000}, false, al, "al r11 0x07f80000", "al_r11_"
-                                                            "0x07f80000"},
-    {{al, r11, 0x0ff00000}, false, al, "al r11 0x0ff00000", "al_r11_"
-                                                            "0x0ff00000"},
-    {{al, r11, 0x1fe00000}, false, al, "al r11 0x1fe00000", "al_r11_"
-                                                            "0x1fe00000"},
-    {{al, r11, 0x3fc00000}, false, al, "al r11 0x3fc00000", "al_r11_"
-                                                            "0x3fc00000"},
-    {{al, r11, 0x7f800000}, false, al, "al r11 0x7f800000", "al_r11_"
-                                                            "0x7f800000"},
-    {{al, r11, 0xff000000}, false, al, "al r11 0xff000000", "al_r11_"
-                                                            "0xff000000"},
-    {{al, r11, 0x000000ff}, false, al, "al r11 0x000000ff", "al_r11_"
-                                                            "0x000000ff"},
-    {{al, r11, 0x00ff00ff}, false, al, "al r11 0x00ff00ff", "al_r11_"
-                                                            "0x00ff00ff"},
-    {{al, r11, 0xff00ff00}, false, al, "al r11 0xff00ff00", "al_r11_"
-                                                            "0xff00ff00"},
-    {{al, r11, 0xffffffff}, false, al, "al r11 0xffffffff", "al_r11_"
-                                                            "0xffffffff"},
-    {{al, r11, 0x00000156}, false, al, "al r11 0x00000156", "al_r11_"
-                                                            "0x00000156"},
-    {{al, r11, 0x000002ac}, false, al, "al r11 0x000002ac", "al_r11_"
-                                                            "0x000002ac"},
-    {{al, r11, 0x00000558}, false, al, "al r11 0x00000558", "al_r11_"
-                                                            "0x00000558"},
-    {{al, r11, 0x00000ab0}, false, al, "al r11 0x00000ab0", "al_r11_"
-                                                            "0x00000ab0"},
-    {{al, r11, 0x00001560}, false, al, "al r11 0x00001560", "al_r11_"
-                                                            "0x00001560"},
-    {{al, r11, 0x00002ac0}, false, al, "al r11 0x00002ac0", "al_r11_"
-                                                            "0x00002ac0"},
-    {{al, r11, 0x00005580}, false, al, "al r11 0x00005580", "al_r11_"
-                                                            "0x00005580"},
-    {{al, r11, 0x0000ab00}, false, al, "al r11 0x0000ab00", "al_r11_"
-                                                            "0x0000ab00"},
-    {{al, r11, 0x00015600}, false, al, "al r11 0x00015600", "al_r11_"
-                                                            "0x00015600"},
-    {{al, r11, 0x0002ac00}, false, al, "al r11 0x0002ac00", "al_r11_"
-                                                            "0x0002ac00"},
-    {{al, r11, 0x00055800}, false, al, "al r11 0x00055800", "al_r11_"
-                                                            "0x00055800"},
-    {{al, r11, 0x000ab000}, false, al, "al r11 0x000ab000", "al_r11_"
-                                                            "0x000ab000"},
-    {{al, r11, 0x00156000}, false, al, "al r11 0x00156000", "al_r11_"
-                                                            "0x00156000"},
-    {{al, r11, 0x002ac000}, false, al, "al r11 0x002ac000", "al_r11_"
-                                                            "0x002ac000"},
-    {{al, r11, 0x00558000}, false, al, "al r11 0x00558000", "al_r11_"
-                                                            "0x00558000"},
-    {{al, r11, 0x00ab0000}, false, al, "al r11 0x00ab0000", "al_r11_"
-                                                            "0x00ab0000"},
-    {{al, r11, 0x01560000}, false, al, "al r11 0x01560000", "al_r11_"
-                                                            "0x01560000"},
-    {{al, r11, 0x02ac0000}, false, al, "al r11 0x02ac0000", "al_r11_"
-                                                            "0x02ac0000"},
-    {{al, r11, 0x05580000}, false, al, "al r11 0x05580000", "al_r11_"
-                                                            "0x05580000"},
-    {{al, r11, 0x0ab00000}, false, al, "al r11 0x0ab00000", "al_r11_"
-                                                            "0x0ab00000"},
-    {{al, r11, 0x15600000}, false, al, "al r11 0x15600000", "al_r11_"
-                                                            "0x15600000"},
-    {{al, r11, 0x2ac00000}, false, al, "al r11 0x2ac00000", "al_r11_"
-                                                            "0x2ac00000"},
-    {{al, r11, 0x55800000}, false, al, "al r11 0x55800000", "al_r11_"
-                                                            "0x55800000"},
-    {{al, r11, 0xab000000}, false, al, "al r11 0xab000000", "al_r11_"
-                                                            "0xab000000"},
-    {{al, r11, 0x000000ab}, false, al, "al r11 0x000000ab", "al_r11_"
-                                                            "0x000000ab"},
-    {{al, r11, 0x00ab00ab}, false, al, "al r11 0x00ab00ab", "al_r11_"
-                                                            "0x00ab00ab"},
-    {{al, r11, 0xab00ab00}, false, al, "al r11 0xab00ab00", "al_r11_"
-                                                            "0xab00ab00"},
-    {{al, r11, 0xabababab}, false, al, "al r11 0xabababab", "al_r11_"
-                                                            "0xabababab"},
-    {{al, r12, 0x000001fe}, false, al, "al r12 0x000001fe", "al_r12_"
-                                                            "0x000001fe"},
-    {{al, r12, 0x000003fc}, false, al, "al r12 0x000003fc", "al_r12_"
-                                                            "0x000003fc"},
-    {{al, r12, 0x000007f8}, false, al, "al r12 0x000007f8", "al_r12_"
-                                                            "0x000007f8"},
-    {{al, r12, 0x00000ff0}, false, al, "al r12 0x00000ff0", "al_r12_"
-                                                            "0x00000ff0"},
-    {{al, r12, 0x00001fe0}, false, al, "al r12 0x00001fe0", "al_r12_"
-                                                            "0x00001fe0"},
-    {{al, r12, 0x00003fc0}, false, al, "al r12 0x00003fc0", "al_r12_"
-                                                            "0x00003fc0"},
-    {{al, r12, 0x00007f80}, false, al, "al r12 0x00007f80", "al_r12_"
-                                                            "0x00007f80"},
-    {{al, r12, 0x0000ff00}, false, al, "al r12 0x0000ff00", "al_r12_"
-                                                            "0x0000ff00"},
-    {{al, r12, 0x0001fe00}, false, al, "al r12 0x0001fe00", "al_r12_"
-                                                            "0x0001fe00"},
-    {{al, r12, 0x0003fc00}, false, al, "al r12 0x0003fc00", "al_r12_"
-                                                            "0x0003fc00"},
-    {{al, r12, 0x0007f800}, false, al, "al r12 0x0007f800", "al_r12_"
-                                                            "0x0007f800"},
-    {{al, r12, 0x000ff000}, false, al, "al r12 0x000ff000", "al_r12_"
-                                                            "0x000ff000"},
-    {{al, r12, 0x001fe000}, false, al, "al r12 0x001fe000", "al_r12_"
-                                                            "0x001fe000"},
-    {{al, r12, 0x003fc000}, false, al, "al r12 0x003fc000", "al_r12_"
-                                                            "0x003fc000"},
-    {{al, r12, 0x007f8000}, false, al, "al r12 0x007f8000", "al_r12_"
-                                                            "0x007f8000"},
-    {{al, r12, 0x00ff0000}, false, al, "al r12 0x00ff0000", "al_r12_"
-                                                            "0x00ff0000"},
-    {{al, r12, 0x01fe0000}, false, al, "al r12 0x01fe0000", "al_r12_"
-                                                            "0x01fe0000"},
-    {{al, r12, 0x03fc0000}, false, al, "al r12 0x03fc0000", "al_r12_"
-                                                            "0x03fc0000"},
-    {{al, r12, 0x07f80000}, false, al, "al r12 0x07f80000", "al_r12_"
-                                                            "0x07f80000"},
-    {{al, r12, 0x0ff00000}, false, al, "al r12 0x0ff00000", "al_r12_"
-                                                            "0x0ff00000"},
-    {{al, r12, 0x1fe00000}, false, al, "al r12 0x1fe00000", "al_r12_"
-                                                            "0x1fe00000"},
-    {{al, r12, 0x3fc00000}, false, al, "al r12 0x3fc00000", "al_r12_"
-                                                            "0x3fc00000"},
-    {{al, r12, 0x7f800000}, false, al, "al r12 0x7f800000", "al_r12_"
-                                                            "0x7f800000"},
-    {{al, r12, 0xff000000}, false, al, "al r12 0xff000000", "al_r12_"
-                                                            "0xff000000"},
-    {{al, r12, 0x000000ff}, false, al, "al r12 0x000000ff", "al_r12_"
-                                                            "0x000000ff"},
-    {{al, r12, 0x00ff00ff}, false, al, "al r12 0x00ff00ff", "al_r12_"
-                                                            "0x00ff00ff"},
-    {{al, r12, 0xff00ff00}, false, al, "al r12 0xff00ff00", "al_r12_"
-                                                            "0xff00ff00"},
-    {{al, r12, 0xffffffff}, false, al, "al r12 0xffffffff", "al_r12_"
-                                                            "0xffffffff"},
-    {{al, r12, 0x00000156}, false, al, "al r12 0x00000156", "al_r12_"
-                                                            "0x00000156"},
-    {{al, r12, 0x000002ac}, false, al, "al r12 0x000002ac", "al_r12_"
-                                                            "0x000002ac"},
-    {{al, r12, 0x00000558}, false, al, "al r12 0x00000558", "al_r12_"
-                                                            "0x00000558"},
-    {{al, r12, 0x00000ab0}, false, al, "al r12 0x00000ab0", "al_r12_"
-                                                            "0x00000ab0"},
-    {{al, r12, 0x00001560}, false, al, "al r12 0x00001560", "al_r12_"
-                                                            "0x00001560"},
-    {{al, r12, 0x00002ac0}, false, al, "al r12 0x00002ac0", "al_r12_"
-                                                            "0x00002ac0"},
-    {{al, r12, 0x00005580}, false, al, "al r12 0x00005580", "al_r12_"
-                                                            "0x00005580"},
-    {{al, r12, 0x0000ab00}, false, al, "al r12 0x0000ab00", "al_r12_"
-                                                            "0x0000ab00"},
-    {{al, r12, 0x00015600}, false, al, "al r12 0x00015600", "al_r12_"
-                                                            "0x00015600"},
-    {{al, r12, 0x0002ac00}, false, al, "al r12 0x0002ac00", "al_r12_"
-                                                            "0x0002ac00"},
-    {{al, r12, 0x00055800}, false, al, "al r12 0x00055800", "al_r12_"
-                                                            "0x00055800"},
-    {{al, r12, 0x000ab000}, false, al, "al r12 0x000ab000", "al_r12_"
-                                                            "0x000ab000"},
-    {{al, r12, 0x00156000}, false, al, "al r12 0x00156000", "al_r12_"
-                                                            "0x00156000"},
-    {{al, r12, 0x002ac000}, false, al, "al r12 0x002ac000", "al_r12_"
-                                                            "0x002ac000"},
-    {{al, r12, 0x00558000}, false, al, "al r12 0x00558000", "al_r12_"
-                                                            "0x00558000"},
-    {{al, r12, 0x00ab0000}, false, al, "al r12 0x00ab0000", "al_r12_"
-                                                            "0x00ab0000"},
-    {{al, r12, 0x01560000}, false, al, "al r12 0x01560000", "al_r12_"
-                                                            "0x01560000"},
-    {{al, r12, 0x02ac0000}, false, al, "al r12 0x02ac0000", "al_r12_"
-                                                            "0x02ac0000"},
-    {{al, r12, 0x05580000}, false, al, "al r12 0x05580000", "al_r12_"
-                                                            "0x05580000"},
-    {{al, r12, 0x0ab00000}, false, al, "al r12 0x0ab00000", "al_r12_"
-                                                            "0x0ab00000"},
-    {{al, r12, 0x15600000}, false, al, "al r12 0x15600000", "al_r12_"
-                                                            "0x15600000"},
-    {{al, r12, 0x2ac00000}, false, al, "al r12 0x2ac00000", "al_r12_"
-                                                            "0x2ac00000"},
-    {{al, r12, 0x55800000}, false, al, "al r12 0x55800000", "al_r12_"
-                                                            "0x55800000"},
-    {{al, r12, 0xab000000}, false, al, "al r12 0xab000000", "al_r12_"
-                                                            "0xab000000"},
-    {{al, r12, 0x000000ab}, false, al, "al r12 0x000000ab", "al_r12_"
-                                                            "0x000000ab"},
-    {{al, r12, 0x00ab00ab}, false, al, "al r12 0x00ab00ab", "al_r12_"
-                                                            "0x00ab00ab"},
-    {{al, r12, 0xab00ab00}, false, al, "al r12 0xab00ab00", "al_r12_"
-                                                            "0xab00ab00"},
-    {{al, r12, 0xabababab}, false, al, "al r12 0xabababab", "al_r12_"
-                                                            "0xabababab"},
-    {{al, r13, 0x000001fe}, false, al, "al r13 0x000001fe", "al_r13_"
-                                                            "0x000001fe"},
-    {{al, r13, 0x000003fc}, false, al, "al r13 0x000003fc", "al_r13_"
-                                                            "0x000003fc"},
-    {{al, r13, 0x000007f8}, false, al, "al r13 0x000007f8", "al_r13_"
-                                                            "0x000007f8"},
-    {{al, r13, 0x00000ff0}, false, al, "al r13 0x00000ff0", "al_r13_"
-                                                            "0x00000ff0"},
-    {{al, r13, 0x00001fe0}, false, al, "al r13 0x00001fe0", "al_r13_"
-                                                            "0x00001fe0"},
-    {{al, r13, 0x00003fc0}, false, al, "al r13 0x00003fc0", "al_r13_"
-                                                            "0x00003fc0"},
-    {{al, r13, 0x00007f80}, false, al, "al r13 0x00007f80", "al_r13_"
-                                                            "0x00007f80"},
-    {{al, r13, 0x0000ff00}, false, al, "al r13 0x0000ff00", "al_r13_"
-                                                            "0x0000ff00"},
-    {{al, r13, 0x0001fe00}, false, al, "al r13 0x0001fe00", "al_r13_"
-                                                            "0x0001fe00"},
-    {{al, r13, 0x0003fc00}, false, al, "al r13 0x0003fc00", "al_r13_"
-                                                            "0x0003fc00"},
-    {{al, r13, 0x0007f800}, false, al, "al r13 0x0007f800", "al_r13_"
-                                                            "0x0007f800"},
-    {{al, r13, 0x000ff000}, false, al, "al r13 0x000ff000", "al_r13_"
-                                                            "0x000ff000"},
-    {{al, r13, 0x001fe000}, false, al, "al r13 0x001fe000", "al_r13_"
-                                                            "0x001fe000"},
-    {{al, r13, 0x003fc000}, false, al, "al r13 0x003fc000", "al_r13_"
-                                                            "0x003fc000"},
-    {{al, r13, 0x007f8000}, false, al, "al r13 0x007f8000", "al_r13_"
-                                                            "0x007f8000"},
-    {{al, r13, 0x00ff0000}, false, al, "al r13 0x00ff0000", "al_r13_"
-                                                            "0x00ff0000"},
-    {{al, r13, 0x01fe0000}, false, al, "al r13 0x01fe0000", "al_r13_"
-                                                            "0x01fe0000"},
-    {{al, r13, 0x03fc0000}, false, al, "al r13 0x03fc0000", "al_r13_"
-                                                            "0x03fc0000"},
-    {{al, r13, 0x07f80000}, false, al, "al r13 0x07f80000", "al_r13_"
-                                                            "0x07f80000"},
-    {{al, r13, 0x0ff00000}, false, al, "al r13 0x0ff00000", "al_r13_"
-                                                            "0x0ff00000"},
-    {{al, r13, 0x1fe00000}, false, al, "al r13 0x1fe00000", "al_r13_"
-                                                            "0x1fe00000"},
-    {{al, r13, 0x3fc00000}, false, al, "al r13 0x3fc00000", "al_r13_"
-                                                            "0x3fc00000"},
-    {{al, r13, 0x7f800000}, false, al, "al r13 0x7f800000", "al_r13_"
-                                                            "0x7f800000"},
-    {{al, r13, 0xff000000}, false, al, "al r13 0xff000000", "al_r13_"
-                                                            "0xff000000"},
-    {{al, r13, 0x000000ff}, false, al, "al r13 0x000000ff", "al_r13_"
-                                                            "0x000000ff"},
-    {{al, r13, 0x00ff00ff}, false, al, "al r13 0x00ff00ff", "al_r13_"
-                                                            "0x00ff00ff"},
-    {{al, r13, 0xff00ff00}, false, al, "al r13 0xff00ff00", "al_r13_"
-                                                            "0xff00ff00"},
-    {{al, r13, 0xffffffff}, false, al, "al r13 0xffffffff", "al_r13_"
-                                                            "0xffffffff"},
-    {{al, r13, 0x00000156}, false, al, "al r13 0x00000156", "al_r13_"
-                                                            "0x00000156"},
-    {{al, r13, 0x000002ac}, false, al, "al r13 0x000002ac", "al_r13_"
-                                                            "0x000002ac"},
-    {{al, r13, 0x00000558}, false, al, "al r13 0x00000558", "al_r13_"
-                                                            "0x00000558"},
-    {{al, r13, 0x00000ab0}, false, al, "al r13 0x00000ab0", "al_r13_"
-                                                            "0x00000ab0"},
-    {{al, r13, 0x00001560}, false, al, "al r13 0x00001560", "al_r13_"
-                                                            "0x00001560"},
-    {{al, r13, 0x00002ac0}, false, al, "al r13 0x00002ac0", "al_r13_"
-                                                            "0x00002ac0"},
-    {{al, r13, 0x00005580}, false, al, "al r13 0x00005580", "al_r13_"
-                                                            "0x00005580"},
-    {{al, r13, 0x0000ab00}, false, al, "al r13 0x0000ab00", "al_r13_"
-                                                            "0x0000ab00"},
-    {{al, r13, 0x00015600}, false, al, "al r13 0x00015600", "al_r13_"
-                                                            "0x00015600"},
-    {{al, r13, 0x0002ac00}, false, al, "al r13 0x0002ac00", "al_r13_"
-                                                            "0x0002ac00"},
-    {{al, r13, 0x00055800}, false, al, "al r13 0x00055800", "al_r13_"
-                                                            "0x00055800"},
-    {{al, r13, 0x000ab000}, false, al, "al r13 0x000ab000", "al_r13_"
-                                                            "0x000ab000"},
-    {{al, r13, 0x00156000}, false, al, "al r13 0x00156000", "al_r13_"
-                                                            "0x00156000"},
-    {{al, r13, 0x002ac000}, false, al, "al r13 0x002ac000", "al_r13_"
-                                                            "0x002ac000"},
-    {{al, r13, 0x00558000}, false, al, "al r13 0x00558000", "al_r13_"
-                                                            "0x00558000"},
-    {{al, r13, 0x00ab0000}, false, al, "al r13 0x00ab0000", "al_r13_"
-                                                            "0x00ab0000"},
-    {{al, r13, 0x01560000}, false, al, "al r13 0x01560000", "al_r13_"
-                                                            "0x01560000"},
-    {{al, r13, 0x02ac0000}, false, al, "al r13 0x02ac0000", "al_r13_"
-                                                            "0x02ac0000"},
-    {{al, r13, 0x05580000}, false, al, "al r13 0x05580000", "al_r13_"
-                                                            "0x05580000"},
-    {{al, r13, 0x0ab00000}, false, al, "al r13 0x0ab00000", "al_r13_"
-                                                            "0x0ab00000"},
-    {{al, r13, 0x15600000}, false, al, "al r13 0x15600000", "al_r13_"
-                                                            "0x15600000"},
-    {{al, r13, 0x2ac00000}, false, al, "al r13 0x2ac00000", "al_r13_"
-                                                            "0x2ac00000"},
-    {{al, r13, 0x55800000}, false, al, "al r13 0x55800000", "al_r13_"
-                                                            "0x55800000"},
-    {{al, r13, 0xab000000}, false, al, "al r13 0xab000000", "al_r13_"
-                                                            "0xab000000"},
-    {{al, r13, 0x000000ab}, false, al, "al r13 0x000000ab", "al_r13_"
-                                                            "0x000000ab"},
-    {{al, r13, 0x00ab00ab}, false, al, "al r13 0x00ab00ab", "al_r13_"
-                                                            "0x00ab00ab"},
-    {{al, r13, 0xab00ab00}, false, al, "al r13 0xab00ab00", "al_r13_"
-                                                            "0xab00ab00"},
-    {{al, r13, 0xabababab}, false, al, "al r13 0xabababab", "al_r13_"
-                                                            "0xabababab"},
-    {{al, r14, 0x000001fe}, false, al, "al r14 0x000001fe", "al_r14_"
-                                                            "0x000001fe"},
-    {{al, r14, 0x000003fc}, false, al, "al r14 0x000003fc", "al_r14_"
-                                                            "0x000003fc"},
-    {{al, r14, 0x000007f8}, false, al, "al r14 0x000007f8", "al_r14_"
-                                                            "0x000007f8"},
-    {{al, r14, 0x00000ff0}, false, al, "al r14 0x00000ff0", "al_r14_"
-                                                            "0x00000ff0"},
-    {{al, r14, 0x00001fe0}, false, al, "al r14 0x00001fe0", "al_r14_"
-                                                            "0x00001fe0"},
-    {{al, r14, 0x00003fc0}, false, al, "al r14 0x00003fc0", "al_r14_"
-                                                            "0x00003fc0"},
-    {{al, r14, 0x00007f80}, false, al, "al r14 0x00007f80", "al_r14_"
-                                                            "0x00007f80"},
-    {{al, r14, 0x0000ff00}, false, al, "al r14 0x0000ff00", "al_r14_"
-                                                            "0x0000ff00"},
-    {{al, r14, 0x0001fe00}, false, al, "al r14 0x0001fe00", "al_r14_"
-                                                            "0x0001fe00"},
-    {{al, r14, 0x0003fc00}, false, al, "al r14 0x0003fc00", "al_r14_"
-                                                            "0x0003fc00"},
-    {{al, r14, 0x0007f800}, false, al, "al r14 0x0007f800", "al_r14_"
-                                                            "0x0007f800"},
-    {{al, r14, 0x000ff000}, false, al, "al r14 0x000ff000", "al_r14_"
-                                                            "0x000ff000"},
-    {{al, r14, 0x001fe000}, false, al, "al r14 0x001fe000", "al_r14_"
-                                                            "0x001fe000"},
-    {{al, r14, 0x003fc000}, false, al, "al r14 0x003fc000", "al_r14_"
-                                                            "0x003fc000"},
-    {{al, r14, 0x007f8000}, false, al, "al r14 0x007f8000", "al_r14_"
-                                                            "0x007f8000"},
-    {{al, r14, 0x00ff0000}, false, al, "al r14 0x00ff0000", "al_r14_"
-                                                            "0x00ff0000"},
-    {{al, r14, 0x01fe0000}, false, al, "al r14 0x01fe0000", "al_r14_"
-                                                            "0x01fe0000"},
-    {{al, r14, 0x03fc0000}, false, al, "al r14 0x03fc0000", "al_r14_"
-                                                            "0x03fc0000"},
-    {{al, r14, 0x07f80000}, false, al, "al r14 0x07f80000", "al_r14_"
-                                                            "0x07f80000"},
-    {{al, r14, 0x0ff00000}, false, al, "al r14 0x0ff00000", "al_r14_"
-                                                            "0x0ff00000"},
-    {{al, r14, 0x1fe00000}, false, al, "al r14 0x1fe00000", "al_r14_"
-                                                            "0x1fe00000"},
-    {{al, r14, 0x3fc00000}, false, al, "al r14 0x3fc00000", "al_r14_"
-                                                            "0x3fc00000"},
-    {{al, r14, 0x7f800000}, false, al, "al r14 0x7f800000", "al_r14_"
-                                                            "0x7f800000"},
-    {{al, r14, 0xff000000}, false, al, "al r14 0xff000000", "al_r14_"
-                                                            "0xff000000"},
-    {{al, r14, 0x000000ff}, false, al, "al r14 0x000000ff", "al_r14_"
-                                                            "0x000000ff"},
-    {{al, r14, 0x00ff00ff}, false, al, "al r14 0x00ff00ff", "al_r14_"
-                                                            "0x00ff00ff"},
-    {{al, r14, 0xff00ff00}, false, al, "al r14 0xff00ff00", "al_r14_"
-                                                            "0xff00ff00"},
-    {{al, r14, 0xffffffff}, false, al, "al r14 0xffffffff", "al_r14_"
-                                                            "0xffffffff"},
-    {{al, r14, 0x00000156}, false, al, "al r14 0x00000156", "al_r14_"
-                                                            "0x00000156"},
-    {{al, r14, 0x000002ac}, false, al, "al r14 0x000002ac", "al_r14_"
-                                                            "0x000002ac"},
-    {{al, r14, 0x00000558}, false, al, "al r14 0x00000558", "al_r14_"
-                                                            "0x00000558"},
-    {{al, r14, 0x00000ab0}, false, al, "al r14 0x00000ab0", "al_r14_"
-                                                            "0x00000ab0"},
-    {{al, r14, 0x00001560}, false, al, "al r14 0x00001560", "al_r14_"
-                                                            "0x00001560"},
-    {{al, r14, 0x00002ac0}, false, al, "al r14 0x00002ac0", "al_r14_"
-                                                            "0x00002ac0"},
-    {{al, r14, 0x00005580}, false, al, "al r14 0x00005580", "al_r14_"
-                                                            "0x00005580"},
-    {{al, r14, 0x0000ab00}, false, al, "al r14 0x0000ab00", "al_r14_"
-                                                            "0x0000ab00"},
-    {{al, r14, 0x00015600}, false, al, "al r14 0x00015600", "al_r14_"
-                                                            "0x00015600"},
-    {{al, r14, 0x0002ac00}, false, al, "al r14 0x0002ac00", "al_r14_"
-                                                            "0x0002ac00"},
-    {{al, r14, 0x00055800}, false, al, "al r14 0x00055800", "al_r14_"
-                                                            "0x00055800"},
-    {{al, r14, 0x000ab000}, false, al, "al r14 0x000ab000", "al_r14_"
-                                                            "0x000ab000"},
-    {{al, r14, 0x00156000}, false, al, "al r14 0x00156000", "al_r14_"
-                                                            "0x00156000"},
-    {{al, r14, 0x002ac000}, false, al, "al r14 0x002ac000", "al_r14_"
-                                                            "0x002ac000"},
-    {{al, r14, 0x00558000}, false, al, "al r14 0x00558000", "al_r14_"
-                                                            "0x00558000"},
-    {{al, r14, 0x00ab0000}, false, al, "al r14 0x00ab0000", "al_r14_"
-                                                            "0x00ab0000"},
-    {{al, r14, 0x01560000}, false, al, "al r14 0x01560000", "al_r14_"
-                                                            "0x01560000"},
-    {{al, r14, 0x02ac0000}, false, al, "al r14 0x02ac0000", "al_r14_"
-                                                            "0x02ac0000"},
-    {{al, r14, 0x05580000}, false, al, "al r14 0x05580000", "al_r14_"
-                                                            "0x05580000"},
-    {{al, r14, 0x0ab00000}, false, al, "al r14 0x0ab00000", "al_r14_"
-                                                            "0x0ab00000"},
-    {{al, r14, 0x15600000}, false, al, "al r14 0x15600000", "al_r14_"
-                                                            "0x15600000"},
-    {{al, r14, 0x2ac00000}, false, al, "al r14 0x2ac00000", "al_r14_"
-                                                            "0x2ac00000"},
-    {{al, r14, 0x55800000}, false, al, "al r14 0x55800000", "al_r14_"
-                                                            "0x55800000"},
-    {{al, r14, 0xab000000}, false, al, "al r14 0xab000000", "al_r14_"
-                                                            "0xab000000"},
-    {{al, r14, 0x000000ab}, false, al, "al r14 0x000000ab", "al_r14_"
-                                                            "0x000000ab"},
-    {{al, r14, 0x00ab00ab}, false, al, "al r14 0x00ab00ab", "al_r14_"
-                                                            "0x00ab00ab"},
-    {{al, r14, 0xab00ab00}, false, al, "al r14 0xab00ab00", "al_r14_"
-                                                            "0xab00ab00"},
-    {{al, r14, 0xabababab},
-     false,
-     al,
-     "al r14 0xabababab",
-     "al_r14_0xabababab"}};
+const TestData kTests[] =
+    {{{al, r0, 0x000001fe}, false, al, "al r0 0x000001fe", "al_r0_0x000001fe"},
+     {{al, r0, 0x000003fc}, false, al, "al r0 0x000003fc", "al_r0_0x000003fc"},
+     {{al, r0, 0x000007f8}, false, al, "al r0 0x000007f8", "al_r0_0x000007f8"},
+     {{al, r0, 0x00000ff0}, false, al, "al r0 0x00000ff0", "al_r0_0x00000ff0"},
+     {{al, r0, 0x00001fe0}, false, al, "al r0 0x00001fe0", "al_r0_0x00001fe0"},
+     {{al, r0, 0x00003fc0}, false, al, "al r0 0x00003fc0", "al_r0_0x00003fc0"},
+     {{al, r0, 0x00007f80}, false, al, "al r0 0x00007f80", "al_r0_0x00007f80"},
+     {{al, r0, 0x0000ff00}, false, al, "al r0 0x0000ff00", "al_r0_0x0000ff00"},
+     {{al, r0, 0x0001fe00}, false, al, "al r0 0x0001fe00", "al_r0_0x0001fe00"},
+     {{al, r0, 0x0003fc00}, false, al, "al r0 0x0003fc00", "al_r0_0x0003fc00"},
+     {{al, r0, 0x0007f800}, false, al, "al r0 0x0007f800", "al_r0_0x0007f800"},
+     {{al, r0, 0x000ff000}, false, al, "al r0 0x000ff000", "al_r0_0x000ff000"},
+     {{al, r0, 0x001fe000}, false, al, "al r0 0x001fe000", "al_r0_0x001fe000"},
+     {{al, r0, 0x003fc000}, false, al, "al r0 0x003fc000", "al_r0_0x003fc000"},
+     {{al, r0, 0x007f8000}, false, al, "al r0 0x007f8000", "al_r0_0x007f8000"},
+     {{al, r0, 0x00ff0000}, false, al, "al r0 0x00ff0000", "al_r0_0x00ff0000"},
+     {{al, r0, 0x01fe0000}, false, al, "al r0 0x01fe0000", "al_r0_0x01fe0000"},
+     {{al, r0, 0x03fc0000}, false, al, "al r0 0x03fc0000", "al_r0_0x03fc0000"},
+     {{al, r0, 0x07f80000}, false, al, "al r0 0x07f80000", "al_r0_0x07f80000"},
+     {{al, r0, 0x0ff00000}, false, al, "al r0 0x0ff00000", "al_r0_0x0ff00000"},
+     {{al, r0, 0x1fe00000}, false, al, "al r0 0x1fe00000", "al_r0_0x1fe00000"},
+     {{al, r0, 0x3fc00000}, false, al, "al r0 0x3fc00000", "al_r0_0x3fc00000"},
+     {{al, r0, 0x7f800000}, false, al, "al r0 0x7f800000", "al_r0_0x7f800000"},
+     {{al, r0, 0xff000000}, false, al, "al r0 0xff000000", "al_r0_0xff000000"},
+     {{al, r0, 0x000000ff}, false, al, "al r0 0x000000ff", "al_r0_0x000000ff"},
+     {{al, r0, 0x00ff00ff}, false, al, "al r0 0x00ff00ff", "al_r0_0x00ff00ff"},
+     {{al, r0, 0xff00ff00}, false, al, "al r0 0xff00ff00", "al_r0_0xff00ff00"},
+     {{al, r0, 0xffffffff}, false, al, "al r0 0xffffffff", "al_r0_0xffffffff"},
+     {{al, r0, 0x00000156}, false, al, "al r0 0x00000156", "al_r0_0x00000156"},
+     {{al, r0, 0x000002ac}, false, al, "al r0 0x000002ac", "al_r0_0x000002ac"},
+     {{al, r0, 0x00000558}, false, al, "al r0 0x00000558", "al_r0_0x00000558"},
+     {{al, r0, 0x00000ab0}, false, al, "al r0 0x00000ab0", "al_r0_0x00000ab0"},
+     {{al, r0, 0x00001560}, false, al, "al r0 0x00001560", "al_r0_0x00001560"},
+     {{al, r0, 0x00002ac0}, false, al, "al r0 0x00002ac0", "al_r0_0x00002ac0"},
+     {{al, r0, 0x00005580}, false, al, "al r0 0x00005580", "al_r0_0x00005580"},
+     {{al, r0, 0x0000ab00}, false, al, "al r0 0x0000ab00", "al_r0_0x0000ab00"},
+     {{al, r0, 0x00015600}, false, al, "al r0 0x00015600", "al_r0_0x00015600"},
+     {{al, r0, 0x0002ac00}, false, al, "al r0 0x0002ac00", "al_r0_0x0002ac00"},
+     {{al, r0, 0x00055800}, false, al, "al r0 0x00055800", "al_r0_0x00055800"},
+     {{al, r0, 0x000ab000}, false, al, "al r0 0x000ab000", "al_r0_0x000ab000"},
+     {{al, r0, 0x00156000}, false, al, "al r0 0x00156000", "al_r0_0x00156000"},
+     {{al, r0, 0x002ac000}, false, al, "al r0 0x002ac000", "al_r0_0x002ac000"},
+     {{al, r0, 0x00558000}, false, al, "al r0 0x00558000", "al_r0_0x00558000"},
+     {{al, r0, 0x00ab0000}, false, al, "al r0 0x00ab0000", "al_r0_0x00ab0000"},
+     {{al, r0, 0x01560000}, false, al, "al r0 0x01560000", "al_r0_0x01560000"},
+     {{al, r0, 0x02ac0000}, false, al, "al r0 0x02ac0000", "al_r0_0x02ac0000"},
+     {{al, r0, 0x05580000}, false, al, "al r0 0x05580000", "al_r0_0x05580000"},
+     {{al, r0, 0x0ab00000}, false, al, "al r0 0x0ab00000", "al_r0_0x0ab00000"},
+     {{al, r0, 0x15600000}, false, al, "al r0 0x15600000", "al_r0_0x15600000"},
+     {{al, r0, 0x2ac00000}, false, al, "al r0 0x2ac00000", "al_r0_0x2ac00000"},
+     {{al, r0, 0x55800000}, false, al, "al r0 0x55800000", "al_r0_0x55800000"},
+     {{al, r0, 0xab000000}, false, al, "al r0 0xab000000", "al_r0_0xab000000"},
+     {{al, r0, 0x000000ab}, false, al, "al r0 0x000000ab", "al_r0_0x000000ab"},
+     {{al, r0, 0x00ab00ab}, false, al, "al r0 0x00ab00ab", "al_r0_0x00ab00ab"},
+     {{al, r0, 0xab00ab00}, false, al, "al r0 0xab00ab00", "al_r0_0xab00ab00"},
+     {{al, r0, 0xabababab}, false, al, "al r0 0xabababab", "al_r0_0xabababab"},
+     {{al, r1, 0x000001fe}, false, al, "al r1 0x000001fe", "al_r1_0x000001fe"},
+     {{al, r1, 0x000003fc}, false, al, "al r1 0x000003fc", "al_r1_0x000003fc"},
+     {{al, r1, 0x000007f8}, false, al, "al r1 0x000007f8", "al_r1_0x000007f8"},
+     {{al, r1, 0x00000ff0}, false, al, "al r1 0x00000ff0", "al_r1_0x00000ff0"},
+     {{al, r1, 0x00001fe0}, false, al, "al r1 0x00001fe0", "al_r1_0x00001fe0"},
+     {{al, r1, 0x00003fc0}, false, al, "al r1 0x00003fc0", "al_r1_0x00003fc0"},
+     {{al, r1, 0x00007f80}, false, al, "al r1 0x00007f80", "al_r1_0x00007f80"},
+     {{al, r1, 0x0000ff00}, false, al, "al r1 0x0000ff00", "al_r1_0x0000ff00"},
+     {{al, r1, 0x0001fe00}, false, al, "al r1 0x0001fe00", "al_r1_0x0001fe00"},
+     {{al, r1, 0x0003fc00}, false, al, "al r1 0x0003fc00", "al_r1_0x0003fc00"},
+     {{al, r1, 0x0007f800}, false, al, "al r1 0x0007f800", "al_r1_0x0007f800"},
+     {{al, r1, 0x000ff000}, false, al, "al r1 0x000ff000", "al_r1_0x000ff000"},
+     {{al, r1, 0x001fe000}, false, al, "al r1 0x001fe000", "al_r1_0x001fe000"},
+     {{al, r1, 0x003fc000}, false, al, "al r1 0x003fc000", "al_r1_0x003fc000"},
+     {{al, r1, 0x007f8000}, false, al, "al r1 0x007f8000", "al_r1_0x007f8000"},
+     {{al, r1, 0x00ff0000}, false, al, "al r1 0x00ff0000", "al_r1_0x00ff0000"},
+     {{al, r1, 0x01fe0000}, false, al, "al r1 0x01fe0000", "al_r1_0x01fe0000"},
+     {{al, r1, 0x03fc0000}, false, al, "al r1 0x03fc0000", "al_r1_0x03fc0000"},
+     {{al, r1, 0x07f80000}, false, al, "al r1 0x07f80000", "al_r1_0x07f80000"},
+     {{al, r1, 0x0ff00000}, false, al, "al r1 0x0ff00000", "al_r1_0x0ff00000"},
+     {{al, r1, 0x1fe00000}, false, al, "al r1 0x1fe00000", "al_r1_0x1fe00000"},
+     {{al, r1, 0x3fc00000}, false, al, "al r1 0x3fc00000", "al_r1_0x3fc00000"},
+     {{al, r1, 0x7f800000}, false, al, "al r1 0x7f800000", "al_r1_0x7f800000"},
+     {{al, r1, 0xff000000}, false, al, "al r1 0xff000000", "al_r1_0xff000000"},
+     {{al, r1, 0x000000ff}, false, al, "al r1 0x000000ff", "al_r1_0x000000ff"},
+     {{al, r1, 0x00ff00ff}, false, al, "al r1 0x00ff00ff", "al_r1_0x00ff00ff"},
+     {{al, r1, 0xff00ff00}, false, al, "al r1 0xff00ff00", "al_r1_0xff00ff00"},
+     {{al, r1, 0xffffffff}, false, al, "al r1 0xffffffff", "al_r1_0xffffffff"},
+     {{al, r1, 0x00000156}, false, al, "al r1 0x00000156", "al_r1_0x00000156"},
+     {{al, r1, 0x000002ac}, false, al, "al r1 0x000002ac", "al_r1_0x000002ac"},
+     {{al, r1, 0x00000558}, false, al, "al r1 0x00000558", "al_r1_0x00000558"},
+     {{al, r1, 0x00000ab0}, false, al, "al r1 0x00000ab0", "al_r1_0x00000ab0"},
+     {{al, r1, 0x00001560}, false, al, "al r1 0x00001560", "al_r1_0x00001560"},
+     {{al, r1, 0x00002ac0}, false, al, "al r1 0x00002ac0", "al_r1_0x00002ac0"},
+     {{al, r1, 0x00005580}, false, al, "al r1 0x00005580", "al_r1_0x00005580"},
+     {{al, r1, 0x0000ab00}, false, al, "al r1 0x0000ab00", "al_r1_0x0000ab00"},
+     {{al, r1, 0x00015600}, false, al, "al r1 0x00015600", "al_r1_0x00015600"},
+     {{al, r1, 0x0002ac00}, false, al, "al r1 0x0002ac00", "al_r1_0x0002ac00"},
+     {{al, r1, 0x00055800}, false, al, "al r1 0x00055800", "al_r1_0x00055800"},
+     {{al, r1, 0x000ab000}, false, al, "al r1 0x000ab000", "al_r1_0x000ab000"},
+     {{al, r1, 0x00156000}, false, al, "al r1 0x00156000", "al_r1_0x00156000"},
+     {{al, r1, 0x002ac000}, false, al, "al r1 0x002ac000", "al_r1_0x002ac000"},
+     {{al, r1, 0x00558000}, false, al, "al r1 0x00558000", "al_r1_0x00558000"},
+     {{al, r1, 0x00ab0000}, false, al, "al r1 0x00ab0000", "al_r1_0x00ab0000"},
+     {{al, r1, 0x01560000}, false, al, "al r1 0x01560000", "al_r1_0x01560000"},
+     {{al, r1, 0x02ac0000}, false, al, "al r1 0x02ac0000", "al_r1_0x02ac0000"},
+     {{al, r1, 0x05580000}, false, al, "al r1 0x05580000", "al_r1_0x05580000"},
+     {{al, r1, 0x0ab00000}, false, al, "al r1 0x0ab00000", "al_r1_0x0ab00000"},
+     {{al, r1, 0x15600000}, false, al, "al r1 0x15600000", "al_r1_0x15600000"},
+     {{al, r1, 0x2ac00000}, false, al, "al r1 0x2ac00000", "al_r1_0x2ac00000"},
+     {{al, r1, 0x55800000}, false, al, "al r1 0x55800000", "al_r1_0x55800000"},
+     {{al, r1, 0xab000000}, false, al, "al r1 0xab000000", "al_r1_0xab000000"},
+     {{al, r1, 0x000000ab}, false, al, "al r1 0x000000ab", "al_r1_0x000000ab"},
+     {{al, r1, 0x00ab00ab}, false, al, "al r1 0x00ab00ab", "al_r1_0x00ab00ab"},
+     {{al, r1, 0xab00ab00}, false, al, "al r1 0xab00ab00", "al_r1_0xab00ab00"},
+     {{al, r1, 0xabababab}, false, al, "al r1 0xabababab", "al_r1_0xabababab"},
+     {{al, r2, 0x000001fe}, false, al, "al r2 0x000001fe", "al_r2_0x000001fe"},
+     {{al, r2, 0x000003fc}, false, al, "al r2 0x000003fc", "al_r2_0x000003fc"},
+     {{al, r2, 0x000007f8}, false, al, "al r2 0x000007f8", "al_r2_0x000007f8"},
+     {{al, r2, 0x00000ff0}, false, al, "al r2 0x00000ff0", "al_r2_0x00000ff0"},
+     {{al, r2, 0x00001fe0}, false, al, "al r2 0x00001fe0", "al_r2_0x00001fe0"},
+     {{al, r2, 0x00003fc0}, false, al, "al r2 0x00003fc0", "al_r2_0x00003fc0"},
+     {{al, r2, 0x00007f80}, false, al, "al r2 0x00007f80", "al_r2_0x00007f80"},
+     {{al, r2, 0x0000ff00}, false, al, "al r2 0x0000ff00", "al_r2_0x0000ff00"},
+     {{al, r2, 0x0001fe00}, false, al, "al r2 0x0001fe00", "al_r2_0x0001fe00"},
+     {{al, r2, 0x0003fc00}, false, al, "al r2 0x0003fc00", "al_r2_0x0003fc00"},
+     {{al, r2, 0x0007f800}, false, al, "al r2 0x0007f800", "al_r2_0x0007f800"},
+     {{al, r2, 0x000ff000}, false, al, "al r2 0x000ff000", "al_r2_0x000ff000"},
+     {{al, r2, 0x001fe000}, false, al, "al r2 0x001fe000", "al_r2_0x001fe000"},
+     {{al, r2, 0x003fc000}, false, al, "al r2 0x003fc000", "al_r2_0x003fc000"},
+     {{al, r2, 0x007f8000}, false, al, "al r2 0x007f8000", "al_r2_0x007f8000"},
+     {{al, r2, 0x00ff0000}, false, al, "al r2 0x00ff0000", "al_r2_0x00ff0000"},
+     {{al, r2, 0x01fe0000}, false, al, "al r2 0x01fe0000", "al_r2_0x01fe0000"},
+     {{al, r2, 0x03fc0000}, false, al, "al r2 0x03fc0000", "al_r2_0x03fc0000"},
+     {{al, r2, 0x07f80000}, false, al, "al r2 0x07f80000", "al_r2_0x07f80000"},
+     {{al, r2, 0x0ff00000}, false, al, "al r2 0x0ff00000", "al_r2_0x0ff00000"},
+     {{al, r2, 0x1fe00000}, false, al, "al r2 0x1fe00000", "al_r2_0x1fe00000"},
+     {{al, r2, 0x3fc00000}, false, al, "al r2 0x3fc00000", "al_r2_0x3fc00000"},
+     {{al, r2, 0x7f800000}, false, al, "al r2 0x7f800000", "al_r2_0x7f800000"},
+     {{al, r2, 0xff000000}, false, al, "al r2 0xff000000", "al_r2_0xff000000"},
+     {{al, r2, 0x000000ff}, false, al, "al r2 0x000000ff", "al_r2_0x000000ff"},
+     {{al, r2, 0x00ff00ff}, false, al, "al r2 0x00ff00ff", "al_r2_0x00ff00ff"},
+     {{al, r2, 0xff00ff00}, false, al, "al r2 0xff00ff00", "al_r2_0xff00ff00"},
+     {{al, r2, 0xffffffff}, false, al, "al r2 0xffffffff", "al_r2_0xffffffff"},
+     {{al, r2, 0x00000156}, false, al, "al r2 0x00000156", "al_r2_0x00000156"},
+     {{al, r2, 0x000002ac}, false, al, "al r2 0x000002ac", "al_r2_0x000002ac"},
+     {{al, r2, 0x00000558}, false, al, "al r2 0x00000558", "al_r2_0x00000558"},
+     {{al, r2, 0x00000ab0}, false, al, "al r2 0x00000ab0", "al_r2_0x00000ab0"},
+     {{al, r2, 0x00001560}, false, al, "al r2 0x00001560", "al_r2_0x00001560"},
+     {{al, r2, 0x00002ac0}, false, al, "al r2 0x00002ac0", "al_r2_0x00002ac0"},
+     {{al, r2, 0x00005580}, false, al, "al r2 0x00005580", "al_r2_0x00005580"},
+     {{al, r2, 0x0000ab00}, false, al, "al r2 0x0000ab00", "al_r2_0x0000ab00"},
+     {{al, r2, 0x00015600}, false, al, "al r2 0x00015600", "al_r2_0x00015600"},
+     {{al, r2, 0x0002ac00}, false, al, "al r2 0x0002ac00", "al_r2_0x0002ac00"},
+     {{al, r2, 0x00055800}, false, al, "al r2 0x00055800", "al_r2_0x00055800"},
+     {{al, r2, 0x000ab000}, false, al, "al r2 0x000ab000", "al_r2_0x000ab000"},
+     {{al, r2, 0x00156000}, false, al, "al r2 0x00156000", "al_r2_0x00156000"},
+     {{al, r2, 0x002ac000}, false, al, "al r2 0x002ac000", "al_r2_0x002ac000"},
+     {{al, r2, 0x00558000}, false, al, "al r2 0x00558000", "al_r2_0x00558000"},
+     {{al, r2, 0x00ab0000}, false, al, "al r2 0x00ab0000", "al_r2_0x00ab0000"},
+     {{al, r2, 0x01560000}, false, al, "al r2 0x01560000", "al_r2_0x01560000"},
+     {{al, r2, 0x02ac0000}, false, al, "al r2 0x02ac0000", "al_r2_0x02ac0000"},
+     {{al, r2, 0x05580000}, false, al, "al r2 0x05580000", "al_r2_0x05580000"},
+     {{al, r2, 0x0ab00000}, false, al, "al r2 0x0ab00000", "al_r2_0x0ab00000"},
+     {{al, r2, 0x15600000}, false, al, "al r2 0x15600000", "al_r2_0x15600000"},
+     {{al, r2, 0x2ac00000}, false, al, "al r2 0x2ac00000", "al_r2_0x2ac00000"},
+     {{al, r2, 0x55800000}, false, al, "al r2 0x55800000", "al_r2_0x55800000"},
+     {{al, r2, 0xab000000}, false, al, "al r2 0xab000000", "al_r2_0xab000000"},
+     {{al, r2, 0x000000ab}, false, al, "al r2 0x000000ab", "al_r2_0x000000ab"},
+     {{al, r2, 0x00ab00ab}, false, al, "al r2 0x00ab00ab", "al_r2_0x00ab00ab"},
+     {{al, r2, 0xab00ab00}, false, al, "al r2 0xab00ab00", "al_r2_0xab00ab00"},
+     {{al, r2, 0xabababab}, false, al, "al r2 0xabababab", "al_r2_0xabababab"},
+     {{al, r3, 0x000001fe}, false, al, "al r3 0x000001fe", "al_r3_0x000001fe"},
+     {{al, r3, 0x000003fc}, false, al, "al r3 0x000003fc", "al_r3_0x000003fc"},
+     {{al, r3, 0x000007f8}, false, al, "al r3 0x000007f8", "al_r3_0x000007f8"},
+     {{al, r3, 0x00000ff0}, false, al, "al r3 0x00000ff0", "al_r3_0x00000ff0"},
+     {{al, r3, 0x00001fe0}, false, al, "al r3 0x00001fe0", "al_r3_0x00001fe0"},
+     {{al, r3, 0x00003fc0}, false, al, "al r3 0x00003fc0", "al_r3_0x00003fc0"},
+     {{al, r3, 0x00007f80}, false, al, "al r3 0x00007f80", "al_r3_0x00007f80"},
+     {{al, r3, 0x0000ff00}, false, al, "al r3 0x0000ff00", "al_r3_0x0000ff00"},
+     {{al, r3, 0x0001fe00}, false, al, "al r3 0x0001fe00", "al_r3_0x0001fe00"},
+     {{al, r3, 0x0003fc00}, false, al, "al r3 0x0003fc00", "al_r3_0x0003fc00"},
+     {{al, r3, 0x0007f800}, false, al, "al r3 0x0007f800", "al_r3_0x0007f800"},
+     {{al, r3, 0x000ff000}, false, al, "al r3 0x000ff000", "al_r3_0x000ff000"},
+     {{al, r3, 0x001fe000}, false, al, "al r3 0x001fe000", "al_r3_0x001fe000"},
+     {{al, r3, 0x003fc000}, false, al, "al r3 0x003fc000", "al_r3_0x003fc000"},
+     {{al, r3, 0x007f8000}, false, al, "al r3 0x007f8000", "al_r3_0x007f8000"},
+     {{al, r3, 0x00ff0000}, false, al, "al r3 0x00ff0000", "al_r3_0x00ff0000"},
+     {{al, r3, 0x01fe0000}, false, al, "al r3 0x01fe0000", "al_r3_0x01fe0000"},
+     {{al, r3, 0x03fc0000}, false, al, "al r3 0x03fc0000", "al_r3_0x03fc0000"},
+     {{al, r3, 0x07f80000}, false, al, "al r3 0x07f80000", "al_r3_0x07f80000"},
+     {{al, r3, 0x0ff00000}, false, al, "al r3 0x0ff00000", "al_r3_0x0ff00000"},
+     {{al, r3, 0x1fe00000}, false, al, "al r3 0x1fe00000", "al_r3_0x1fe00000"},
+     {{al, r3, 0x3fc00000}, false, al, "al r3 0x3fc00000", "al_r3_0x3fc00000"},
+     {{al, r3, 0x7f800000}, false, al, "al r3 0x7f800000", "al_r3_0x7f800000"},
+     {{al, r3, 0xff000000}, false, al, "al r3 0xff000000", "al_r3_0xff000000"},
+     {{al, r3, 0x000000ff}, false, al, "al r3 0x000000ff", "al_r3_0x000000ff"},
+     {{al, r3, 0x00ff00ff}, false, al, "al r3 0x00ff00ff", "al_r3_0x00ff00ff"},
+     {{al, r3, 0xff00ff00}, false, al, "al r3 0xff00ff00", "al_r3_0xff00ff00"},
+     {{al, r3, 0xffffffff}, false, al, "al r3 0xffffffff", "al_r3_0xffffffff"},
+     {{al, r3, 0x00000156}, false, al, "al r3 0x00000156", "al_r3_0x00000156"},
+     {{al, r3, 0x000002ac}, false, al, "al r3 0x000002ac", "al_r3_0x000002ac"},
+     {{al, r3, 0x00000558}, false, al, "al r3 0x00000558", "al_r3_0x00000558"},
+     {{al, r3, 0x00000ab0}, false, al, "al r3 0x00000ab0", "al_r3_0x00000ab0"},
+     {{al, r3, 0x00001560}, false, al, "al r3 0x00001560", "al_r3_0x00001560"},
+     {{al, r3, 0x00002ac0}, false, al, "al r3 0x00002ac0", "al_r3_0x00002ac0"},
+     {{al, r3, 0x00005580}, false, al, "al r3 0x00005580", "al_r3_0x00005580"},
+     {{al, r3, 0x0000ab00}, false, al, "al r3 0x0000ab00", "al_r3_0x0000ab00"},
+     {{al, r3, 0x00015600}, false, al, "al r3 0x00015600", "al_r3_0x00015600"},
+     {{al, r3, 0x0002ac00}, false, al, "al r3 0x0002ac00", "al_r3_0x0002ac00"},
+     {{al, r3, 0x00055800}, false, al, "al r3 0x00055800", "al_r3_0x00055800"},
+     {{al, r3, 0x000ab000}, false, al, "al r3 0x000ab000", "al_r3_0x000ab000"},
+     {{al, r3, 0x00156000}, false, al, "al r3 0x00156000", "al_r3_0x00156000"},
+     {{al, r3, 0x002ac000}, false, al, "al r3 0x002ac000", "al_r3_0x002ac000"},
+     {{al, r3, 0x00558000}, false, al, "al r3 0x00558000", "al_r3_0x00558000"},
+     {{al, r3, 0x00ab0000}, false, al, "al r3 0x00ab0000", "al_r3_0x00ab0000"},
+     {{al, r3, 0x01560000}, false, al, "al r3 0x01560000", "al_r3_0x01560000"},
+     {{al, r3, 0x02ac0000}, false, al, "al r3 0x02ac0000", "al_r3_0x02ac0000"},
+     {{al, r3, 0x05580000}, false, al, "al r3 0x05580000", "al_r3_0x05580000"},
+     {{al, r3, 0x0ab00000}, false, al, "al r3 0x0ab00000", "al_r3_0x0ab00000"},
+     {{al, r3, 0x15600000}, false, al, "al r3 0x15600000", "al_r3_0x15600000"},
+     {{al, r3, 0x2ac00000}, false, al, "al r3 0x2ac00000", "al_r3_0x2ac00000"},
+     {{al, r3, 0x55800000}, false, al, "al r3 0x55800000", "al_r3_0x55800000"},
+     {{al, r3, 0xab000000}, false, al, "al r3 0xab000000", "al_r3_0xab000000"},
+     {{al, r3, 0x000000ab}, false, al, "al r3 0x000000ab", "al_r3_0x000000ab"},
+     {{al, r3, 0x00ab00ab}, false, al, "al r3 0x00ab00ab", "al_r3_0x00ab00ab"},
+     {{al, r3, 0xab00ab00}, false, al, "al r3 0xab00ab00", "al_r3_0xab00ab00"},
+     {{al, r3, 0xabababab}, false, al, "al r3 0xabababab", "al_r3_0xabababab"},
+     {{al, r4, 0x000001fe}, false, al, "al r4 0x000001fe", "al_r4_0x000001fe"},
+     {{al, r4, 0x000003fc}, false, al, "al r4 0x000003fc", "al_r4_0x000003fc"},
+     {{al, r4, 0x000007f8}, false, al, "al r4 0x000007f8", "al_r4_0x000007f8"},
+     {{al, r4, 0x00000ff0}, false, al, "al r4 0x00000ff0", "al_r4_0x00000ff0"},
+     {{al, r4, 0x00001fe0}, false, al, "al r4 0x00001fe0", "al_r4_0x00001fe0"},
+     {{al, r4, 0x00003fc0}, false, al, "al r4 0x00003fc0", "al_r4_0x00003fc0"},
+     {{al, r4, 0x00007f80}, false, al, "al r4 0x00007f80", "al_r4_0x00007f80"},
+     {{al, r4, 0x0000ff00}, false, al, "al r4 0x0000ff00", "al_r4_0x0000ff00"},
+     {{al, r4, 0x0001fe00}, false, al, "al r4 0x0001fe00", "al_r4_0x0001fe00"},
+     {{al, r4, 0x0003fc00}, false, al, "al r4 0x0003fc00", "al_r4_0x0003fc00"},
+     {{al, r4, 0x0007f800}, false, al, "al r4 0x0007f800", "al_r4_0x0007f800"},
+     {{al, r4, 0x000ff000}, false, al, "al r4 0x000ff000", "al_r4_0x000ff000"},
+     {{al, r4, 0x001fe000}, false, al, "al r4 0x001fe000", "al_r4_0x001fe000"},
+     {{al, r4, 0x003fc000}, false, al, "al r4 0x003fc000", "al_r4_0x003fc000"},
+     {{al, r4, 0x007f8000}, false, al, "al r4 0x007f8000", "al_r4_0x007f8000"},
+     {{al, r4, 0x00ff0000}, false, al, "al r4 0x00ff0000", "al_r4_0x00ff0000"},
+     {{al, r4, 0x01fe0000}, false, al, "al r4 0x01fe0000", "al_r4_0x01fe0000"},
+     {{al, r4, 0x03fc0000}, false, al, "al r4 0x03fc0000", "al_r4_0x03fc0000"},
+     {{al, r4, 0x07f80000}, false, al, "al r4 0x07f80000", "al_r4_0x07f80000"},
+     {{al, r4, 0x0ff00000}, false, al, "al r4 0x0ff00000", "al_r4_0x0ff00000"},
+     {{al, r4, 0x1fe00000}, false, al, "al r4 0x1fe00000", "al_r4_0x1fe00000"},
+     {{al, r4, 0x3fc00000}, false, al, "al r4 0x3fc00000", "al_r4_0x3fc00000"},
+     {{al, r4, 0x7f800000}, false, al, "al r4 0x7f800000", "al_r4_0x7f800000"},
+     {{al, r4, 0xff000000}, false, al, "al r4 0xff000000", "al_r4_0xff000000"},
+     {{al, r4, 0x000000ff}, false, al, "al r4 0x000000ff", "al_r4_0x000000ff"},
+     {{al, r4, 0x00ff00ff}, false, al, "al r4 0x00ff00ff", "al_r4_0x00ff00ff"},
+     {{al, r4, 0xff00ff00}, false, al, "al r4 0xff00ff00", "al_r4_0xff00ff00"},
+     {{al, r4, 0xffffffff}, false, al, "al r4 0xffffffff", "al_r4_0xffffffff"},
+     {{al, r4, 0x00000156}, false, al, "al r4 0x00000156", "al_r4_0x00000156"},
+     {{al, r4, 0x000002ac}, false, al, "al r4 0x000002ac", "al_r4_0x000002ac"},
+     {{al, r4, 0x00000558}, false, al, "al r4 0x00000558", "al_r4_0x00000558"},
+     {{al, r4, 0x00000ab0}, false, al, "al r4 0x00000ab0", "al_r4_0x00000ab0"},
+     {{al, r4, 0x00001560}, false, al, "al r4 0x00001560", "al_r4_0x00001560"},
+     {{al, r4, 0x00002ac0}, false, al, "al r4 0x00002ac0", "al_r4_0x00002ac0"},
+     {{al, r4, 0x00005580}, false, al, "al r4 0x00005580", "al_r4_0x00005580"},
+     {{al, r4, 0x0000ab00}, false, al, "al r4 0x0000ab00", "al_r4_0x0000ab00"},
+     {{al, r4, 0x00015600}, false, al, "al r4 0x00015600", "al_r4_0x00015600"},
+     {{al, r4, 0x0002ac00}, false, al, "al r4 0x0002ac00", "al_r4_0x0002ac00"},
+     {{al, r4, 0x00055800}, false, al, "al r4 0x00055800", "al_r4_0x00055800"},
+     {{al, r4, 0x000ab000}, false, al, "al r4 0x000ab000", "al_r4_0x000ab000"},
+     {{al, r4, 0x00156000}, false, al, "al r4 0x00156000", "al_r4_0x00156000"},
+     {{al, r4, 0x002ac000}, false, al, "al r4 0x002ac000", "al_r4_0x002ac000"},
+     {{al, r4, 0x00558000}, false, al, "al r4 0x00558000", "al_r4_0x00558000"},
+     {{al, r4, 0x00ab0000}, false, al, "al r4 0x00ab0000", "al_r4_0x00ab0000"},
+     {{al, r4, 0x01560000}, false, al, "al r4 0x01560000", "al_r4_0x01560000"},
+     {{al, r4, 0x02ac0000}, false, al, "al r4 0x02ac0000", "al_r4_0x02ac0000"},
+     {{al, r4, 0x05580000}, false, al, "al r4 0x05580000", "al_r4_0x05580000"},
+     {{al, r4, 0x0ab00000}, false, al, "al r4 0x0ab00000", "al_r4_0x0ab00000"},
+     {{al, r4, 0x15600000}, false, al, "al r4 0x15600000", "al_r4_0x15600000"},
+     {{al, r4, 0x2ac00000}, false, al, "al r4 0x2ac00000", "al_r4_0x2ac00000"},
+     {{al, r4, 0x55800000}, false, al, "al r4 0x55800000", "al_r4_0x55800000"},
+     {{al, r4, 0xab000000}, false, al, "al r4 0xab000000", "al_r4_0xab000000"},
+     {{al, r4, 0x000000ab}, false, al, "al r4 0x000000ab", "al_r4_0x000000ab"},
+     {{al, r4, 0x00ab00ab}, false, al, "al r4 0x00ab00ab", "al_r4_0x00ab00ab"},
+     {{al, r4, 0xab00ab00}, false, al, "al r4 0xab00ab00", "al_r4_0xab00ab00"},
+     {{al, r4, 0xabababab}, false, al, "al r4 0xabababab", "al_r4_0xabababab"},
+     {{al, r5, 0x000001fe}, false, al, "al r5 0x000001fe", "al_r5_0x000001fe"},
+     {{al, r5, 0x000003fc}, false, al, "al r5 0x000003fc", "al_r5_0x000003fc"},
+     {{al, r5, 0x000007f8}, false, al, "al r5 0x000007f8", "al_r5_0x000007f8"},
+     {{al, r5, 0x00000ff0}, false, al, "al r5 0x00000ff0", "al_r5_0x00000ff0"},
+     {{al, r5, 0x00001fe0}, false, al, "al r5 0x00001fe0", "al_r5_0x00001fe0"},
+     {{al, r5, 0x00003fc0}, false, al, "al r5 0x00003fc0", "al_r5_0x00003fc0"},
+     {{al, r5, 0x00007f80}, false, al, "al r5 0x00007f80", "al_r5_0x00007f80"},
+     {{al, r5, 0x0000ff00}, false, al, "al r5 0x0000ff00", "al_r5_0x0000ff00"},
+     {{al, r5, 0x0001fe00}, false, al, "al r5 0x0001fe00", "al_r5_0x0001fe00"},
+     {{al, r5, 0x0003fc00}, false, al, "al r5 0x0003fc00", "al_r5_0x0003fc00"},
+     {{al, r5, 0x0007f800}, false, al, "al r5 0x0007f800", "al_r5_0x0007f800"},
+     {{al, r5, 0x000ff000}, false, al, "al r5 0x000ff000", "al_r5_0x000ff000"},
+     {{al, r5, 0x001fe000}, false, al, "al r5 0x001fe000", "al_r5_0x001fe000"},
+     {{al, r5, 0x003fc000}, false, al, "al r5 0x003fc000", "al_r5_0x003fc000"},
+     {{al, r5, 0x007f8000}, false, al, "al r5 0x007f8000", "al_r5_0x007f8000"},
+     {{al, r5, 0x00ff0000}, false, al, "al r5 0x00ff0000", "al_r5_0x00ff0000"},
+     {{al, r5, 0x01fe0000}, false, al, "al r5 0x01fe0000", "al_r5_0x01fe0000"},
+     {{al, r5, 0x03fc0000}, false, al, "al r5 0x03fc0000", "al_r5_0x03fc0000"},
+     {{al, r5, 0x07f80000}, false, al, "al r5 0x07f80000", "al_r5_0x07f80000"},
+     {{al, r5, 0x0ff00000}, false, al, "al r5 0x0ff00000", "al_r5_0x0ff00000"},
+     {{al, r5, 0x1fe00000}, false, al, "al r5 0x1fe00000", "al_r5_0x1fe00000"},
+     {{al, r5, 0x3fc00000}, false, al, "al r5 0x3fc00000", "al_r5_0x3fc00000"},
+     {{al, r5, 0x7f800000}, false, al, "al r5 0x7f800000", "al_r5_0x7f800000"},
+     {{al, r5, 0xff000000}, false, al, "al r5 0xff000000", "al_r5_0xff000000"},
+     {{al, r5, 0x000000ff}, false, al, "al r5 0x000000ff", "al_r5_0x000000ff"},
+     {{al, r5, 0x00ff00ff}, false, al, "al r5 0x00ff00ff", "al_r5_0x00ff00ff"},
+     {{al, r5, 0xff00ff00}, false, al, "al r5 0xff00ff00", "al_r5_0xff00ff00"},
+     {{al, r5, 0xffffffff}, false, al, "al r5 0xffffffff", "al_r5_0xffffffff"},
+     {{al, r5, 0x00000156}, false, al, "al r5 0x00000156", "al_r5_0x00000156"},
+     {{al, r5, 0x000002ac}, false, al, "al r5 0x000002ac", "al_r5_0x000002ac"},
+     {{al, r5, 0x00000558}, false, al, "al r5 0x00000558", "al_r5_0x00000558"},
+     {{al, r5, 0x00000ab0}, false, al, "al r5 0x00000ab0", "al_r5_0x00000ab0"},
+     {{al, r5, 0x00001560}, false, al, "al r5 0x00001560", "al_r5_0x00001560"},
+     {{al, r5, 0x00002ac0}, false, al, "al r5 0x00002ac0", "al_r5_0x00002ac0"},
+     {{al, r5, 0x00005580}, false, al, "al r5 0x00005580", "al_r5_0x00005580"},
+     {{al, r5, 0x0000ab00}, false, al, "al r5 0x0000ab00", "al_r5_0x0000ab00"},
+     {{al, r5, 0x00015600}, false, al, "al r5 0x00015600", "al_r5_0x00015600"},
+     {{al, r5, 0x0002ac00}, false, al, "al r5 0x0002ac00", "al_r5_0x0002ac00"},
+     {{al, r5, 0x00055800}, false, al, "al r5 0x00055800", "al_r5_0x00055800"},
+     {{al, r5, 0x000ab000}, false, al, "al r5 0x000ab000", "al_r5_0x000ab000"},
+     {{al, r5, 0x00156000}, false, al, "al r5 0x00156000", "al_r5_0x00156000"},
+     {{al, r5, 0x002ac000}, false, al, "al r5 0x002ac000", "al_r5_0x002ac000"},
+     {{al, r5, 0x00558000}, false, al, "al r5 0x00558000", "al_r5_0x00558000"},
+     {{al, r5, 0x00ab0000}, false, al, "al r5 0x00ab0000", "al_r5_0x00ab0000"},
+     {{al, r5, 0x01560000}, false, al, "al r5 0x01560000", "al_r5_0x01560000"},
+     {{al, r5, 0x02ac0000}, false, al, "al r5 0x02ac0000", "al_r5_0x02ac0000"},
+     {{al, r5, 0x05580000}, false, al, "al r5 0x05580000", "al_r5_0x05580000"},
+     {{al, r5, 0x0ab00000}, false, al, "al r5 0x0ab00000", "al_r5_0x0ab00000"},
+     {{al, r5, 0x15600000}, false, al, "al r5 0x15600000", "al_r5_0x15600000"},
+     {{al, r5, 0x2ac00000}, false, al, "al r5 0x2ac00000", "al_r5_0x2ac00000"},
+     {{al, r5, 0x55800000}, false, al, "al r5 0x55800000", "al_r5_0x55800000"},
+     {{al, r5, 0xab000000}, false, al, "al r5 0xab000000", "al_r5_0xab000000"},
+     {{al, r5, 0x000000ab}, false, al, "al r5 0x000000ab", "al_r5_0x000000ab"},
+     {{al, r5, 0x00ab00ab}, false, al, "al r5 0x00ab00ab", "al_r5_0x00ab00ab"},
+     {{al, r5, 0xab00ab00}, false, al, "al r5 0xab00ab00", "al_r5_0xab00ab00"},
+     {{al, r5, 0xabababab}, false, al, "al r5 0xabababab", "al_r5_0xabababab"},
+     {{al, r6, 0x000001fe}, false, al, "al r6 0x000001fe", "al_r6_0x000001fe"},
+     {{al, r6, 0x000003fc}, false, al, "al r6 0x000003fc", "al_r6_0x000003fc"},
+     {{al, r6, 0x000007f8}, false, al, "al r6 0x000007f8", "al_r6_0x000007f8"},
+     {{al, r6, 0x00000ff0}, false, al, "al r6 0x00000ff0", "al_r6_0x00000ff0"},
+     {{al, r6, 0x00001fe0}, false, al, "al r6 0x00001fe0", "al_r6_0x00001fe0"},
+     {{al, r6, 0x00003fc0}, false, al, "al r6 0x00003fc0", "al_r6_0x00003fc0"},
+     {{al, r6, 0x00007f80}, false, al, "al r6 0x00007f80", "al_r6_0x00007f80"},
+     {{al, r6, 0x0000ff00}, false, al, "al r6 0x0000ff00", "al_r6_0x0000ff00"},
+     {{al, r6, 0x0001fe00}, false, al, "al r6 0x0001fe00", "al_r6_0x0001fe00"},
+     {{al, r6, 0x0003fc00}, false, al, "al r6 0x0003fc00", "al_r6_0x0003fc00"},
+     {{al, r6, 0x0007f800}, false, al, "al r6 0x0007f800", "al_r6_0x0007f800"},
+     {{al, r6, 0x000ff000}, false, al, "al r6 0x000ff000", "al_r6_0x000ff000"},
+     {{al, r6, 0x001fe000}, false, al, "al r6 0x001fe000", "al_r6_0x001fe000"},
+     {{al, r6, 0x003fc000}, false, al, "al r6 0x003fc000", "al_r6_0x003fc000"},
+     {{al, r6, 0x007f8000}, false, al, "al r6 0x007f8000", "al_r6_0x007f8000"},
+     {{al, r6, 0x00ff0000}, false, al, "al r6 0x00ff0000", "al_r6_0x00ff0000"},
+     {{al, r6, 0x01fe0000}, false, al, "al r6 0x01fe0000", "al_r6_0x01fe0000"},
+     {{al, r6, 0x03fc0000}, false, al, "al r6 0x03fc0000", "al_r6_0x03fc0000"},
+     {{al, r6, 0x07f80000}, false, al, "al r6 0x07f80000", "al_r6_0x07f80000"},
+     {{al, r6, 0x0ff00000}, false, al, "al r6 0x0ff00000", "al_r6_0x0ff00000"},
+     {{al, r6, 0x1fe00000}, false, al, "al r6 0x1fe00000", "al_r6_0x1fe00000"},
+     {{al, r6, 0x3fc00000}, false, al, "al r6 0x3fc00000", "al_r6_0x3fc00000"},
+     {{al, r6, 0x7f800000}, false, al, "al r6 0x7f800000", "al_r6_0x7f800000"},
+     {{al, r6, 0xff000000}, false, al, "al r6 0xff000000", "al_r6_0xff000000"},
+     {{al, r6, 0x000000ff}, false, al, "al r6 0x000000ff", "al_r6_0x000000ff"},
+     {{al, r6, 0x00ff00ff}, false, al, "al r6 0x00ff00ff", "al_r6_0x00ff00ff"},
+     {{al, r6, 0xff00ff00}, false, al, "al r6 0xff00ff00", "al_r6_0xff00ff00"},
+     {{al, r6, 0xffffffff}, false, al, "al r6 0xffffffff", "al_r6_0xffffffff"},
+     {{al, r6, 0x00000156}, false, al, "al r6 0x00000156", "al_r6_0x00000156"},
+     {{al, r6, 0x000002ac}, false, al, "al r6 0x000002ac", "al_r6_0x000002ac"},
+     {{al, r6, 0x00000558}, false, al, "al r6 0x00000558", "al_r6_0x00000558"},
+     {{al, r6, 0x00000ab0}, false, al, "al r6 0x00000ab0", "al_r6_0x00000ab0"},
+     {{al, r6, 0x00001560}, false, al, "al r6 0x00001560", "al_r6_0x00001560"},
+     {{al, r6, 0x00002ac0}, false, al, "al r6 0x00002ac0", "al_r6_0x00002ac0"},
+     {{al, r6, 0x00005580}, false, al, "al r6 0x00005580", "al_r6_0x00005580"},
+     {{al, r6, 0x0000ab00}, false, al, "al r6 0x0000ab00", "al_r6_0x0000ab00"},
+     {{al, r6, 0x00015600}, false, al, "al r6 0x00015600", "al_r6_0x00015600"},
+     {{al, r6, 0x0002ac00}, false, al, "al r6 0x0002ac00", "al_r6_0x0002ac00"},
+     {{al, r6, 0x00055800}, false, al, "al r6 0x00055800", "al_r6_0x00055800"},
+     {{al, r6, 0x000ab000}, false, al, "al r6 0x000ab000", "al_r6_0x000ab000"},
+     {{al, r6, 0x00156000}, false, al, "al r6 0x00156000", "al_r6_0x00156000"},
+     {{al, r6, 0x002ac000}, false, al, "al r6 0x002ac000", "al_r6_0x002ac000"},
+     {{al, r6, 0x00558000}, false, al, "al r6 0x00558000", "al_r6_0x00558000"},
+     {{al, r6, 0x00ab0000}, false, al, "al r6 0x00ab0000", "al_r6_0x00ab0000"},
+     {{al, r6, 0x01560000}, false, al, "al r6 0x01560000", "al_r6_0x01560000"},
+     {{al, r6, 0x02ac0000}, false, al, "al r6 0x02ac0000", "al_r6_0x02ac0000"},
+     {{al, r6, 0x05580000}, false, al, "al r6 0x05580000", "al_r6_0x05580000"},
+     {{al, r6, 0x0ab00000}, false, al, "al r6 0x0ab00000", "al_r6_0x0ab00000"},
+     {{al, r6, 0x15600000}, false, al, "al r6 0x15600000", "al_r6_0x15600000"},
+     {{al, r6, 0x2ac00000}, false, al, "al r6 0x2ac00000", "al_r6_0x2ac00000"},
+     {{al, r6, 0x55800000}, false, al, "al r6 0x55800000", "al_r6_0x55800000"},
+     {{al, r6, 0xab000000}, false, al, "al r6 0xab000000", "al_r6_0xab000000"},
+     {{al, r6, 0x000000ab}, false, al, "al r6 0x000000ab", "al_r6_0x000000ab"},
+     {{al, r6, 0x00ab00ab}, false, al, "al r6 0x00ab00ab", "al_r6_0x00ab00ab"},
+     {{al, r6, 0xab00ab00}, false, al, "al r6 0xab00ab00", "al_r6_0xab00ab00"},
+     {{al, r6, 0xabababab}, false, al, "al r6 0xabababab", "al_r6_0xabababab"},
+     {{al, r7, 0x000001fe}, false, al, "al r7 0x000001fe", "al_r7_0x000001fe"},
+     {{al, r7, 0x000003fc}, false, al, "al r7 0x000003fc", "al_r7_0x000003fc"},
+     {{al, r7, 0x000007f8}, false, al, "al r7 0x000007f8", "al_r7_0x000007f8"},
+     {{al, r7, 0x00000ff0}, false, al, "al r7 0x00000ff0", "al_r7_0x00000ff0"},
+     {{al, r7, 0x00001fe0}, false, al, "al r7 0x00001fe0", "al_r7_0x00001fe0"},
+     {{al, r7, 0x00003fc0}, false, al, "al r7 0x00003fc0", "al_r7_0x00003fc0"},
+     {{al, r7, 0x00007f80}, false, al, "al r7 0x00007f80", "al_r7_0x00007f80"},
+     {{al, r7, 0x0000ff00}, false, al, "al r7 0x0000ff00", "al_r7_0x0000ff00"},
+     {{al, r7, 0x0001fe00}, false, al, "al r7 0x0001fe00", "al_r7_0x0001fe00"},
+     {{al, r7, 0x0003fc00}, false, al, "al r7 0x0003fc00", "al_r7_0x0003fc00"},
+     {{al, r7, 0x0007f800}, false, al, "al r7 0x0007f800", "al_r7_0x0007f800"},
+     {{al, r7, 0x000ff000}, false, al, "al r7 0x000ff000", "al_r7_0x000ff000"},
+     {{al, r7, 0x001fe000}, false, al, "al r7 0x001fe000", "al_r7_0x001fe000"},
+     {{al, r7, 0x003fc000}, false, al, "al r7 0x003fc000", "al_r7_0x003fc000"},
+     {{al, r7, 0x007f8000}, false, al, "al r7 0x007f8000", "al_r7_0x007f8000"},
+     {{al, r7, 0x00ff0000}, false, al, "al r7 0x00ff0000", "al_r7_0x00ff0000"},
+     {{al, r7, 0x01fe0000}, false, al, "al r7 0x01fe0000", "al_r7_0x01fe0000"},
+     {{al, r7, 0x03fc0000}, false, al, "al r7 0x03fc0000", "al_r7_0x03fc0000"},
+     {{al, r7, 0x07f80000}, false, al, "al r7 0x07f80000", "al_r7_0x07f80000"},
+     {{al, r7, 0x0ff00000}, false, al, "al r7 0x0ff00000", "al_r7_0x0ff00000"},
+     {{al, r7, 0x1fe00000}, false, al, "al r7 0x1fe00000", "al_r7_0x1fe00000"},
+     {{al, r7, 0x3fc00000}, false, al, "al r7 0x3fc00000", "al_r7_0x3fc00000"},
+     {{al, r7, 0x7f800000}, false, al, "al r7 0x7f800000", "al_r7_0x7f800000"},
+     {{al, r7, 0xff000000}, false, al, "al r7 0xff000000", "al_r7_0xff000000"},
+     {{al, r7, 0x000000ff}, false, al, "al r7 0x000000ff", "al_r7_0x000000ff"},
+     {{al, r7, 0x00ff00ff}, false, al, "al r7 0x00ff00ff", "al_r7_0x00ff00ff"},
+     {{al, r7, 0xff00ff00}, false, al, "al r7 0xff00ff00", "al_r7_0xff00ff00"},
+     {{al, r7, 0xffffffff}, false, al, "al r7 0xffffffff", "al_r7_0xffffffff"},
+     {{al, r7, 0x00000156}, false, al, "al r7 0x00000156", "al_r7_0x00000156"},
+     {{al, r7, 0x000002ac}, false, al, "al r7 0x000002ac", "al_r7_0x000002ac"},
+     {{al, r7, 0x00000558}, false, al, "al r7 0x00000558", "al_r7_0x00000558"},
+     {{al, r7, 0x00000ab0}, false, al, "al r7 0x00000ab0", "al_r7_0x00000ab0"},
+     {{al, r7, 0x00001560}, false, al, "al r7 0x00001560", "al_r7_0x00001560"},
+     {{al, r7, 0x00002ac0}, false, al, "al r7 0x00002ac0", "al_r7_0x00002ac0"},
+     {{al, r7, 0x00005580}, false, al, "al r7 0x00005580", "al_r7_0x00005580"},
+     {{al, r7, 0x0000ab00}, false, al, "al r7 0x0000ab00", "al_r7_0x0000ab00"},
+     {{al, r7, 0x00015600}, false, al, "al r7 0x00015600", "al_r7_0x00015600"},
+     {{al, r7, 0x0002ac00}, false, al, "al r7 0x0002ac00", "al_r7_0x0002ac00"},
+     {{al, r7, 0x00055800}, false, al, "al r7 0x00055800", "al_r7_0x00055800"},
+     {{al, r7, 0x000ab000}, false, al, "al r7 0x000ab000", "al_r7_0x000ab000"},
+     {{al, r7, 0x00156000}, false, al, "al r7 0x00156000", "al_r7_0x00156000"},
+     {{al, r7, 0x002ac000}, false, al, "al r7 0x002ac000", "al_r7_0x002ac000"},
+     {{al, r7, 0x00558000}, false, al, "al r7 0x00558000", "al_r7_0x00558000"},
+     {{al, r7, 0x00ab0000}, false, al, "al r7 0x00ab0000", "al_r7_0x00ab0000"},
+     {{al, r7, 0x01560000}, false, al, "al r7 0x01560000", "al_r7_0x01560000"},
+     {{al, r7, 0x02ac0000}, false, al, "al r7 0x02ac0000", "al_r7_0x02ac0000"},
+     {{al, r7, 0x05580000}, false, al, "al r7 0x05580000", "al_r7_0x05580000"},
+     {{al, r7, 0x0ab00000}, false, al, "al r7 0x0ab00000", "al_r7_0x0ab00000"},
+     {{al, r7, 0x15600000}, false, al, "al r7 0x15600000", "al_r7_0x15600000"},
+     {{al, r7, 0x2ac00000}, false, al, "al r7 0x2ac00000", "al_r7_0x2ac00000"},
+     {{al, r7, 0x55800000}, false, al, "al r7 0x55800000", "al_r7_0x55800000"},
+     {{al, r7, 0xab000000}, false, al, "al r7 0xab000000", "al_r7_0xab000000"},
+     {{al, r7, 0x000000ab}, false, al, "al r7 0x000000ab", "al_r7_0x000000ab"},
+     {{al, r7, 0x00ab00ab}, false, al, "al r7 0x00ab00ab", "al_r7_0x00ab00ab"},
+     {{al, r7, 0xab00ab00}, false, al, "al r7 0xab00ab00", "al_r7_0xab00ab00"},
+     {{al, r7, 0xabababab}, false, al, "al r7 0xabababab", "al_r7_0xabababab"},
+     {{al, r8, 0x000001fe}, false, al, "al r8 0x000001fe", "al_r8_0x000001fe"},
+     {{al, r8, 0x000003fc}, false, al, "al r8 0x000003fc", "al_r8_0x000003fc"},
+     {{al, r8, 0x000007f8}, false, al, "al r8 0x000007f8", "al_r8_0x000007f8"},
+     {{al, r8, 0x00000ff0}, false, al, "al r8 0x00000ff0", "al_r8_0x00000ff0"},
+     {{al, r8, 0x00001fe0}, false, al, "al r8 0x00001fe0", "al_r8_0x00001fe0"},
+     {{al, r8, 0x00003fc0}, false, al, "al r8 0x00003fc0", "al_r8_0x00003fc0"},
+     {{al, r8, 0x00007f80}, false, al, "al r8 0x00007f80", "al_r8_0x00007f80"},
+     {{al, r8, 0x0000ff00}, false, al, "al r8 0x0000ff00", "al_r8_0x0000ff00"},
+     {{al, r8, 0x0001fe00}, false, al, "al r8 0x0001fe00", "al_r8_0x0001fe00"},
+     {{al, r8, 0x0003fc00}, false, al, "al r8 0x0003fc00", "al_r8_0x0003fc00"},
+     {{al, r8, 0x0007f800}, false, al, "al r8 0x0007f800", "al_r8_0x0007f800"},
+     {{al, r8, 0x000ff000}, false, al, "al r8 0x000ff000", "al_r8_0x000ff000"},
+     {{al, r8, 0x001fe000}, false, al, "al r8 0x001fe000", "al_r8_0x001fe000"},
+     {{al, r8, 0x003fc000}, false, al, "al r8 0x003fc000", "al_r8_0x003fc000"},
+     {{al, r8, 0x007f8000}, false, al, "al r8 0x007f8000", "al_r8_0x007f8000"},
+     {{al, r8, 0x00ff0000}, false, al, "al r8 0x00ff0000", "al_r8_0x00ff0000"},
+     {{al, r8, 0x01fe0000}, false, al, "al r8 0x01fe0000", "al_r8_0x01fe0000"},
+     {{al, r8, 0x03fc0000}, false, al, "al r8 0x03fc0000", "al_r8_0x03fc0000"},
+     {{al, r8, 0x07f80000}, false, al, "al r8 0x07f80000", "al_r8_0x07f80000"},
+     {{al, r8, 0x0ff00000}, false, al, "al r8 0x0ff00000", "al_r8_0x0ff00000"},
+     {{al, r8, 0x1fe00000}, false, al, "al r8 0x1fe00000", "al_r8_0x1fe00000"},
+     {{al, r8, 0x3fc00000}, false, al, "al r8 0x3fc00000", "al_r8_0x3fc00000"},
+     {{al, r8, 0x7f800000}, false, al, "al r8 0x7f800000", "al_r8_0x7f800000"},
+     {{al, r8, 0xff000000}, false, al, "al r8 0xff000000", "al_r8_0xff000000"},
+     {{al, r8, 0x000000ff}, false, al, "al r8 0x000000ff", "al_r8_0x000000ff"},
+     {{al, r8, 0x00ff00ff}, false, al, "al r8 0x00ff00ff", "al_r8_0x00ff00ff"},
+     {{al, r8, 0xff00ff00}, false, al, "al r8 0xff00ff00", "al_r8_0xff00ff00"},
+     {{al, r8, 0xffffffff}, false, al, "al r8 0xffffffff", "al_r8_0xffffffff"},
+     {{al, r8, 0x00000156}, false, al, "al r8 0x00000156", "al_r8_0x00000156"},
+     {{al, r8, 0x000002ac}, false, al, "al r8 0x000002ac", "al_r8_0x000002ac"},
+     {{al, r8, 0x00000558}, false, al, "al r8 0x00000558", "al_r8_0x00000558"},
+     {{al, r8, 0x00000ab0}, false, al, "al r8 0x00000ab0", "al_r8_0x00000ab0"},
+     {{al, r8, 0x00001560}, false, al, "al r8 0x00001560", "al_r8_0x00001560"},
+     {{al, r8, 0x00002ac0}, false, al, "al r8 0x00002ac0", "al_r8_0x00002ac0"},
+     {{al, r8, 0x00005580}, false, al, "al r8 0x00005580", "al_r8_0x00005580"},
+     {{al, r8, 0x0000ab00}, false, al, "al r8 0x0000ab00", "al_r8_0x0000ab00"},
+     {{al, r8, 0x00015600}, false, al, "al r8 0x00015600", "al_r8_0x00015600"},
+     {{al, r8, 0x0002ac00}, false, al, "al r8 0x0002ac00", "al_r8_0x0002ac00"},
+     {{al, r8, 0x00055800}, false, al, "al r8 0x00055800", "al_r8_0x00055800"},
+     {{al, r8, 0x000ab000}, false, al, "al r8 0x000ab000", "al_r8_0x000ab000"},
+     {{al, r8, 0x00156000}, false, al, "al r8 0x00156000", "al_r8_0x00156000"},
+     {{al, r8, 0x002ac000}, false, al, "al r8 0x002ac000", "al_r8_0x002ac000"},
+     {{al, r8, 0x00558000}, false, al, "al r8 0x00558000", "al_r8_0x00558000"},
+     {{al, r8, 0x00ab0000}, false, al, "al r8 0x00ab0000", "al_r8_0x00ab0000"},
+     {{al, r8, 0x01560000}, false, al, "al r8 0x01560000", "al_r8_0x01560000"},
+     {{al, r8, 0x02ac0000}, false, al, "al r8 0x02ac0000", "al_r8_0x02ac0000"},
+     {{al, r8, 0x05580000}, false, al, "al r8 0x05580000", "al_r8_0x05580000"},
+     {{al, r8, 0x0ab00000}, false, al, "al r8 0x0ab00000", "al_r8_0x0ab00000"},
+     {{al, r8, 0x15600000}, false, al, "al r8 0x15600000", "al_r8_0x15600000"},
+     {{al, r8, 0x2ac00000}, false, al, "al r8 0x2ac00000", "al_r8_0x2ac00000"},
+     {{al, r8, 0x55800000}, false, al, "al r8 0x55800000", "al_r8_0x55800000"},
+     {{al, r8, 0xab000000}, false, al, "al r8 0xab000000", "al_r8_0xab000000"},
+     {{al, r8, 0x000000ab}, false, al, "al r8 0x000000ab", "al_r8_0x000000ab"},
+     {{al, r8, 0x00ab00ab}, false, al, "al r8 0x00ab00ab", "al_r8_0x00ab00ab"},
+     {{al, r8, 0xab00ab00}, false, al, "al r8 0xab00ab00", "al_r8_0xab00ab00"},
+     {{al, r8, 0xabababab}, false, al, "al r8 0xabababab", "al_r8_0xabababab"},
+     {{al, r9, 0x000001fe}, false, al, "al r9 0x000001fe", "al_r9_0x000001fe"},
+     {{al, r9, 0x000003fc}, false, al, "al r9 0x000003fc", "al_r9_0x000003fc"},
+     {{al, r9, 0x000007f8}, false, al, "al r9 0x000007f8", "al_r9_0x000007f8"},
+     {{al, r9, 0x00000ff0}, false, al, "al r9 0x00000ff0", "al_r9_0x00000ff0"},
+     {{al, r9, 0x00001fe0}, false, al, "al r9 0x00001fe0", "al_r9_0x00001fe0"},
+     {{al, r9, 0x00003fc0}, false, al, "al r9 0x00003fc0", "al_r9_0x00003fc0"},
+     {{al, r9, 0x00007f80}, false, al, "al r9 0x00007f80", "al_r9_0x00007f80"},
+     {{al, r9, 0x0000ff00}, false, al, "al r9 0x0000ff00", "al_r9_0x0000ff00"},
+     {{al, r9, 0x0001fe00}, false, al, "al r9 0x0001fe00", "al_r9_0x0001fe00"},
+     {{al, r9, 0x0003fc00}, false, al, "al r9 0x0003fc00", "al_r9_0x0003fc00"},
+     {{al, r9, 0x0007f800}, false, al, "al r9 0x0007f800", "al_r9_0x0007f800"},
+     {{al, r9, 0x000ff000}, false, al, "al r9 0x000ff000", "al_r9_0x000ff000"},
+     {{al, r9, 0x001fe000}, false, al, "al r9 0x001fe000", "al_r9_0x001fe000"},
+     {{al, r9, 0x003fc000}, false, al, "al r9 0x003fc000", "al_r9_0x003fc000"},
+     {{al, r9, 0x007f8000}, false, al, "al r9 0x007f8000", "al_r9_0x007f8000"},
+     {{al, r9, 0x00ff0000}, false, al, "al r9 0x00ff0000", "al_r9_0x00ff0000"},
+     {{al, r9, 0x01fe0000}, false, al, "al r9 0x01fe0000", "al_r9_0x01fe0000"},
+     {{al, r9, 0x03fc0000}, false, al, "al r9 0x03fc0000", "al_r9_0x03fc0000"},
+     {{al, r9, 0x07f80000}, false, al, "al r9 0x07f80000", "al_r9_0x07f80000"},
+     {{al, r9, 0x0ff00000}, false, al, "al r9 0x0ff00000", "al_r9_0x0ff00000"},
+     {{al, r9, 0x1fe00000}, false, al, "al r9 0x1fe00000", "al_r9_0x1fe00000"},
+     {{al, r9, 0x3fc00000}, false, al, "al r9 0x3fc00000", "al_r9_0x3fc00000"},
+     {{al, r9, 0x7f800000}, false, al, "al r9 0x7f800000", "al_r9_0x7f800000"},
+     {{al, r9, 0xff000000}, false, al, "al r9 0xff000000", "al_r9_0xff000000"},
+     {{al, r9, 0x000000ff}, false, al, "al r9 0x000000ff", "al_r9_0x000000ff"},
+     {{al, r9, 0x00ff00ff}, false, al, "al r9 0x00ff00ff", "al_r9_0x00ff00ff"},
+     {{al, r9, 0xff00ff00}, false, al, "al r9 0xff00ff00", "al_r9_0xff00ff00"},
+     {{al, r9, 0xffffffff}, false, al, "al r9 0xffffffff", "al_r9_0xffffffff"},
+     {{al, r9, 0x00000156}, false, al, "al r9 0x00000156", "al_r9_0x00000156"},
+     {{al, r9, 0x000002ac}, false, al, "al r9 0x000002ac", "al_r9_0x000002ac"},
+     {{al, r9, 0x00000558}, false, al, "al r9 0x00000558", "al_r9_0x00000558"},
+     {{al, r9, 0x00000ab0}, false, al, "al r9 0x00000ab0", "al_r9_0x00000ab0"},
+     {{al, r9, 0x00001560}, false, al, "al r9 0x00001560", "al_r9_0x00001560"},
+     {{al, r9, 0x00002ac0}, false, al, "al r9 0x00002ac0", "al_r9_0x00002ac0"},
+     {{al, r9, 0x00005580}, false, al, "al r9 0x00005580", "al_r9_0x00005580"},
+     {{al, r9, 0x0000ab00}, false, al, "al r9 0x0000ab00", "al_r9_0x0000ab00"},
+     {{al, r9, 0x00015600}, false, al, "al r9 0x00015600", "al_r9_0x00015600"},
+     {{al, r9, 0x0002ac00}, false, al, "al r9 0x0002ac00", "al_r9_0x0002ac00"},
+     {{al, r9, 0x00055800}, false, al, "al r9 0x00055800", "al_r9_0x00055800"},
+     {{al, r9, 0x000ab000}, false, al, "al r9 0x000ab000", "al_r9_0x000ab000"},
+     {{al, r9, 0x00156000}, false, al, "al r9 0x00156000", "al_r9_0x00156000"},
+     {{al, r9, 0x002ac000}, false, al, "al r9 0x002ac000", "al_r9_0x002ac000"},
+     {{al, r9, 0x00558000}, false, al, "al r9 0x00558000", "al_r9_0x00558000"},
+     {{al, r9, 0x00ab0000}, false, al, "al r9 0x00ab0000", "al_r9_0x00ab0000"},
+     {{al, r9, 0x01560000}, false, al, "al r9 0x01560000", "al_r9_0x01560000"},
+     {{al, r9, 0x02ac0000}, false, al, "al r9 0x02ac0000", "al_r9_0x02ac0000"},
+     {{al, r9, 0x05580000}, false, al, "al r9 0x05580000", "al_r9_0x05580000"},
+     {{al, r9, 0x0ab00000}, false, al, "al r9 0x0ab00000", "al_r9_0x0ab00000"},
+     {{al, r9, 0x15600000}, false, al, "al r9 0x15600000", "al_r9_0x15600000"},
+     {{al, r9, 0x2ac00000}, false, al, "al r9 0x2ac00000", "al_r9_0x2ac00000"},
+     {{al, r9, 0x55800000}, false, al, "al r9 0x55800000", "al_r9_0x55800000"},
+     {{al, r9, 0xab000000}, false, al, "al r9 0xab000000", "al_r9_0xab000000"},
+     {{al, r9, 0x000000ab}, false, al, "al r9 0x000000ab", "al_r9_0x000000ab"},
+     {{al, r9, 0x00ab00ab}, false, al, "al r9 0x00ab00ab", "al_r9_0x00ab00ab"},
+     {{al, r9, 0xab00ab00}, false, al, "al r9 0xab00ab00", "al_r9_0xab00ab00"},
+     {{al, r9, 0xabababab}, false, al, "al r9 0xabababab", "al_r9_0xabababab"},
+     {{al, r10, 0x000001fe},
+      false,
+      al,
+      "al r10 0x000001fe",
+      "al_r10_"
+      "0x000001fe"},
+     {{al, r10, 0x000003fc},
+      false,
+      al,
+      "al r10 0x000003fc",
+      "al_r10_"
+      "0x000003fc"},
+     {{al, r10, 0x000007f8},
+      false,
+      al,
+      "al r10 0x000007f8",
+      "al_r10_"
+      "0x000007f8"},
+     {{al, r10, 0x00000ff0},
+      false,
+      al,
+      "al r10 0x00000ff0",
+      "al_r10_"
+      "0x00000ff0"},
+     {{al, r10, 0x00001fe0},
+      false,
+      al,
+      "al r10 0x00001fe0",
+      "al_r10_"
+      "0x00001fe0"},
+     {{al, r10, 0x00003fc0},
+      false,
+      al,
+      "al r10 0x00003fc0",
+      "al_r10_"
+      "0x00003fc0"},
+     {{al, r10, 0x00007f80},
+      false,
+      al,
+      "al r10 0x00007f80",
+      "al_r10_"
+      "0x00007f80"},
+     {{al, r10, 0x0000ff00},
+      false,
+      al,
+      "al r10 0x0000ff00",
+      "al_r10_"
+      "0x0000ff00"},
+     {{al, r10, 0x0001fe00},
+      false,
+      al,
+      "al r10 0x0001fe00",
+      "al_r10_"
+      "0x0001fe00"},
+     {{al, r10, 0x0003fc00},
+      false,
+      al,
+      "al r10 0x0003fc00",
+      "al_r10_"
+      "0x0003fc00"},
+     {{al, r10, 0x0007f800},
+      false,
+      al,
+      "al r10 0x0007f800",
+      "al_r10_"
+      "0x0007f800"},
+     {{al, r10, 0x000ff000},
+      false,
+      al,
+      "al r10 0x000ff000",
+      "al_r10_"
+      "0x000ff000"},
+     {{al, r10, 0x001fe000},
+      false,
+      al,
+      "al r10 0x001fe000",
+      "al_r10_"
+      "0x001fe000"},
+     {{al, r10, 0x003fc000},
+      false,
+      al,
+      "al r10 0x003fc000",
+      "al_r10_"
+      "0x003fc000"},
+     {{al, r10, 0x007f8000},
+      false,
+      al,
+      "al r10 0x007f8000",
+      "al_r10_"
+      "0x007f8000"},
+     {{al, r10, 0x00ff0000},
+      false,
+      al,
+      "al r10 0x00ff0000",
+      "al_r10_"
+      "0x00ff0000"},
+     {{al, r10, 0x01fe0000},
+      false,
+      al,
+      "al r10 0x01fe0000",
+      "al_r10_"
+      "0x01fe0000"},
+     {{al, r10, 0x03fc0000},
+      false,
+      al,
+      "al r10 0x03fc0000",
+      "al_r10_"
+      "0x03fc0000"},
+     {{al, r10, 0x07f80000},
+      false,
+      al,
+      "al r10 0x07f80000",
+      "al_r10_"
+      "0x07f80000"},
+     {{al, r10, 0x0ff00000},
+      false,
+      al,
+      "al r10 0x0ff00000",
+      "al_r10_"
+      "0x0ff00000"},
+     {{al, r10, 0x1fe00000},
+      false,
+      al,
+      "al r10 0x1fe00000",
+      "al_r10_"
+      "0x1fe00000"},
+     {{al, r10, 0x3fc00000},
+      false,
+      al,
+      "al r10 0x3fc00000",
+      "al_r10_"
+      "0x3fc00000"},
+     {{al, r10, 0x7f800000},
+      false,
+      al,
+      "al r10 0x7f800000",
+      "al_r10_"
+      "0x7f800000"},
+     {{al, r10, 0xff000000},
+      false,
+      al,
+      "al r10 0xff000000",
+      "al_r10_"
+      "0xff000000"},
+     {{al, r10, 0x000000ff},
+      false,
+      al,
+      "al r10 0x000000ff",
+      "al_r10_"
+      "0x000000ff"},
+     {{al, r10, 0x00ff00ff},
+      false,
+      al,
+      "al r10 0x00ff00ff",
+      "al_r10_"
+      "0x00ff00ff"},
+     {{al, r10, 0xff00ff00},
+      false,
+      al,
+      "al r10 0xff00ff00",
+      "al_r10_"
+      "0xff00ff00"},
+     {{al, r10, 0xffffffff},
+      false,
+      al,
+      "al r10 0xffffffff",
+      "al_r10_"
+      "0xffffffff"},
+     {{al, r10, 0x00000156},
+      false,
+      al,
+      "al r10 0x00000156",
+      "al_r10_"
+      "0x00000156"},
+     {{al, r10, 0x000002ac},
+      false,
+      al,
+      "al r10 0x000002ac",
+      "al_r10_"
+      "0x000002ac"},
+     {{al, r10, 0x00000558},
+      false,
+      al,
+      "al r10 0x00000558",
+      "al_r10_"
+      "0x00000558"},
+     {{al, r10, 0x00000ab0},
+      false,
+      al,
+      "al r10 0x00000ab0",
+      "al_r10_"
+      "0x00000ab0"},
+     {{al, r10, 0x00001560},
+      false,
+      al,
+      "al r10 0x00001560",
+      "al_r10_"
+      "0x00001560"},
+     {{al, r10, 0x00002ac0},
+      false,
+      al,
+      "al r10 0x00002ac0",
+      "al_r10_"
+      "0x00002ac0"},
+     {{al, r10, 0x00005580},
+      false,
+      al,
+      "al r10 0x00005580",
+      "al_r10_"
+      "0x00005580"},
+     {{al, r10, 0x0000ab00},
+      false,
+      al,
+      "al r10 0x0000ab00",
+      "al_r10_"
+      "0x0000ab00"},
+     {{al, r10, 0x00015600},
+      false,
+      al,
+      "al r10 0x00015600",
+      "al_r10_"
+      "0x00015600"},
+     {{al, r10, 0x0002ac00},
+      false,
+      al,
+      "al r10 0x0002ac00",
+      "al_r10_"
+      "0x0002ac00"},
+     {{al, r10, 0x00055800},
+      false,
+      al,
+      "al r10 0x00055800",
+      "al_r10_"
+      "0x00055800"},
+     {{al, r10, 0x000ab000},
+      false,
+      al,
+      "al r10 0x000ab000",
+      "al_r10_"
+      "0x000ab000"},
+     {{al, r10, 0x00156000},
+      false,
+      al,
+      "al r10 0x00156000",
+      "al_r10_"
+      "0x00156000"},
+     {{al, r10, 0x002ac000},
+      false,
+      al,
+      "al r10 0x002ac000",
+      "al_r10_"
+      "0x002ac000"},
+     {{al, r10, 0x00558000},
+      false,
+      al,
+      "al r10 0x00558000",
+      "al_r10_"
+      "0x00558000"},
+     {{al, r10, 0x00ab0000},
+      false,
+      al,
+      "al r10 0x00ab0000",
+      "al_r10_"
+      "0x00ab0000"},
+     {{al, r10, 0x01560000},
+      false,
+      al,
+      "al r10 0x01560000",
+      "al_r10_"
+      "0x01560000"},
+     {{al, r10, 0x02ac0000},
+      false,
+      al,
+      "al r10 0x02ac0000",
+      "al_r10_"
+      "0x02ac0000"},
+     {{al, r10, 0x05580000},
+      false,
+      al,
+      "al r10 0x05580000",
+      "al_r10_"
+      "0x05580000"},
+     {{al, r10, 0x0ab00000},
+      false,
+      al,
+      "al r10 0x0ab00000",
+      "al_r10_"
+      "0x0ab00000"},
+     {{al, r10, 0x15600000},
+      false,
+      al,
+      "al r10 0x15600000",
+      "al_r10_"
+      "0x15600000"},
+     {{al, r10, 0x2ac00000},
+      false,
+      al,
+      "al r10 0x2ac00000",
+      "al_r10_"
+      "0x2ac00000"},
+     {{al, r10, 0x55800000},
+      false,
+      al,
+      "al r10 0x55800000",
+      "al_r10_"
+      "0x55800000"},
+     {{al, r10, 0xab000000},
+      false,
+      al,
+      "al r10 0xab000000",
+      "al_r10_"
+      "0xab000000"},
+     {{al, r10, 0x000000ab},
+      false,
+      al,
+      "al r10 0x000000ab",
+      "al_r10_"
+      "0x000000ab"},
+     {{al, r10, 0x00ab00ab},
+      false,
+      al,
+      "al r10 0x00ab00ab",
+      "al_r10_"
+      "0x00ab00ab"},
+     {{al, r10, 0xab00ab00},
+      false,
+      al,
+      "al r10 0xab00ab00",
+      "al_r10_"
+      "0xab00ab00"},
+     {{al, r10, 0xabababab},
+      false,
+      al,
+      "al r10 0xabababab",
+      "al_r10_"
+      "0xabababab"},
+     {{al, r11, 0x000001fe},
+      false,
+      al,
+      "al r11 0x000001fe",
+      "al_r11_"
+      "0x000001fe"},
+     {{al, r11, 0x000003fc},
+      false,
+      al,
+      "al r11 0x000003fc",
+      "al_r11_"
+      "0x000003fc"},
+     {{al, r11, 0x000007f8},
+      false,
+      al,
+      "al r11 0x000007f8",
+      "al_r11_"
+      "0x000007f8"},
+     {{al, r11, 0x00000ff0},
+      false,
+      al,
+      "al r11 0x00000ff0",
+      "al_r11_"
+      "0x00000ff0"},
+     {{al, r11, 0x00001fe0},
+      false,
+      al,
+      "al r11 0x00001fe0",
+      "al_r11_"
+      "0x00001fe0"},
+     {{al, r11, 0x00003fc0},
+      false,
+      al,
+      "al r11 0x00003fc0",
+      "al_r11_"
+      "0x00003fc0"},
+     {{al, r11, 0x00007f80},
+      false,
+      al,
+      "al r11 0x00007f80",
+      "al_r11_"
+      "0x00007f80"},
+     {{al, r11, 0x0000ff00},
+      false,
+      al,
+      "al r11 0x0000ff00",
+      "al_r11_"
+      "0x0000ff00"},
+     {{al, r11, 0x0001fe00},
+      false,
+      al,
+      "al r11 0x0001fe00",
+      "al_r11_"
+      "0x0001fe00"},
+     {{al, r11, 0x0003fc00},
+      false,
+      al,
+      "al r11 0x0003fc00",
+      "al_r11_"
+      "0x0003fc00"},
+     {{al, r11, 0x0007f800},
+      false,
+      al,
+      "al r11 0x0007f800",
+      "al_r11_"
+      "0x0007f800"},
+     {{al, r11, 0x000ff000},
+      false,
+      al,
+      "al r11 0x000ff000",
+      "al_r11_"
+      "0x000ff000"},
+     {{al, r11, 0x001fe000},
+      false,
+      al,
+      "al r11 0x001fe000",
+      "al_r11_"
+      "0x001fe000"},
+     {{al, r11, 0x003fc000},
+      false,
+      al,
+      "al r11 0x003fc000",
+      "al_r11_"
+      "0x003fc000"},
+     {{al, r11, 0x007f8000},
+      false,
+      al,
+      "al r11 0x007f8000",
+      "al_r11_"
+      "0x007f8000"},
+     {{al, r11, 0x00ff0000},
+      false,
+      al,
+      "al r11 0x00ff0000",
+      "al_r11_"
+      "0x00ff0000"},
+     {{al, r11, 0x01fe0000},
+      false,
+      al,
+      "al r11 0x01fe0000",
+      "al_r11_"
+      "0x01fe0000"},
+     {{al, r11, 0x03fc0000},
+      false,
+      al,
+      "al r11 0x03fc0000",
+      "al_r11_"
+      "0x03fc0000"},
+     {{al, r11, 0x07f80000},
+      false,
+      al,
+      "al r11 0x07f80000",
+      "al_r11_"
+      "0x07f80000"},
+     {{al, r11, 0x0ff00000},
+      false,
+      al,
+      "al r11 0x0ff00000",
+      "al_r11_"
+      "0x0ff00000"},
+     {{al, r11, 0x1fe00000},
+      false,
+      al,
+      "al r11 0x1fe00000",
+      "al_r11_"
+      "0x1fe00000"},
+     {{al, r11, 0x3fc00000},
+      false,
+      al,
+      "al r11 0x3fc00000",
+      "al_r11_"
+      "0x3fc00000"},
+     {{al, r11, 0x7f800000},
+      false,
+      al,
+      "al r11 0x7f800000",
+      "al_r11_"
+      "0x7f800000"},
+     {{al, r11, 0xff000000},
+      false,
+      al,
+      "al r11 0xff000000",
+      "al_r11_"
+      "0xff000000"},
+     {{al, r11, 0x000000ff},
+      false,
+      al,
+      "al r11 0x000000ff",
+      "al_r11_"
+      "0x000000ff"},
+     {{al, r11, 0x00ff00ff},
+      false,
+      al,
+      "al r11 0x00ff00ff",
+      "al_r11_"
+      "0x00ff00ff"},
+     {{al, r11, 0xff00ff00},
+      false,
+      al,
+      "al r11 0xff00ff00",
+      "al_r11_"
+      "0xff00ff00"},
+     {{al, r11, 0xffffffff},
+      false,
+      al,
+      "al r11 0xffffffff",
+      "al_r11_"
+      "0xffffffff"},
+     {{al, r11, 0x00000156},
+      false,
+      al,
+      "al r11 0x00000156",
+      "al_r11_"
+      "0x00000156"},
+     {{al, r11, 0x000002ac},
+      false,
+      al,
+      "al r11 0x000002ac",
+      "al_r11_"
+      "0x000002ac"},
+     {{al, r11, 0x00000558},
+      false,
+      al,
+      "al r11 0x00000558",
+      "al_r11_"
+      "0x00000558"},
+     {{al, r11, 0x00000ab0},
+      false,
+      al,
+      "al r11 0x00000ab0",
+      "al_r11_"
+      "0x00000ab0"},
+     {{al, r11, 0x00001560},
+      false,
+      al,
+      "al r11 0x00001560",
+      "al_r11_"
+      "0x00001560"},
+     {{al, r11, 0x00002ac0},
+      false,
+      al,
+      "al r11 0x00002ac0",
+      "al_r11_"
+      "0x00002ac0"},
+     {{al, r11, 0x00005580},
+      false,
+      al,
+      "al r11 0x00005580",
+      "al_r11_"
+      "0x00005580"},
+     {{al, r11, 0x0000ab00},
+      false,
+      al,
+      "al r11 0x0000ab00",
+      "al_r11_"
+      "0x0000ab00"},
+     {{al, r11, 0x00015600},
+      false,
+      al,
+      "al r11 0x00015600",
+      "al_r11_"
+      "0x00015600"},
+     {{al, r11, 0x0002ac00},
+      false,
+      al,
+      "al r11 0x0002ac00",
+      "al_r11_"
+      "0x0002ac00"},
+     {{al, r11, 0x00055800},
+      false,
+      al,
+      "al r11 0x00055800",
+      "al_r11_"
+      "0x00055800"},
+     {{al, r11, 0x000ab000},
+      false,
+      al,
+      "al r11 0x000ab000",
+      "al_r11_"
+      "0x000ab000"},
+     {{al, r11, 0x00156000},
+      false,
+      al,
+      "al r11 0x00156000",
+      "al_r11_"
+      "0x00156000"},
+     {{al, r11, 0x002ac000},
+      false,
+      al,
+      "al r11 0x002ac000",
+      "al_r11_"
+      "0x002ac000"},
+     {{al, r11, 0x00558000},
+      false,
+      al,
+      "al r11 0x00558000",
+      "al_r11_"
+      "0x00558000"},
+     {{al, r11, 0x00ab0000},
+      false,
+      al,
+      "al r11 0x00ab0000",
+      "al_r11_"
+      "0x00ab0000"},
+     {{al, r11, 0x01560000},
+      false,
+      al,
+      "al r11 0x01560000",
+      "al_r11_"
+      "0x01560000"},
+     {{al, r11, 0x02ac0000},
+      false,
+      al,
+      "al r11 0x02ac0000",
+      "al_r11_"
+      "0x02ac0000"},
+     {{al, r11, 0x05580000},
+      false,
+      al,
+      "al r11 0x05580000",
+      "al_r11_"
+      "0x05580000"},
+     {{al, r11, 0x0ab00000},
+      false,
+      al,
+      "al r11 0x0ab00000",
+      "al_r11_"
+      "0x0ab00000"},
+     {{al, r11, 0x15600000},
+      false,
+      al,
+      "al r11 0x15600000",
+      "al_r11_"
+      "0x15600000"},
+     {{al, r11, 0x2ac00000},
+      false,
+      al,
+      "al r11 0x2ac00000",
+      "al_r11_"
+      "0x2ac00000"},
+     {{al, r11, 0x55800000},
+      false,
+      al,
+      "al r11 0x55800000",
+      "al_r11_"
+      "0x55800000"},
+     {{al, r11, 0xab000000},
+      false,
+      al,
+      "al r11 0xab000000",
+      "al_r11_"
+      "0xab000000"},
+     {{al, r11, 0x000000ab},
+      false,
+      al,
+      "al r11 0x000000ab",
+      "al_r11_"
+      "0x000000ab"},
+     {{al, r11, 0x00ab00ab},
+      false,
+      al,
+      "al r11 0x00ab00ab",
+      "al_r11_"
+      "0x00ab00ab"},
+     {{al, r11, 0xab00ab00},
+      false,
+      al,
+      "al r11 0xab00ab00",
+      "al_r11_"
+      "0xab00ab00"},
+     {{al, r11, 0xabababab},
+      false,
+      al,
+      "al r11 0xabababab",
+      "al_r11_"
+      "0xabababab"},
+     {{al, r12, 0x000001fe},
+      false,
+      al,
+      "al r12 0x000001fe",
+      "al_r12_"
+      "0x000001fe"},
+     {{al, r12, 0x000003fc},
+      false,
+      al,
+      "al r12 0x000003fc",
+      "al_r12_"
+      "0x000003fc"},
+     {{al, r12, 0x000007f8},
+      false,
+      al,
+      "al r12 0x000007f8",
+      "al_r12_"
+      "0x000007f8"},
+     {{al, r12, 0x00000ff0},
+      false,
+      al,
+      "al r12 0x00000ff0",
+      "al_r12_"
+      "0x00000ff0"},
+     {{al, r12, 0x00001fe0},
+      false,
+      al,
+      "al r12 0x00001fe0",
+      "al_r12_"
+      "0x00001fe0"},
+     {{al, r12, 0x00003fc0},
+      false,
+      al,
+      "al r12 0x00003fc0",
+      "al_r12_"
+      "0x00003fc0"},
+     {{al, r12, 0x00007f80},
+      false,
+      al,
+      "al r12 0x00007f80",
+      "al_r12_"
+      "0x00007f80"},
+     {{al, r12, 0x0000ff00},
+      false,
+      al,
+      "al r12 0x0000ff00",
+      "al_r12_"
+      "0x0000ff00"},
+     {{al, r12, 0x0001fe00},
+      false,
+      al,
+      "al r12 0x0001fe00",
+      "al_r12_"
+      "0x0001fe00"},
+     {{al, r12, 0x0003fc00},
+      false,
+      al,
+      "al r12 0x0003fc00",
+      "al_r12_"
+      "0x0003fc00"},
+     {{al, r12, 0x0007f800},
+      false,
+      al,
+      "al r12 0x0007f800",
+      "al_r12_"
+      "0x0007f800"},
+     {{al, r12, 0x000ff000},
+      false,
+      al,
+      "al r12 0x000ff000",
+      "al_r12_"
+      "0x000ff000"},
+     {{al, r12, 0x001fe000},
+      false,
+      al,
+      "al r12 0x001fe000",
+      "al_r12_"
+      "0x001fe000"},
+     {{al, r12, 0x003fc000},
+      false,
+      al,
+      "al r12 0x003fc000",
+      "al_r12_"
+      "0x003fc000"},
+     {{al, r12, 0x007f8000},
+      false,
+      al,
+      "al r12 0x007f8000",
+      "al_r12_"
+      "0x007f8000"},
+     {{al, r12, 0x00ff0000},
+      false,
+      al,
+      "al r12 0x00ff0000",
+      "al_r12_"
+      "0x00ff0000"},
+     {{al, r12, 0x01fe0000},
+      false,
+      al,
+      "al r12 0x01fe0000",
+      "al_r12_"
+      "0x01fe0000"},
+     {{al, r12, 0x03fc0000},
+      false,
+      al,
+      "al r12 0x03fc0000",
+      "al_r12_"
+      "0x03fc0000"},
+     {{al, r12, 0x07f80000},
+      false,
+      al,
+      "al r12 0x07f80000",
+      "al_r12_"
+      "0x07f80000"},
+     {{al, r12, 0x0ff00000},
+      false,
+      al,
+      "al r12 0x0ff00000",
+      "al_r12_"
+      "0x0ff00000"},
+     {{al, r12, 0x1fe00000},
+      false,
+      al,
+      "al r12 0x1fe00000",
+      "al_r12_"
+      "0x1fe00000"},
+     {{al, r12, 0x3fc00000},
+      false,
+      al,
+      "al r12 0x3fc00000",
+      "al_r12_"
+      "0x3fc00000"},
+     {{al, r12, 0x7f800000},
+      false,
+      al,
+      "al r12 0x7f800000",
+      "al_r12_"
+      "0x7f800000"},
+     {{al, r12, 0xff000000},
+      false,
+      al,
+      "al r12 0xff000000",
+      "al_r12_"
+      "0xff000000"},
+     {{al, r12, 0x000000ff},
+      false,
+      al,
+      "al r12 0x000000ff",
+      "al_r12_"
+      "0x000000ff"},
+     {{al, r12, 0x00ff00ff},
+      false,
+      al,
+      "al r12 0x00ff00ff",
+      "al_r12_"
+      "0x00ff00ff"},
+     {{al, r12, 0xff00ff00},
+      false,
+      al,
+      "al r12 0xff00ff00",
+      "al_r12_"
+      "0xff00ff00"},
+     {{al, r12, 0xffffffff},
+      false,
+      al,
+      "al r12 0xffffffff",
+      "al_r12_"
+      "0xffffffff"},
+     {{al, r12, 0x00000156},
+      false,
+      al,
+      "al r12 0x00000156",
+      "al_r12_"
+      "0x00000156"},
+     {{al, r12, 0x000002ac},
+      false,
+      al,
+      "al r12 0x000002ac",
+      "al_r12_"
+      "0x000002ac"},
+     {{al, r12, 0x00000558},
+      false,
+      al,
+      "al r12 0x00000558",
+      "al_r12_"
+      "0x00000558"},
+     {{al, r12, 0x00000ab0},
+      false,
+      al,
+      "al r12 0x00000ab0",
+      "al_r12_"
+      "0x00000ab0"},
+     {{al, r12, 0x00001560},
+      false,
+      al,
+      "al r12 0x00001560",
+      "al_r12_"
+      "0x00001560"},
+     {{al, r12, 0x00002ac0},
+      false,
+      al,
+      "al r12 0x00002ac0",
+      "al_r12_"
+      "0x00002ac0"},
+     {{al, r12, 0x00005580},
+      false,
+      al,
+      "al r12 0x00005580",
+      "al_r12_"
+      "0x00005580"},
+     {{al, r12, 0x0000ab00},
+      false,
+      al,
+      "al r12 0x0000ab00",
+      "al_r12_"
+      "0x0000ab00"},
+     {{al, r12, 0x00015600},
+      false,
+      al,
+      "al r12 0x00015600",
+      "al_r12_"
+      "0x00015600"},
+     {{al, r12, 0x0002ac00},
+      false,
+      al,
+      "al r12 0x0002ac00",
+      "al_r12_"
+      "0x0002ac00"},
+     {{al, r12, 0x00055800},
+      false,
+      al,
+      "al r12 0x00055800",
+      "al_r12_"
+      "0x00055800"},
+     {{al, r12, 0x000ab000},
+      false,
+      al,
+      "al r12 0x000ab000",
+      "al_r12_"
+      "0x000ab000"},
+     {{al, r12, 0x00156000},
+      false,
+      al,
+      "al r12 0x00156000",
+      "al_r12_"
+      "0x00156000"},
+     {{al, r12, 0x002ac000},
+      false,
+      al,
+      "al r12 0x002ac000",
+      "al_r12_"
+      "0x002ac000"},
+     {{al, r12, 0x00558000},
+      false,
+      al,
+      "al r12 0x00558000",
+      "al_r12_"
+      "0x00558000"},
+     {{al, r12, 0x00ab0000},
+      false,
+      al,
+      "al r12 0x00ab0000",
+      "al_r12_"
+      "0x00ab0000"},
+     {{al, r12, 0x01560000},
+      false,
+      al,
+      "al r12 0x01560000",
+      "al_r12_"
+      "0x01560000"},
+     {{al, r12, 0x02ac0000},
+      false,
+      al,
+      "al r12 0x02ac0000",
+      "al_r12_"
+      "0x02ac0000"},
+     {{al, r12, 0x05580000},
+      false,
+      al,
+      "al r12 0x05580000",
+      "al_r12_"
+      "0x05580000"},
+     {{al, r12, 0x0ab00000},
+      false,
+      al,
+      "al r12 0x0ab00000",
+      "al_r12_"
+      "0x0ab00000"},
+     {{al, r12, 0x15600000},
+      false,
+      al,
+      "al r12 0x15600000",
+      "al_r12_"
+      "0x15600000"},
+     {{al, r12, 0x2ac00000},
+      false,
+      al,
+      "al r12 0x2ac00000",
+      "al_r12_"
+      "0x2ac00000"},
+     {{al, r12, 0x55800000},
+      false,
+      al,
+      "al r12 0x55800000",
+      "al_r12_"
+      "0x55800000"},
+     {{al, r12, 0xab000000},
+      false,
+      al,
+      "al r12 0xab000000",
+      "al_r12_"
+      "0xab000000"},
+     {{al, r12, 0x000000ab},
+      false,
+      al,
+      "al r12 0x000000ab",
+      "al_r12_"
+      "0x000000ab"},
+     {{al, r12, 0x00ab00ab},
+      false,
+      al,
+      "al r12 0x00ab00ab",
+      "al_r12_"
+      "0x00ab00ab"},
+     {{al, r12, 0xab00ab00},
+      false,
+      al,
+      "al r12 0xab00ab00",
+      "al_r12_"
+      "0xab00ab00"},
+     {{al, r12, 0xabababab},
+      false,
+      al,
+      "al r12 0xabababab",
+      "al_r12_"
+      "0xabababab"},
+     {{al, r13, 0x000001fe},
+      false,
+      al,
+      "al r13 0x000001fe",
+      "al_r13_"
+      "0x000001fe"},
+     {{al, r13, 0x000003fc},
+      false,
+      al,
+      "al r13 0x000003fc",
+      "al_r13_"
+      "0x000003fc"},
+     {{al, r13, 0x000007f8},
+      false,
+      al,
+      "al r13 0x000007f8",
+      "al_r13_"
+      "0x000007f8"},
+     {{al, r13, 0x00000ff0},
+      false,
+      al,
+      "al r13 0x00000ff0",
+      "al_r13_"
+      "0x00000ff0"},
+     {{al, r13, 0x00001fe0},
+      false,
+      al,
+      "al r13 0x00001fe0",
+      "al_r13_"
+      "0x00001fe0"},
+     {{al, r13, 0x00003fc0},
+      false,
+      al,
+      "al r13 0x00003fc0",
+      "al_r13_"
+      "0x00003fc0"},
+     {{al, r13, 0x00007f80},
+      false,
+      al,
+      "al r13 0x00007f80",
+      "al_r13_"
+      "0x00007f80"},
+     {{al, r13, 0x0000ff00},
+      false,
+      al,
+      "al r13 0x0000ff00",
+      "al_r13_"
+      "0x0000ff00"},
+     {{al, r13, 0x0001fe00},
+      false,
+      al,
+      "al r13 0x0001fe00",
+      "al_r13_"
+      "0x0001fe00"},
+     {{al, r13, 0x0003fc00},
+      false,
+      al,
+      "al r13 0x0003fc00",
+      "al_r13_"
+      "0x0003fc00"},
+     {{al, r13, 0x0007f800},
+      false,
+      al,
+      "al r13 0x0007f800",
+      "al_r13_"
+      "0x0007f800"},
+     {{al, r13, 0x000ff000},
+      false,
+      al,
+      "al r13 0x000ff000",
+      "al_r13_"
+      "0x000ff000"},
+     {{al, r13, 0x001fe000},
+      false,
+      al,
+      "al r13 0x001fe000",
+      "al_r13_"
+      "0x001fe000"},
+     {{al, r13, 0x003fc000},
+      false,
+      al,
+      "al r13 0x003fc000",
+      "al_r13_"
+      "0x003fc000"},
+     {{al, r13, 0x007f8000},
+      false,
+      al,
+      "al r13 0x007f8000",
+      "al_r13_"
+      "0x007f8000"},
+     {{al, r13, 0x00ff0000},
+      false,
+      al,
+      "al r13 0x00ff0000",
+      "al_r13_"
+      "0x00ff0000"},
+     {{al, r13, 0x01fe0000},
+      false,
+      al,
+      "al r13 0x01fe0000",
+      "al_r13_"
+      "0x01fe0000"},
+     {{al, r13, 0x03fc0000},
+      false,
+      al,
+      "al r13 0x03fc0000",
+      "al_r13_"
+      "0x03fc0000"},
+     {{al, r13, 0x07f80000},
+      false,
+      al,
+      "al r13 0x07f80000",
+      "al_r13_"
+      "0x07f80000"},
+     {{al, r13, 0x0ff00000},
+      false,
+      al,
+      "al r13 0x0ff00000",
+      "al_r13_"
+      "0x0ff00000"},
+     {{al, r13, 0x1fe00000},
+      false,
+      al,
+      "al r13 0x1fe00000",
+      "al_r13_"
+      "0x1fe00000"},
+     {{al, r13, 0x3fc00000},
+      false,
+      al,
+      "al r13 0x3fc00000",
+      "al_r13_"
+      "0x3fc00000"},
+     {{al, r13, 0x7f800000},
+      false,
+      al,
+      "al r13 0x7f800000",
+      "al_r13_"
+      "0x7f800000"},
+     {{al, r13, 0xff000000},
+      false,
+      al,
+      "al r13 0xff000000",
+      "al_r13_"
+      "0xff000000"},
+     {{al, r13, 0x000000ff},
+      false,
+      al,
+      "al r13 0x000000ff",
+      "al_r13_"
+      "0x000000ff"},
+     {{al, r13, 0x00ff00ff},
+      false,
+      al,
+      "al r13 0x00ff00ff",
+      "al_r13_"
+      "0x00ff00ff"},
+     {{al, r13, 0xff00ff00},
+      false,
+      al,
+      "al r13 0xff00ff00",
+      "al_r13_"
+      "0xff00ff00"},
+     {{al, r13, 0xffffffff},
+      false,
+      al,
+      "al r13 0xffffffff",
+      "al_r13_"
+      "0xffffffff"},
+     {{al, r13, 0x00000156},
+      false,
+      al,
+      "al r13 0x00000156",
+      "al_r13_"
+      "0x00000156"},
+     {{al, r13, 0x000002ac},
+      false,
+      al,
+      "al r13 0x000002ac",
+      "al_r13_"
+      "0x000002ac"},
+     {{al, r13, 0x00000558},
+      false,
+      al,
+      "al r13 0x00000558",
+      "al_r13_"
+      "0x00000558"},
+     {{al, r13, 0x00000ab0},
+      false,
+      al,
+      "al r13 0x00000ab0",
+      "al_r13_"
+      "0x00000ab0"},
+     {{al, r13, 0x00001560},
+      false,
+      al,
+      "al r13 0x00001560",
+      "al_r13_"
+      "0x00001560"},
+     {{al, r13, 0x00002ac0},
+      false,
+      al,
+      "al r13 0x00002ac0",
+      "al_r13_"
+      "0x00002ac0"},
+     {{al, r13, 0x00005580},
+      false,
+      al,
+      "al r13 0x00005580",
+      "al_r13_"
+      "0x00005580"},
+     {{al, r13, 0x0000ab00},
+      false,
+      al,
+      "al r13 0x0000ab00",
+      "al_r13_"
+      "0x0000ab00"},
+     {{al, r13, 0x00015600},
+      false,
+      al,
+      "al r13 0x00015600",
+      "al_r13_"
+      "0x00015600"},
+     {{al, r13, 0x0002ac00},
+      false,
+      al,
+      "al r13 0x0002ac00",
+      "al_r13_"
+      "0x0002ac00"},
+     {{al, r13, 0x00055800},
+      false,
+      al,
+      "al r13 0x00055800",
+      "al_r13_"
+      "0x00055800"},
+     {{al, r13, 0x000ab000},
+      false,
+      al,
+      "al r13 0x000ab000",
+      "al_r13_"
+      "0x000ab000"},
+     {{al, r13, 0x00156000},
+      false,
+      al,
+      "al r13 0x00156000",
+      "al_r13_"
+      "0x00156000"},
+     {{al, r13, 0x002ac000},
+      false,
+      al,
+      "al r13 0x002ac000",
+      "al_r13_"
+      "0x002ac000"},
+     {{al, r13, 0x00558000},
+      false,
+      al,
+      "al r13 0x00558000",
+      "al_r13_"
+      "0x00558000"},
+     {{al, r13, 0x00ab0000},
+      false,
+      al,
+      "al r13 0x00ab0000",
+      "al_r13_"
+      "0x00ab0000"},
+     {{al, r13, 0x01560000},
+      false,
+      al,
+      "al r13 0x01560000",
+      "al_r13_"
+      "0x01560000"},
+     {{al, r13, 0x02ac0000},
+      false,
+      al,
+      "al r13 0x02ac0000",
+      "al_r13_"
+      "0x02ac0000"},
+     {{al, r13, 0x05580000},
+      false,
+      al,
+      "al r13 0x05580000",
+      "al_r13_"
+      "0x05580000"},
+     {{al, r13, 0x0ab00000},
+      false,
+      al,
+      "al r13 0x0ab00000",
+      "al_r13_"
+      "0x0ab00000"},
+     {{al, r13, 0x15600000},
+      false,
+      al,
+      "al r13 0x15600000",
+      "al_r13_"
+      "0x15600000"},
+     {{al, r13, 0x2ac00000},
+      false,
+      al,
+      "al r13 0x2ac00000",
+      "al_r13_"
+      "0x2ac00000"},
+     {{al, r13, 0x55800000},
+      false,
+      al,
+      "al r13 0x55800000",
+      "al_r13_"
+      "0x55800000"},
+     {{al, r13, 0xab000000},
+      false,
+      al,
+      "al r13 0xab000000",
+      "al_r13_"
+      "0xab000000"},
+     {{al, r13, 0x000000ab},
+      false,
+      al,
+      "al r13 0x000000ab",
+      "al_r13_"
+      "0x000000ab"},
+     {{al, r13, 0x00ab00ab},
+      false,
+      al,
+      "al r13 0x00ab00ab",
+      "al_r13_"
+      "0x00ab00ab"},
+     {{al, r13, 0xab00ab00},
+      false,
+      al,
+      "al r13 0xab00ab00",
+      "al_r13_"
+      "0xab00ab00"},
+     {{al, r13, 0xabababab},
+      false,
+      al,
+      "al r13 0xabababab",
+      "al_r13_"
+      "0xabababab"},
+     {{al, r14, 0x000001fe},
+      false,
+      al,
+      "al r14 0x000001fe",
+      "al_r14_"
+      "0x000001fe"},
+     {{al, r14, 0x000003fc},
+      false,
+      al,
+      "al r14 0x000003fc",
+      "al_r14_"
+      "0x000003fc"},
+     {{al, r14, 0x000007f8},
+      false,
+      al,
+      "al r14 0x000007f8",
+      "al_r14_"
+      "0x000007f8"},
+     {{al, r14, 0x00000ff0},
+      false,
+      al,
+      "al r14 0x00000ff0",
+      "al_r14_"
+      "0x00000ff0"},
+     {{al, r14, 0x00001fe0},
+      false,
+      al,
+      "al r14 0x00001fe0",
+      "al_r14_"
+      "0x00001fe0"},
+     {{al, r14, 0x00003fc0},
+      false,
+      al,
+      "al r14 0x00003fc0",
+      "al_r14_"
+      "0x00003fc0"},
+     {{al, r14, 0x00007f80},
+      false,
+      al,
+      "al r14 0x00007f80",
+      "al_r14_"
+      "0x00007f80"},
+     {{al, r14, 0x0000ff00},
+      false,
+      al,
+      "al r14 0x0000ff00",
+      "al_r14_"
+      "0x0000ff00"},
+     {{al, r14, 0x0001fe00},
+      false,
+      al,
+      "al r14 0x0001fe00",
+      "al_r14_"
+      "0x0001fe00"},
+     {{al, r14, 0x0003fc00},
+      false,
+      al,
+      "al r14 0x0003fc00",
+      "al_r14_"
+      "0x0003fc00"},
+     {{al, r14, 0x0007f800},
+      false,
+      al,
+      "al r14 0x0007f800",
+      "al_r14_"
+      "0x0007f800"},
+     {{al, r14, 0x000ff000},
+      false,
+      al,
+      "al r14 0x000ff000",
+      "al_r14_"
+      "0x000ff000"},
+     {{al, r14, 0x001fe000},
+      false,
+      al,
+      "al r14 0x001fe000",
+      "al_r14_"
+      "0x001fe000"},
+     {{al, r14, 0x003fc000},
+      false,
+      al,
+      "al r14 0x003fc000",
+      "al_r14_"
+      "0x003fc000"},
+     {{al, r14, 0x007f8000},
+      false,
+      al,
+      "al r14 0x007f8000",
+      "al_r14_"
+      "0x007f8000"},
+     {{al, r14, 0x00ff0000},
+      false,
+      al,
+      "al r14 0x00ff0000",
+      "al_r14_"
+      "0x00ff0000"},
+     {{al, r14, 0x01fe0000},
+      false,
+      al,
+      "al r14 0x01fe0000",
+      "al_r14_"
+      "0x01fe0000"},
+     {{al, r14, 0x03fc0000},
+      false,
+      al,
+      "al r14 0x03fc0000",
+      "al_r14_"
+      "0x03fc0000"},
+     {{al, r14, 0x07f80000},
+      false,
+      al,
+      "al r14 0x07f80000",
+      "al_r14_"
+      "0x07f80000"},
+     {{al, r14, 0x0ff00000},
+      false,
+      al,
+      "al r14 0x0ff00000",
+      "al_r14_"
+      "0x0ff00000"},
+     {{al, r14, 0x1fe00000},
+      false,
+      al,
+      "al r14 0x1fe00000",
+      "al_r14_"
+      "0x1fe00000"},
+     {{al, r14, 0x3fc00000},
+      false,
+      al,
+      "al r14 0x3fc00000",
+      "al_r14_"
+      "0x3fc00000"},
+     {{al, r14, 0x7f800000},
+      false,
+      al,
+      "al r14 0x7f800000",
+      "al_r14_"
+      "0x7f800000"},
+     {{al, r14, 0xff000000},
+      false,
+      al,
+      "al r14 0xff000000",
+      "al_r14_"
+      "0xff000000"},
+     {{al, r14, 0x000000ff},
+      false,
+      al,
+      "al r14 0x000000ff",
+      "al_r14_"
+      "0x000000ff"},
+     {{al, r14, 0x00ff00ff},
+      false,
+      al,
+      "al r14 0x00ff00ff",
+      "al_r14_"
+      "0x00ff00ff"},
+     {{al, r14, 0xff00ff00},
+      false,
+      al,
+      "al r14 0xff00ff00",
+      "al_r14_"
+      "0xff00ff00"},
+     {{al, r14, 0xffffffff},
+      false,
+      al,
+      "al r14 0xffffffff",
+      "al_r14_"
+      "0xffffffff"},
+     {{al, r14, 0x00000156},
+      false,
+      al,
+      "al r14 0x00000156",
+      "al_r14_"
+      "0x00000156"},
+     {{al, r14, 0x000002ac},
+      false,
+      al,
+      "al r14 0x000002ac",
+      "al_r14_"
+      "0x000002ac"},
+     {{al, r14, 0x00000558},
+      false,
+      al,
+      "al r14 0x00000558",
+      "al_r14_"
+      "0x00000558"},
+     {{al, r14, 0x00000ab0},
+      false,
+      al,
+      "al r14 0x00000ab0",
+      "al_r14_"
+      "0x00000ab0"},
+     {{al, r14, 0x00001560},
+      false,
+      al,
+      "al r14 0x00001560",
+      "al_r14_"
+      "0x00001560"},
+     {{al, r14, 0x00002ac0},
+      false,
+      al,
+      "al r14 0x00002ac0",
+      "al_r14_"
+      "0x00002ac0"},
+     {{al, r14, 0x00005580},
+      false,
+      al,
+      "al r14 0x00005580",
+      "al_r14_"
+      "0x00005580"},
+     {{al, r14, 0x0000ab00},
+      false,
+      al,
+      "al r14 0x0000ab00",
+      "al_r14_"
+      "0x0000ab00"},
+     {{al, r14, 0x00015600},
+      false,
+      al,
+      "al r14 0x00015600",
+      "al_r14_"
+      "0x00015600"},
+     {{al, r14, 0x0002ac00},
+      false,
+      al,
+      "al r14 0x0002ac00",
+      "al_r14_"
+      "0x0002ac00"},
+     {{al, r14, 0x00055800},
+      false,
+      al,
+      "al r14 0x00055800",
+      "al_r14_"
+      "0x00055800"},
+     {{al, r14, 0x000ab000},
+      false,
+      al,
+      "al r14 0x000ab000",
+      "al_r14_"
+      "0x000ab000"},
+     {{al, r14, 0x00156000},
+      false,
+      al,
+      "al r14 0x00156000",
+      "al_r14_"
+      "0x00156000"},
+     {{al, r14, 0x002ac000},
+      false,
+      al,
+      "al r14 0x002ac000",
+      "al_r14_"
+      "0x002ac000"},
+     {{al, r14, 0x00558000},
+      false,
+      al,
+      "al r14 0x00558000",
+      "al_r14_"
+      "0x00558000"},
+     {{al, r14, 0x00ab0000},
+      false,
+      al,
+      "al r14 0x00ab0000",
+      "al_r14_"
+      "0x00ab0000"},
+     {{al, r14, 0x01560000},
+      false,
+      al,
+      "al r14 0x01560000",
+      "al_r14_"
+      "0x01560000"},
+     {{al, r14, 0x02ac0000},
+      false,
+      al,
+      "al r14 0x02ac0000",
+      "al_r14_"
+      "0x02ac0000"},
+     {{al, r14, 0x05580000},
+      false,
+      al,
+      "al r14 0x05580000",
+      "al_r14_"
+      "0x05580000"},
+     {{al, r14, 0x0ab00000},
+      false,
+      al,
+      "al r14 0x0ab00000",
+      "al_r14_"
+      "0x0ab00000"},
+     {{al, r14, 0x15600000},
+      false,
+      al,
+      "al r14 0x15600000",
+      "al_r14_"
+      "0x15600000"},
+     {{al, r14, 0x2ac00000},
+      false,
+      al,
+      "al r14 0x2ac00000",
+      "al_r14_"
+      "0x2ac00000"},
+     {{al, r14, 0x55800000},
+      false,
+      al,
+      "al r14 0x55800000",
+      "al_r14_"
+      "0x55800000"},
+     {{al, r14, 0xab000000},
+      false,
+      al,
+      "al r14 0xab000000",
+      "al_r14_"
+      "0xab000000"},
+     {{al, r14, 0x000000ab},
+      false,
+      al,
+      "al r14 0x000000ab",
+      "al_r14_"
+      "0x000000ab"},
+     {{al, r14, 0x00ab00ab},
+      false,
+      al,
+      "al r14 0x00ab00ab",
+      "al_r14_"
+      "0x00ab00ab"},
+     {{al, r14, 0xab00ab00},
+      false,
+      al,
+      "al r14 0xab00ab00",
+      "al_r14_"
+      "0xab00ab00"},
+     {{al, r14, 0xabababab},
+      false,
+      al,
+      "al r14 0xabababab",
+      "al_r14_0xabababab"}};
 
 // These headers each contain an array of `TestResult` with the reference output
 // values. The reference arrays are names `kReference{mnemonic}`.
diff --git a/test/aarch32/test-assembler-cond-rd-operand-rn-shift-rs-a32.cc b/test/aarch32/test-assembler-cond-rd-operand-rn-shift-rs-a32.cc
index 731feef..e94fe3d 100644
--- a/test/aarch32/test-assembler-cond-rd-operand-rn-shift-rs-a32.cc
+++ b/test/aarch32/test-assembler-cond-rd-operand-rn-shift-rs-a32.cc
@@ -2196,8 +2196,12 @@
     {{vc, r9, r9, LSL, r7}, false, al, "vc r9 r9 LSL r7", "vc_r9_r9_LSL_r7"},
     {{mi, r7, r0, LSL, r4}, false, al, "mi r7 r0 LSL r4", "mi_r7_r0_LSL_r4"},
     {{cc, r2, r10, ASR, r7}, false, al, "cc r2 r10 ASR r7", "cc_r2_r10_ASR_r7"},
-    {{cs, r5, r10, LSR, r9}, false, al, "cs r5 r10 LSR r9", "cs_r5_r10_LSR_"
-                                                            "r9"}};
+    {{cs, r5, r10, LSR, r9},
+     false,
+     al,
+     "cs r5 r10 LSR r9",
+     "cs_r5_r10_LSR_"
+     "r9"}};
 
 // These headers each contain an array of `TestResult` with the reference output
 // values. The reference arrays are names `kReference{mnemonic}`.
diff --git a/test/aarch32/test-assembler-cond-rd-operand-rn-shift-rs-t32.cc b/test/aarch32/test-assembler-cond-rd-operand-rn-shift-rs-t32.cc
index 8c1826d..4772e98 100644
--- a/test/aarch32/test-assembler-cond-rd-operand-rn-shift-rs-t32.cc
+++ b/test/aarch32/test-assembler-cond-rd-operand-rn-shift-rs-t32.cc
@@ -2138,8 +2138,12 @@
     {{al, r0, r7, ROR, r9}, false, al, "al r0 r7 ROR r9", "al_r0_r7_ROR_r9"},
     {{al, r9, r3, ROR, r13}, false, al, "al r9 r3 ROR r13", "al_r9_r3_ROR_r13"},
     {{al, r3, r8, LSR, r4}, false, al, "al r3 r8 LSR r4", "al_r3_r8_LSR_r4"},
-    {{al, r5, r10, ROR, r4}, false, al, "al r5 r10 ROR r4", "al_r5_r10_ROR_"
-                                                            "r4"}};
+    {{al, r5, r10, ROR, r4},
+     false,
+     al,
+     "al r5 r10 ROR r4",
+     "al_r5_r10_ROR_"
+     "r4"}};
 
 // These headers each contain an array of `TestResult` with the reference output
 // values. The reference arrays are names `kReference{mnemonic}`.
diff --git a/test/aarch32/test-assembler-cond-rdlow-operand-imm8-t32.cc b/test/aarch32/test-assembler-cond-rdlow-operand-imm8-t32.cc
index 05fc1c9..37b25ce 100644
--- a/test/aarch32/test-assembler-cond-rdlow-operand-imm8-t32.cc
+++ b/test/aarch32/test-assembler-cond-rdlow-operand-imm8-t32.cc
@@ -2140,8 +2140,12 @@
                            {{al, r7, 252}, false, al, "al r7 252", "al_r7_252"},
                            {{al, r7, 253}, false, al, "al r7 253", "al_r7_253"},
                            {{al, r7, 254}, false, al, "al r7 254", "al_r7_254"},
-                           {{al, r7, 255}, false, al, "al r7 255", "al_r7_"
-                                                                   "255"}};
+                           {{al, r7, 255},
+                            false,
+                            al,
+                            "al r7 255",
+                            "al_r7_"
+                            "255"}};
 
 // These headers each contain an array of `TestResult` with the reference output
 // values. The reference arrays are names `kReference{mnemonic}`.
diff --git a/test/aarch32/test-disasm-a32.cc b/test/aarch32/test-disasm-a32.cc
index 3145935..45239c2 100644
--- a/test/aarch32/test-disasm-a32.cc
+++ b/test/aarch32/test-disasm-a32.cc
@@ -42,132 +42,146 @@
 namespace aarch32 {
 
 #define __ masm.
-#define TEST(name)  TEST_(AARCH32_DISASM_##name)
+#define TEST(name) TEST_(AARCH32_DISASM_##name)
 
 #ifdef VIXL_INCLUDE_TARGET_T32
-#define TEST_T32(name)  TEST_(AARCH32_DISASM_##name)
+#define TEST_T32(name) TEST_(AARCH32_DISASM_##name)
 #else
-#define TEST_T32(name)  void Test##name()
+#define TEST_T32(name) void Test##name()
 #endif
 
 #ifdef VIXL_INCLUDE_TARGET_A32
-#define TEST_A32(name)  TEST_(AARCH32_DISASM_##name)
+#define TEST_A32(name) TEST_(AARCH32_DISASM_##name)
 #else
-#define TEST_A32(name)  void Test##name()
+#define TEST_A32(name) void Test##name()
 #endif
 
 #define BUF_SIZE (4096)
 
-#define SETUP()                   \
-  MacroAssembler masm(BUF_SIZE);
+#define SETUP() MacroAssembler masm(BUF_SIZE);
 
 #define CLEANUP()
 
 #ifdef VIXL_NEGATIVE_TESTING
-#define START_COMPARE()                                                        \
-  {                                                                            \
-    try {                                                                      \
+#define START_COMPARE() \
+  {                     \
+    try {               \
       int32_t start = masm.GetCursorOffset();
 
-#define END_COMPARE_CHECK_SIZE(EXP,SIZE)                                       \
-      int32_t end = masm.GetCursorOffset();                                    \
-      masm.FinalizeCode();                                                     \
-      std::ostringstream ss;                                                   \
-      TestDisassembler disassembler(ss, 0);                                    \
-      if (masm.IsUsingT32()) {                                                 \
-        disassembler.DisassembleT32(*masm.GetBuffer(), start, end);            \
-      } else {                                                                 \
-        disassembler.DisassembleA32(*masm.GetBuffer(), start, end);            \
-      }                                                                        \
-      masm.GetBuffer()->Reset();                                               \
-      if (Test::disassemble()) {                                               \
-        printf("----\n");                                                      \
-        printf("%s", ss.str().c_str());                                        \
-      }                                                                        \
-      if (std::string(EXP) != ss.str()) {                                      \
-        printf("\n%s:%d:%s\nFound:\n%sExpected:\n%s", __FILE__, __LINE__,      \
-              masm.IsUsingT32() ? "T32" : "A32", ss.str().c_str(), EXP);       \
-        abort();                                                               \
-      }                                                                        \
-      if ((SIZE) != -1 && ((end - start) != (SIZE))) {                         \
-        printf("\nExpected %d bits, found %d bits\n",                          \
-               8 * (SIZE), 8 * (end - start));                                 \
-        abort();                                                               \
-      }                                                                        \
-    } catch (std::runtime_error e) {                                           \
-      const char *msg = e.what();                                              \
-      printf("\n%s:%d:%s\nFound:\n%sExpected:\n%s", __FILE__, __LINE__,        \
-             masm.IsUsingT32() ? "T32" : "A32", msg, EXP);                     \
-      abort();                                                                 \
-    }                                                                          \
+#define END_COMPARE_CHECK_SIZE(EXP, SIZE)                       \
+  int32_t end = masm.GetCursorOffset();                         \
+  masm.FinalizeCode();                                          \
+  std::ostringstream ss;                                        \
+  TestDisassembler disassembler(ss, 0);                         \
+  if (masm.IsUsingT32()) {                                      \
+    disassembler.DisassembleT32(*masm.GetBuffer(), start, end); \
+  } else {                                                      \
+    disassembler.DisassembleA32(*masm.GetBuffer(), start, end); \
+  }                                                             \
+  masm.GetBuffer()->Reset();                                    \
+  if (Test::disassemble()) {                                    \
+    printf("----\n");                                           \
+    printf("%s", ss.str().c_str());                             \
+  }                                                             \
+  if (std::string(EXP) != ss.str()) {                           \
+    printf("\n%s:%d:%s\nFound:\n%sExpected:\n%s",               \
+           __FILE__,                                            \
+           __LINE__,                                            \
+           masm.IsUsingT32() ? "T32" : "A32",                   \
+           ss.str().c_str(),                                    \
+           EXP);                                                \
+    abort();                                                    \
+  }                                                             \
+  if ((SIZE) != -1 && ((end - start) != (SIZE))) {              \
+    printf("\nExpected %d bits, found %d bits\n",               \
+           8 * (SIZE),                                          \
+           8 * (end - start));                                  \
+    abort();                                                    \
+  }                                                             \
+  }                                                             \
+  catch (std::runtime_error e) {                                \
+    const char* msg = e.what();                                 \
+    printf("\n%s:%d:%s\nFound:\n%sExpected:\n%s",               \
+           __FILE__,                                            \
+           __LINE__,                                            \
+           masm.IsUsingT32() ? "T32" : "A32",                   \
+           msg,                                                 \
+           EXP);                                                \
+    abort();                                                    \
+  }                                                             \
   }
 #else
-#define START_COMPARE()                                                        \
-  {                                                                            \
+#define START_COMPARE() \
+  {                     \
     int32_t start = masm.GetCursorOffset();
 
-#define END_COMPARE_CHECK_SIZE(EXP,SIZE)                                       \
-    int32_t end = masm.GetCursorOffset();                                      \
-    masm.FinalizeCode();                                                       \
-    std::ostringstream ss;                                                     \
-    TestDisassembler disassembler(ss, 0);                                      \
-    if (masm.IsUsingT32()) {                                                   \
-      disassembler.DisassembleT32(*masm.GetBuffer(), start, end);              \
-    } else {                                                                   \
-      disassembler.DisassembleA32(*masm.GetBuffer(), start, end);              \
-    }                                                                          \
-    masm.GetBuffer()->Reset();                                                 \
-    if (Test::disassemble()) {                                                 \
-      printf("----\n");                                                        \
-      printf("%s", ss.str().c_str());                                          \
-    }                                                                          \
-    if (std::string(EXP) != ss.str()) {                                        \
-      printf("\n%s:%d:%s\nFound:\n%sExpected:\n%s", __FILE__, __LINE__,        \
-             masm.IsUsingT32() ? "T32" : "A32", ss.str().c_str(), EXP);        \
-      abort();                                                                 \
-    }                                                                          \
-    if ((SIZE) != -1 && ((end - start) != (SIZE))) {                           \
-      printf("\nExpected %d bits, found %d bits\n",                            \
-             8 * (SIZE), 8 * (end - start));                                   \
-      abort();                                                                 \
-    }                                                                          \
+#define END_COMPARE_CHECK_SIZE(EXP, SIZE)                       \
+  int32_t end = masm.GetCursorOffset();                         \
+  masm.FinalizeCode();                                          \
+  std::ostringstream ss;                                        \
+  TestDisassembler disassembler(ss, 0);                         \
+  if (masm.IsUsingT32()) {                                      \
+    disassembler.DisassembleT32(*masm.GetBuffer(), start, end); \
+  } else {                                                      \
+    disassembler.DisassembleA32(*masm.GetBuffer(), start, end); \
+  }                                                             \
+  masm.GetBuffer()->Reset();                                    \
+  if (Test::disassemble()) {                                    \
+    printf("----\n");                                           \
+    printf("%s", ss.str().c_str());                             \
+  }                                                             \
+  if (std::string(EXP) != ss.str()) {                           \
+    printf("\n%s:%d:%s\nFound:\n%sExpected:\n%s",               \
+           __FILE__,                                            \
+           __LINE__,                                            \
+           masm.IsUsingT32() ? "T32" : "A32",                   \
+           ss.str().c_str(),                                    \
+           EXP);                                                \
+    abort();                                                    \
+  }                                                             \
+  if ((SIZE) != -1 && ((end - start) != (SIZE))) {              \
+    printf("\nExpected %d bits, found %d bits\n",               \
+           8 * (SIZE),                                          \
+           8 * (end - start));                                  \
+    abort();                                                    \
+  }                                                             \
   }
 #endif
 
-#define END_COMPARE(EXP) END_COMPARE_CHECK_SIZE(EXP,-1)
+#define END_COMPARE(EXP) END_COMPARE_CHECK_SIZE(EXP, -1)
 
 #ifdef VIXL_INCLUDE_TARGET_A32
-#define COMPARE_A32(ASM, EXP)                                                  \
-  masm.UseA32();                                                               \
-  START_COMPARE()                                                              \
-  masm.ASM;                                                                    \
+#define COMPARE_A32(ASM, EXP) \
+  masm.UseA32();              \
+  START_COMPARE()             \
+  masm.ASM;                   \
   END_COMPARE(EXP)
 #else
 #define COMPARE_A32(ASM, EXP)
 #endif
 
 #ifdef VIXL_INCLUDE_TARGET_T32
-#define COMPARE_T32(ASM, EXP)                                                  \
-  masm.UseT32();                                                               \
-  START_COMPARE()                                                              \
-  masm.ASM;                                                                    \
+#define COMPARE_T32(ASM, EXP) \
+  masm.UseT32();              \
+  START_COMPARE()             \
+  masm.ASM;                   \
   END_COMPARE(EXP)
 #else
 #define COMPARE_T32(ASM, EXP)
 #endif
 
 #ifdef VIXL_INCLUDE_TARGET_T32
-#define COMPARE_T32_CHECK_SIZE(ASM, EXP, SIZE)                                 \
-  masm.UseT32();                                                               \
-  START_COMPARE()                                                              \
-  masm.ASM;                                                                    \
+#define COMPARE_T32_CHECK_SIZE(ASM, EXP, SIZE) \
+  masm.UseT32();                               \
+  START_COMPARE()                              \
+  masm.ASM;                                    \
   END_COMPARE_CHECK_SIZE(EXP, SIZE)
 #else
 #define COMPARE_T32_CHECK_SIZE(ASM, EXP, SIZE)
 #endif
 
-#define COMPARE_BOTH(ASM, EXP)                                                 \
-  COMPARE_A32(ASM, EXP)                                                        \
+#define COMPARE_BOTH(ASM, EXP) \
+  COMPARE_A32(ASM, EXP)        \
   COMPARE_T32(ASM, EXP)
 
 #ifdef VIXL_NEGATIVE_TESTING
@@ -175,18 +189,21 @@
   {                                                                            \
     try {                                                                      \
       int32_t start = masm.GetCursorOffset();                                  \
-      ASM                                                                      \
-      int32_t end = masm.GetCursorOffset();                                    \
+      ASM int32_t end = masm.GetCursorOffset();                                \
       masm.FinalizeCode();                                                     \
       if (!TEMPORARILY_ACCEPTED) {                                             \
         std::ostringstream ss;                                                 \
         PrintDisassembler disassembler(ss, 0);                                 \
         if (masm.IsUsingT32()) {                                               \
-          disassembler.DisassembleT32Buffer(                                   \
-              masm.GetBuffer()->GetOffsetAddress<uint16_t*>(start), end);      \
+          disassembler.DisassembleT32Buffer(masm.GetBuffer()                   \
+                                                ->GetOffsetAddress<uint16_t*>( \
+                                                    start),                    \
+                                            end);                              \
         } else {                                                               \
-          disassembler.DisassembleA32Buffer(                                   \
-            masm.GetBuffer()->GetOffsetAddress<uint32_t*>(start), end);        \
+          disassembler.DisassembleA32Buffer(masm.GetBuffer()                   \
+                                                ->GetOffsetAddress<uint32_t*>( \
+                                                    start),                    \
+                                            end);                              \
         }                                                                      \
         printf("\n%s:%d:%s\nNo exception raised.\n",                           \
                __FILE__,                                                       \
@@ -196,13 +213,14 @@
         abort();                                                               \
       }                                                                        \
     } catch (std::runtime_error e) {                                           \
-      const char *msg = e.what();                                              \
+      const char* msg = e.what();                                              \
       size_t exp_len = strlen(EXP);                                            \
       if (TEMPORARILY_ACCEPTED) {                                              \
-        printf("\nNegative MacroAssembler test that was temporarily "          \
-               "assembling a deprecated or unpredictable instruction is now "  \
-               "correctly raising an exception. Please update the "            \
-               "test to reflect this.\n");                                     \
+        printf(                                                                \
+            "\nNegative MacroAssembler test that was temporarily "             \
+            "assembling a deprecated or unpredictable instruction is now "     \
+            "correctly raising an exception. Please update the "               \
+            "test to reflect this.\n");                                        \
         printf("at: %s:%d:%s\n",                                               \
                __FILE__,                                                       \
                __LINE__,                                                       \
@@ -212,69 +230,83 @@
         printf("\n%s:%d:%s\nFound:\n%sExpected:\n%s...",                       \
                __FILE__,                                                       \
                __LINE__,                                                       \
-               masm.IsUsingT32() ? "T32" : "A32", msg, EXP);                   \
+               masm.IsUsingT32() ? "T32" : "A32",                              \
+               msg,                                                            \
+               EXP);                                                           \
         abort();                                                               \
       }                                                                        \
     }                                                                          \
   }
 
 #ifdef VIXL_INCLUDE_TARGET_A32
-#define MUST_FAIL_TEST_A32(ASM, EXP)                                           \
-  masm.UseA32();                                                               \
-  NEGATIVE_TEST({ masm.ASM; }, EXP, false)                                     \
+#define MUST_FAIL_TEST_A32(ASM, EXP)       \
+  masm.UseA32();                           \
+  NEGATIVE_TEST({ masm.ASM; }, EXP, false) \
   masm.GetBuffer()->Reset();
 #else
 #define MUST_FAIL_TEST_A32(ASM, EXP)
 #endif
 
 #ifdef VIXL_INCLUDE_TARGET_T32
-#define MUST_FAIL_TEST_T32(ASM, EXP)                                           \
-  masm.UseT32();                                                               \
-  NEGATIVE_TEST({ masm.ASM; }, EXP, false)                                     \
+#define MUST_FAIL_TEST_T32(ASM, EXP)       \
+  masm.UseT32();                           \
+  NEGATIVE_TEST({ masm.ASM; }, EXP, false) \
   masm.GetBuffer()->Reset();
 #else
 #define MUST_FAIL_TEST_T32(ASM, EXP)
 #endif
 
-#define MUST_FAIL_TEST_BOTH(ASM, EXP)                                          \
-  MUST_FAIL_TEST_A32(ASM, EXP)                                                 \
+#define MUST_FAIL_TEST_BOTH(ASM, EXP) \
+  MUST_FAIL_TEST_A32(ASM, EXP)        \
   MUST_FAIL_TEST_T32(ASM, EXP)
 
 #ifdef VIXL_INCLUDE_TARGET_A32
-#define MUST_FAIL_TEST_A32_BLOCK(ASM, EXP)                                     \
-  masm.UseA32();                                                               \
-  NEGATIVE_TEST(ASM, EXP, false)                                               \
+#define MUST_FAIL_TEST_A32_BLOCK(ASM, EXP) \
+  masm.UseA32();                           \
+  NEGATIVE_TEST(ASM, EXP, false)           \
   masm.GetBuffer()->Reset();
 #else
 #define MUST_FAIL_TEST_A32_BLOCK(ASM, EXP)
 #endif
 
 #ifdef VIXL_INCLUDE_TARGET_T32
-#define MUST_FAIL_TEST_T32_BLOCK(ASM, EXP)                                     \
-  masm.UseT32();                                                               \
-  NEGATIVE_TEST(ASM, EXP, false)                                               \
+#define MUST_FAIL_TEST_T32_BLOCK(ASM, EXP) \
+  masm.UseT32();                           \
+  NEGATIVE_TEST(ASM, EXP, false)           \
   masm.GetBuffer()->Reset();
 #else
 #define MUST_FAIL_TEST_T32_BLOCK(ASM, EXP)
 #endif
 
-#define MUST_FAIL_TEST_BOTH_BLOCK(ASM, EXP)                                    \
-  MUST_FAIL_TEST_A32_BLOCK(ASM, EXP)                                           \
+#define MUST_FAIL_TEST_BOTH_BLOCK(ASM, EXP) \
+  MUST_FAIL_TEST_A32_BLOCK(ASM, EXP)        \
   MUST_FAIL_TEST_T32_BLOCK(ASM, EXP)
 #else
 // Skip negative tests.
-#define MUST_FAIL_TEST_A32(ASM, EXP) \
-  printf("Skipping negative tests. To enable them, build with 'negative_testing=on'.\n");
-#define MUST_FAIL_TEST_T32(ASM, EXP) \
-  printf("Skipping negative tests. To enable them, build with 'negative_testing=on'.\n");
-#define MUST_FAIL_TEST_BOTH(ASM, EXP) \
-  printf("Skipping negative tests. To enable them, build with 'negative_testing=on'.\n");
-#define MUST_FAIL_TEST_A32_BLOCK(ASM, EXP) \
-  printf("Skipping negative tests. To enable them, build with 'negative_testing=on'.\n");
-#define MUST_FAIL_TEST_T32_BLOCK(ASM, EXP) \
-  printf("Skipping negative tests. To enable them, build with 'negative_testing=on'.\n");
-#define MUST_FAIL_TEST_BOTH_BLOCK(ASM, EXP) \
-  printf("Skipping negative tests. To enable them, build with 'negative_testing=on'.\n");
+#define MUST_FAIL_TEST_A32(ASM, EXP)                         \
+  printf(                                                    \
+      "Skipping negative tests. To enable them, build with " \
+      "'negative_testing=on'.\n");
+#define MUST_FAIL_TEST_T32(ASM, EXP)                         \
+  printf(                                                    \
+      "Skipping negative tests. To enable them, build with " \
+      "'negative_testing=on'.\n");
+#define MUST_FAIL_TEST_BOTH(ASM, EXP)                        \
+  printf(                                                    \
+      "Skipping negative tests. To enable them, build with " \
+      "'negative_testing=on'.\n");
+#define MUST_FAIL_TEST_A32_BLOCK(ASM, EXP)                   \
+  printf(                                                    \
+      "Skipping negative tests. To enable them, build with " \
+      "'negative_testing=on'.\n");
+#define MUST_FAIL_TEST_T32_BLOCK(ASM, EXP)                   \
+  printf(                                                    \
+      "Skipping negative tests. To enable them, build with " \
+      "'negative_testing=on'.\n");
+#define MUST_FAIL_TEST_BOTH_BLOCK(ASM, EXP)                  \
+  printf(                                                    \
+      "Skipping negative tests. To enable them, build with " \
+      "'negative_testing=on'.\n");
 #endif
 
 #ifdef VIXL_NEGATIVE_TESTING
@@ -300,39 +332,42 @@
   SHOULD_FAIL_TEST_A32(ASM)        \
   SHOULD_FAIL_TEST_T32(ASM)
 #else
-#define SHOULD_FAIL_TEST_A32(ASM) \
-  printf("Skipping negative tests. To enable them, build with 'negative_testing=on'.\n");
-#define SHOULD_FAIL_TEST_T32(ASM) \
-  printf("Skipping negative tests. To enable them, build with 'negative_testing=on'.\n");
-#define SHOULD_FAIL_TEST_BOTH(ASM) \
-  printf("Skipping negative tests. To enable them, build with 'negative_testing=on'.\n");
+#define SHOULD_FAIL_TEST_A32(ASM)                            \
+  printf(                                                    \
+      "Skipping negative tests. To enable them, build with " \
+      "'negative_testing=on'.\n");
+#define SHOULD_FAIL_TEST_T32(ASM)                            \
+  printf(                                                    \
+      "Skipping negative tests. To enable them, build with " \
+      "'negative_testing=on'.\n");
+#define SHOULD_FAIL_TEST_BOTH(ASM)                           \
+  printf(                                                    \
+      "Skipping negative tests. To enable them, build with " \
+      "'negative_testing=on'.\n");
 #endif
 
 class TestDisassembler : public PrintDisassembler {
  public:
   TestDisassembler(std::ostream& os, uint32_t pc)  // NOLINT(runtime/references)
-      : PrintDisassembler(os, pc) {
-  }
+      : PrintDisassembler(os, pc) {}
 
   virtual void PrintCodeAddress(uint32_t code_address) VIXL_OVERRIDE {
     USE(code_address);
   }
 
-  virtual void PrintOpcode16(uint32_t opcode) VIXL_OVERRIDE {
-    USE(opcode);
-  }
+  virtual void PrintOpcode16(uint32_t opcode) VIXL_OVERRIDE { USE(opcode); }
 
-  virtual void PrintOpcode32(uint32_t opcode) VIXL_OVERRIDE {
-    USE(opcode);
-  }
+  virtual void PrintOpcode32(uint32_t opcode) VIXL_OVERRIDE { USE(opcode); }
 
-  void DisassembleA32(const CodeBuffer& buffer, ptrdiff_t start,
+  void DisassembleA32(const CodeBuffer& buffer,
+                      ptrdiff_t start,
                       ptrdiff_t end) {
     DisassembleA32Buffer(buffer.GetOffsetAddress<const uint32_t*>(start),
                          end - start);
   }
 
-  void DisassembleT32(const CodeBuffer& buffer, ptrdiff_t start,
+  void DisassembleT32(const CodeBuffer& buffer,
+                      ptrdiff_t start,
                       ptrdiff_t end) {
     DisassembleT32Buffer(buffer.GetOffsetAddress<const uint16_t*>(start),
                          end - start);
@@ -347,8 +382,9 @@
   START_COMPARE()
   masm.Add(r9, r10, r11);
   masm.GetBuffer()->Emit16(kLowestT32_32Opcode >> 16);
-  END_COMPARE("add r9, r10, r11\n"
-              "?\n");
+  END_COMPARE(
+      "add r9, r10, r11\n"
+      "?\n");
 
   CLEANUP();
 }
@@ -361,8 +397,9 @@
   START_COMPARE()
   masm.Add(r9, r10, r11);
   masm.Add(r0, r0, r1);
-  END_COMPARE("add r9, r10, r11\n"
-              "add r0, r1\n");
+  END_COMPARE(
+      "add r9, r10, r11\n"
+      "add r0, r1\n");
 
   CLEANUP();
 }
@@ -373,10 +410,8 @@
 
   // - Identities.
 
-  COMPARE_BOTH(Orn(r0, r1, 0),
-               "mvn r0, #0\n");
-  COMPARE_BOTH(Orn(r0, r0, 0xffffffff),
-               "");
+  COMPARE_BOTH(Orn(r0, r1, 0), "mvn r0, #0\n");
+  COMPARE_BOTH(Orn(r0, r0, 0xffffffff), "");
 
   // - Immediate form. This form does not need macro-assembler support
   //   for T32.
@@ -391,12 +426,9 @@
               "orrs r0, ip\n");
 
   //  - Too large immediate form.
-  COMPARE_BOTH(Orn(r0, r1, 0x00ffffff),
-               "orr r0, r1, #0xff000000\n");
-  COMPARE_BOTH(Orn(r0, r1, 0xff00ffff),
-               "orr r0, r1, #0xff0000\n");
-  COMPARE_BOTH(Orns(r0, r1, 0x00ffffff),
-               "orrs r0, r1, #0xff000000\n");
+  COMPARE_BOTH(Orn(r0, r1, 0x00ffffff), "orr r0, r1, #0xff000000\n");
+  COMPARE_BOTH(Orn(r0, r1, 0xff00ffff), "orr r0, r1, #0xff0000\n");
+  COMPARE_BOTH(Orns(r0, r1, 0x00ffffff), "orrs r0, r1, #0xff000000\n");
 
   COMPARE_A32(Orns(r0, r1, 0xabcd2345),
               "mov ip, #9029\n"
@@ -610,82 +642,82 @@
 
   COMPARE_BOTH(Ldr(r0, MemOperand(r1, 0xfff123)),
                "add r0, r1, #1044480\n"  // #0xff000
-               "add r0, #15728640\n"   // #0x00f00000
+               "add r0, #15728640\n"     // #0x00f00000
                "ldr r0, [r0, #291]\n");  // #0x123
   COMPARE_BOTH(Ldr(r0, MemOperand(r1, 0xff123)),
                "add r0, r1, #1044480\n"  // #0xff000
                "ldr r0, [r0, #291]\n");  // #0x123
   COMPARE_BOTH(Ldr(r0, MemOperand(r1, -0xff123)),
-               "sub r0, r1, #1048576\n"  // #0x100000
+               "sub r0, r1, #1048576\n"   // #0x100000
                "ldr r0, [r0, #3805]\n");  // #0xedd
 
   COMPARE_A32(Ldr(r0, MemOperand(r1, 0xfff123, PreIndex)),
-              "add r1, #1044480\n"  // #0xff000
-              "add r1, #15728640\n"  // #0x00f00000
+              "add r1, #1044480\n"       // #0xff000
+              "add r1, #15728640\n"      // #0x00f00000
               "ldr r0, [r1, #291]!\n");  // #0x123
   COMPARE_A32(Ldr(r0, MemOperand(r1, 0xff123, PreIndex)),
-              "add r1, #1044480\n"  // #0xff000
+              "add r1, #1044480\n"       // #0xff000
               "ldr r0, [r1, #291]!\n");  // #0x123
   COMPARE_A32(Ldr(r0, MemOperand(r1, -0xff123, PreIndex)),
-              "sub r1, #1048576\n"  // #0x100000
+              "sub r1, #1048576\n"        // #0x100000
               "ldr r0, [r1, #3805]!\n");  // #0xedd
 
   COMPARE_T32(Ldr(r0, MemOperand(r1, 0xfff12, PreIndex)),
-              "add r1, #65280\n"  // #0xff00
-              "add r1, #983040\n"  // #0x000f0000
+              "add r1, #65280\n"        // #0xff00
+              "add r1, #983040\n"       // #0x000f0000
               "ldr r0, [r1, #18]!\n");  // #0x12
   COMPARE_T32(Ldr(r0, MemOperand(r1, 0xff12, PreIndex)),
-              "add r1, #65280\n"  // #0xff00
+              "add r1, #65280\n"        // #0xff00
               "ldr r0, [r1, #18]!\n");  // #0x12
   COMPARE_T32(Ldr(r0, MemOperand(r1, -0xff12, PreIndex)),
-              "sub r1, #65536\n"  // #0x10000
+              "sub r1, #65536\n"         // #0x10000
               "ldr r0, [r1, #238]!\n");  // #0xee
 
   COMPARE_A32(Ldr(r0, MemOperand(r1, 0xfff123, PostIndex)),
-              "ldr r0, [r1], #291\n"  // #0x123
-              "add r1, #1044480\n"  // #0xff000
+              "ldr r0, [r1], #291\n"   // #0x123
+              "add r1, #1044480\n"     // #0xff000
               "add r1, #15728640\n");  // #0x00f00000
   COMPARE_A32(Ldr(r0, MemOperand(r1, 0xff123, PostIndex)),
               "ldr r0, [r1], #291\n"  // #0x123
               "add r1, #1044480\n");  // #0xff000
   COMPARE_A32(Ldr(r0, MemOperand(r1, -0xff123, PostIndex)),
               "ldr r0, [r1], #3805\n"  // #0xedd
-              "sub r1, #1048576\n");  // #0x100000
+              "sub r1, #1048576\n");   // #0x100000
 
   COMPARE_T32(Ldr(r0, MemOperand(r1, 0xfff12, PostIndex)),
               "ldr r0, [r1], #18\n"  // #0x12
-              "add r1, #65280\n"  // #0xff00
+              "add r1, #65280\n"     // #0xff00
               "add r1, #983040\n");  // #0x000f0000
   COMPARE_T32(Ldr(r0, MemOperand(r1, 0xff12, PostIndex)),
               "ldr r0, [r1], #18\n"  // #0x12
-              "add r1, #65280\n");  // #0xff00
+              "add r1, #65280\n");   // #0xff00
   COMPARE_T32(Ldr(r0, MemOperand(r1, -0xff12, PostIndex)),
               "ldr r0, [r1], #238\n"  // #0xee
-              "sub r1, #65536\n");  // #0x10000
+              "sub r1, #65536\n");    // #0x10000
 
   COMPARE_A32(Ldrh(r0, MemOperand(r1, 0xfff123)),
-              "add r0, r1, #61696\n"  // #0xf100
-              "add r0, #16711680\n"  // #0x00ff0000
+              "add r0, r1, #61696\n"    // #0xf100
+              "add r0, #16711680\n"     // #0x00ff0000
               "ldrh r0, [r0, #35]\n");  // #0x23
   COMPARE_T32(Ldrh(r0, MemOperand(r1, 0xfff123)),
-              "add r0, r1, #1044480\n"  // #0xff000
-              "add r0, #15728640\n"  // #0x00f00000
+              "add r0, r1, #1044480\n"   // #0xff000
+              "add r0, #15728640\n"      // #0x00f00000
               "ldrh r0, [r0, #291]\n");  // #0x123
 
   COMPARE_A32(Ldrh(r0, MemOperand(r1, 0xff123)),
-              "add r0, r1, #61696\n"  // #0xf100
-              "add r0, #983040\n"  // #0x000f0000
-              "ldrh r0, [r0, #35]\n"); // #0x23
+              "add r0, r1, #61696\n"    // #0xf100
+              "add r0, #983040\n"       // #0x000f0000
+              "ldrh r0, [r0, #35]\n");  // #0x23
   COMPARE_T32(Ldrh(r0, MemOperand(r1, 0xff123)),
-              "add r0, r1, #1044480\n"  // #0xff000
-              "ldrh r0, [r0, #291]\n"); // #0x123
+              "add r0, r1, #1044480\n"   // #0xff000
+              "ldrh r0, [r0, #291]\n");  // #0x123
   COMPARE_A32(Ldrh(r0, MemOperand(r1, -0xff123)),
-              "sub r0, r1, #61952\n"  // #0xf200
-              "sub r0, #983040\n"  // #0x000f0000
-              "ldrh r0, [r0, #221]\n"); // #0xdd
+              "sub r0, r1, #61952\n"     // #0xf200
+              "sub r0, #983040\n"        // #0x000f0000
+              "ldrh r0, [r0, #221]\n");  // #0xdd
   COMPARE_T32(Ldrh(r0, MemOperand(r1, -0xff123)),
-              "sub r0, r1, #1048576\n"   // #0x100000
-              "ldrh r0, [r0, #3805]\n"); // #0xedd
+              "sub r0, r1, #1048576\n"    // #0x100000
+              "ldrh r0, [r0, #3805]\n");  // #0xedd
 
   MUST_FAIL_TEST_BOTH(Ldr(r0, MemOperand(r0, 0xfff12, PreIndex)),
                       "Ill-formed 'ldr' instruction.\n");
@@ -699,8 +731,7 @@
   SETUP();
 
   // Register base and offset that we can encode in both A1 and T1.
-  COMPARE_BOTH(Ldr(r0, MemOperand(r1, r8, Offset)),
-               "ldr r0, [r1, r8]\n");
+  COMPARE_BOTH(Ldr(r0, MemOperand(r1, r8, Offset)), "ldr r0, [r1, r8]\n");
 
   // Negative register offset. Use the destination as a scratch register,
   // regardless of the values of the base and offset register.
@@ -731,38 +762,36 @@
               "sub r1, r2\n");
 
   // SP is allowed as base, offset and destination.
-  COMPARE_BOTH(Ldr(sp, MemOperand(sp, sp, Offset)),
-               "ldr sp, [sp, sp]\n");
+  COMPARE_BOTH(Ldr(sp, MemOperand(sp, sp, Offset)), "ldr sp, [sp, sp]\n");
 
   // PC is allowed as destination - make sure it is not used as a temporary
   // register.
-  COMPARE_BOTH(Ldr(pc, MemOperand(r0, r0, Offset)),
-               "ldr pc, [r0, r0]\n");
-  COMPARE_A32(Ldr(pc, MemOperand(r0, r0, PreIndex)),
-              "ldr pc, [r0, r0]!\n");
+  COMPARE_BOTH(Ldr(pc, MemOperand(r0, r0, Offset)), "ldr pc, [r0, r0]\n");
+  COMPARE_A32(Ldr(pc, MemOperand(r0, r0, PreIndex)), "ldr pc, [r0, r0]!\n");
   COMPARE_T32(Ldr(pc, MemOperand(r0, r0, PreIndex)),
               "add r0, r0\n"
               "ldr pc, [r0]\n");
-  COMPARE_A32(Ldr(pc, MemOperand(r0, r0, PostIndex)),
-              "ldr pc, [r0], r0\n");
+  COMPARE_A32(Ldr(pc, MemOperand(r0, r0, PostIndex)), "ldr pc, [r0], r0\n");
   COMPARE_T32(Ldr(pc, MemOperand(r0, r0, PostIndex)),
               "ldr pc, [r0]\n"
               "add r0, r0\n");
 
   // PC is allowed as register base in the offset variant only for A32.
-  COMPARE_A32(Ldr(r0, MemOperand(pc, r0, Offset)),
-              "ldr r0, [pc, r0]\n");
+  COMPARE_A32(Ldr(r0, MemOperand(pc, r0, Offset)), "ldr r0, [pc, r0]\n");
   MUST_FAIL_TEST_T32(Ldr(r0, MemOperand(pc, r0, Offset)),
                      "The MacroAssembler does not convert loads and stores with"
                      " a PC base register for T32.\n");
 
-  // PC is not allowed as register base in the pre-index and post-index variants.
+  // PC is not allowed as register base in the pre-index and post-index
+  // variants.
   MUST_FAIL_TEST_T32(Ldr(r0, MemOperand(pc, r0, PreIndex)),
                      "The MacroAssembler does not convert loads and stores "
-                     "with a PC base register in pre-index or post-index mode.\n");
+                     "with a PC base register in pre-index or post-index "
+                     "mode.\n");
   MUST_FAIL_TEST_T32(Ldr(r0, MemOperand(pc, r0, PostIndex)),
                      "The MacroAssembler does not convert loads and stores "
-                     "with a PC base register in pre-index or post-index mode.\n");
+                     "with a PC base register in pre-index or post-index "
+                     "mode.\n");
 
   // We don't convert loads with PC as the register offset.
   MUST_FAIL_TEST_T32(Ldr(r0, MemOperand(r0, minus, pc, Offset)),
@@ -771,7 +800,7 @@
   MUST_FAIL_TEST_T32(Ldr(r0, MemOperand(r0, pc, PreIndex)),
                      "The MacroAssembler does not convert loads and stores "
                      "with a PC offset register.\n");
-  MUST_FAIL_TEST_T32(Ldr(r0, MemOperand(r0, pc,  PostIndex)),
+  MUST_FAIL_TEST_T32(Ldr(r0, MemOperand(r0, pc, PostIndex)),
                      "The MacroAssembler does not convert loads and stores "
                      "with a PC offset register.\n");
 
@@ -788,9 +817,9 @@
   SHOULD_FAIL_TEST_A32(Ldr(r0, MemOperand(r0, r1, PreIndex)));
   SHOULD_FAIL_TEST_A32(Ldr(r0, MemOperand(r0, r1, PostIndex)));
   MUST_FAIL_TEST_T32(Ldr(r0, MemOperand(r0, r1, PreIndex)),
-                      "Ill-formed 'ldr' instruction.\n");
+                     "Ill-formed 'ldr' instruction.\n");
   MUST_FAIL_TEST_T32(Ldr(r0, MemOperand(r0, r1, PostIndex)),
-                      "Ill-formed 'ldr' instruction.\n");
+                     "Ill-formed 'ldr' instruction.\n");
 
   CLEANUP();
 }
@@ -800,8 +829,7 @@
   SETUP();
 
   // Register base and offset that we can encode in both A1 and T1.
-  COMPARE_BOTH(Str(r0, MemOperand(r1, r8, Offset)),
-               "str r0, [r1, r8]\n");
+  COMPARE_BOTH(Str(r0, MemOperand(r1, r8, Offset)), "str r0, [r1, r8]\n");
 
   // Negative register offset.
   COMPARE_T32(Str(r0, MemOperand(r0, minus, r0, Offset)),
@@ -831,35 +859,33 @@
               "sub r1, r2\n");
 
   // SP is allowed as base, offset and source.
-  COMPARE_BOTH(Str(sp, MemOperand(sp, sp, Offset)),
-               "str sp, [sp, sp]\n");
+  COMPARE_BOTH(Str(sp, MemOperand(sp, sp, Offset)), "str sp, [sp, sp]\n");
 
   // TODO: PC is allowed as the value we are storing for A32, but
   //       should not be allowed for T32 (unpredictable).
-  COMPARE_A32(Str(pc, MemOperand(r0, r0, Offset)),
-              "str pc, [r0, r0]\n");
-  COMPARE_A32(Str(pc, MemOperand(r0, r0, PreIndex)),
-              "str pc, [r0, r0]!\n");
-  COMPARE_A32(Str(pc, MemOperand(r0, r0, PostIndex)),
-              "str pc, [r0], r0\n");
+  COMPARE_A32(Str(pc, MemOperand(r0, r0, Offset)), "str pc, [r0, r0]\n");
+  COMPARE_A32(Str(pc, MemOperand(r0, r0, PreIndex)), "str pc, [r0, r0]!\n");
+  COMPARE_A32(Str(pc, MemOperand(r0, r0, PostIndex)), "str pc, [r0], r0\n");
   SHOULD_FAIL_TEST_T32(Str(pc, MemOperand(r0, r0, Offset)));
   SHOULD_FAIL_TEST_T32(Str(pc, MemOperand(r0, r0, PreIndex)));
   SHOULD_FAIL_TEST_T32(Str(pc, MemOperand(r0, r0, PostIndex)));
 
   // PC is allowed as register base in the offset variant only for A32.
-  COMPARE_A32(Str(r0, MemOperand(pc, r0, Offset)),
-              "str r0, [pc, r0]\n");
+  COMPARE_A32(Str(r0, MemOperand(pc, r0, Offset)), "str r0, [pc, r0]\n");
   MUST_FAIL_TEST_T32(Str(r0, MemOperand(pc, r0, Offset)),
                      "The MacroAssembler does not convert loads and stores with"
                      " a PC base register for T32.\n");
 
-  // PC is not allowed as register base in the pre-index and post-index variants.
+  // PC is not allowed as register base in the pre-index and post-index
+  // variants.
   MUST_FAIL_TEST_T32(Str(r0, MemOperand(pc, r0, PreIndex)),
                      "The MacroAssembler does not convert loads and stores "
-                     "with a PC base register in pre-index or post-index mode.\n");
+                     "with a PC base register in pre-index or post-index "
+                     "mode.\n");
   MUST_FAIL_TEST_T32(Str(r0, MemOperand(pc, r0, PostIndex)),
                      "The MacroAssembler does not convert loads and stores "
-                     "with a PC base register in pre-index or post-index mode.\n");
+                     "with a PC base register in pre-index or post-index "
+                     "mode.\n");
 
   // We don't convert loads with PC as the register offset.
   MUST_FAIL_TEST_T32(Str(r0, MemOperand(r0, minus, pc, Offset)),
@@ -868,7 +894,7 @@
   MUST_FAIL_TEST_T32(Str(r0, MemOperand(r0, pc, PreIndex)),
                      "The MacroAssembler does not convert loads and stores "
                      "with a PC offset register.\n");
-  MUST_FAIL_TEST_T32(Str(r0, MemOperand(r0, pc,  PostIndex)),
+  MUST_FAIL_TEST_T32(Str(r0, MemOperand(r0, pc, PostIndex)),
                      "The MacroAssembler does not convert loads and stores "
                      "with a PC offset register.\n");
 
@@ -885,9 +911,9 @@
   SHOULD_FAIL_TEST_A32(Str(r0, MemOperand(r0, r1, PreIndex)));
   SHOULD_FAIL_TEST_A32(Str(r0, MemOperand(r0, r1, PostIndex)));
   MUST_FAIL_TEST_T32(Str(r0, MemOperand(r0, r1, PreIndex)),
-                      "Ill-formed 'str' instruction.\n");
+                     "Ill-formed 'str' instruction.\n");
   MUST_FAIL_TEST_T32(Str(r0, MemOperand(r0, r1, PostIndex)),
-                      "Ill-formed 'str' instruction.\n");
+                     "Ill-formed 'str' instruction.\n");
 
   CLEANUP();
 }
@@ -898,34 +924,29 @@
 
   // - Tests with no offset.
 
-  COMPARE_BOTH(Ldrd(r0, r1, MemOperand(r3)),
-               "ldrd r0, r1, [r3]\n");
+  COMPARE_BOTH(Ldrd(r0, r1, MemOperand(r3)), "ldrd r0, r1, [r3]\n");
   // Destination registers need to start with a even numbered register on A32.
   MUST_FAIL_TEST_A32(Ldrd(r1, r2, MemOperand(r3)),
                      "Unpredictable instruction.\n");
-  COMPARE_T32(Ldrd(r1, r2, MemOperand(r3)),
-              "ldrd r1, r2, [r3]\n");
+  COMPARE_T32(Ldrd(r1, r2, MemOperand(r3)), "ldrd r1, r2, [r3]\n");
   // Registers need to be adjacent on A32.
   MUST_FAIL_TEST_A32(Ldrd(r0, r2, MemOperand(r1)),
                      "Ill-formed 'ldrd' instruction.\n");
-  COMPARE_T32(Ldrd(r0, r2, MemOperand(r1)),
-              "ldrd r0, r2, [r1]\n");
+  COMPARE_T32(Ldrd(r0, r2, MemOperand(r1)), "ldrd r0, r2, [r1]\n");
 
-  COMPARE_BOTH(Ldrd(r0, r1, MemOperand(r2)),
-               "ldrd r0, r1, [r2]\n");
+  COMPARE_BOTH(Ldrd(r0, r1, MemOperand(r2)), "ldrd r0, r1, [r2]\n");
 
   // - Tests with immediate offsets.
 
   COMPARE_A32(Ldrd(r0, r1, MemOperand(r2, 1020)),
-               "add r0, r2, #1020\n"
-               "ldrd r0, r1, [r0]\n");
-  COMPARE_T32(Ldrd(r0, r1, MemOperand(r2, 1020)),
-               "ldrd r0, r1, [r2, #1020]\n");
+              "add r0, r2, #1020\n"
+              "ldrd r0, r1, [r0]\n");
+  COMPARE_T32(Ldrd(r0, r1, MemOperand(r2, 1020)), "ldrd r0, r1, [r2, #1020]\n");
   COMPARE_A32(Ldrd(r0, r1, MemOperand(r2, -1020)),
-               "sub r0, r2, #1020\n"
-               "ldrd r0, r1, [r0]\n");
+              "sub r0, r2, #1020\n"
+              "ldrd r0, r1, [r0]\n");
   COMPARE_T32(Ldrd(r0, r1, MemOperand(r2, -1020)),
-               "ldrd r0, r1, [r2, #-1020]\n");
+              "ldrd r0, r1, [r2, #-1020]\n");
 
   COMPARE_A32(Ldrd(r0, r1, MemOperand(r2, 0xabcc)),
               "add r0, r2, #43776\n"
@@ -1080,8 +1101,7 @@
 
   // - Tests with register offsets.
 
-  COMPARE_A32(Ldrd(r0, r1, MemOperand(r2, r3)),
-              "ldrd r0, r1, [r2, r3]\n");
+  COMPARE_A32(Ldrd(r0, r1, MemOperand(r2, r3)), "ldrd r0, r1, [r2, r3]\n");
   COMPARE_T32(Ldrd(r0, r1, MemOperand(r2, r3)),
               "add r0, r2, r3\n"
               "ldrd r0, r1, [r0]\n");
@@ -1151,29 +1171,24 @@
 
   // - Tests with no offset.
 
-  COMPARE_BOTH(Strd(r0, r1, MemOperand(r3)),
-               "strd r0, r1, [r3]\n");
+  COMPARE_BOTH(Strd(r0, r1, MemOperand(r3)), "strd r0, r1, [r3]\n");
   // Destination registers need to start with a even numbered register on A32.
   MUST_FAIL_TEST_A32(Strd(r1, r2, MemOperand(r3)),
                      "Unpredictable instruction.\n");
-  COMPARE_T32(Strd(r1, r2, MemOperand(r3)),
-              "strd r1, r2, [r3]\n");
+  COMPARE_T32(Strd(r1, r2, MemOperand(r3)), "strd r1, r2, [r3]\n");
   // Registers need to be adjacent on A32.
   MUST_FAIL_TEST_A32(Strd(r0, r2, MemOperand(r1)),
                      "Ill-formed 'strd' instruction.\n");
-  COMPARE_T32(Strd(r0, r2, MemOperand(r1)),
-              "strd r0, r2, [r1]\n");
+  COMPARE_T32(Strd(r0, r2, MemOperand(r1)), "strd r0, r2, [r1]\n");
 
-  COMPARE_BOTH(Strd(r0, r1, MemOperand(r2)),
-               "strd r0, r1, [r2]\n");
+  COMPARE_BOTH(Strd(r0, r1, MemOperand(r2)), "strd r0, r1, [r2]\n");
 
   // - Tests with immediate offsets.
 
   COMPARE_A32(Strd(r0, r1, MemOperand(r2, 1020)),
               "add ip, r2, #1020\n"
               "strd r0, r1, [ip]\n");
-  COMPARE_T32(Strd(r0, r1, MemOperand(r2, 1020)),
-              "strd r0, r1, [r2, #1020]\n");
+  COMPARE_T32(Strd(r0, r1, MemOperand(r2, 1020)), "strd r0, r1, [r2, #1020]\n");
   COMPARE_A32(Strd(r0, r1, MemOperand(r2, -1020)),
               "sub ip, r2, #1020\n"
               "strd r0, r1, [ip]\n");
@@ -1333,8 +1348,7 @@
 
   // - Tests with register offsets.
 
-  COMPARE_A32(Strd(r0, r1, MemOperand(r2, r3)),
-              "strd r0, r1, [r2, r3]\n");
+  COMPARE_A32(Strd(r0, r1, MemOperand(r2, r3)), "strd r0, r1, [r2, r3]\n");
   COMPARE_T32(Strd(r0, r1, MemOperand(r2, r3)),
               "add ip, r2, r3\n"
               "strd r0, r1, [ip]\n");
@@ -1404,18 +1418,18 @@
   SETUP();
 
   COMPARE_BOTH(Adc(r0, r1, 0xbadbeef),
-              "mov r0, #48879\n"
-              "movt r0, #2989\n"
-              "adc r0, r1, r0\n");
+               "mov r0, #48879\n"
+               "movt r0, #2989\n"
+               "adc r0, r1, r0\n");
 
   COMPARE_BOTH(Add(r0, r0, 0xbadbeef),
-              "mov ip, #48879\n"
-              "movt ip, #2989\n"
-              "add r0, ip\n");
+               "mov ip, #48879\n"
+               "movt ip, #2989\n"
+               "add r0, ip\n");
 
   COMPARE_BOTH(Mov(r0, 0xbadbeef),
-              "mov r0, #48879\n"
-              "movt r0, #2989\n");
+               "mov r0, #48879\n"
+               "movt r0, #2989\n");
   COMPARE_A32(Mov(eq, r0, 0xbadbeef),
               "moveq r0, #48879\n"
               "movteq r0, #2989\n");
@@ -1425,9 +1439,9 @@
               "movt r0, #2989\n");
 
   COMPARE_BOTH(Movs(r0, 0xbadbeef),
-              "mov r0, #48879\n"
-              "movt r0, #2989\n"
-              "tst r0, r0\n");
+               "mov r0, #48879\n"
+               "movt r0, #2989\n"
+               "tst r0, r0\n");
   COMPARE_A32(Movs(eq, r0, 0xbadbeef),
               "moveq r0, #48879\n"
               "movteq r0, #2989\n"
@@ -1437,16 +1451,14 @@
               "mov r0, #48879\n"
               "movt r0, #2989\n"
               "tst r0, r0\n");
-  COMPARE_A32(Movs(pc, 0x1),
-              "movs pc, #1\n");
+  COMPARE_A32(Movs(pc, 0x1), "movs pc, #1\n");
   MUST_FAIL_TEST_T32(Movs(pc, 0x1), "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_BOTH(Movs(pc, 0xbadbeed),
-                      "Ill-formed 'movs' instruction.\n");
+  MUST_FAIL_TEST_BOTH(Movs(pc, 0xbadbeed), "Ill-formed 'movs' instruction.\n");
 
   COMPARE_BOTH(Mov(pc, 0xbadbeef),
-              "mov ip, #48879\n"
-              "movt ip, #2989\n"
-              "bx ip\n");
+               "mov ip, #48879\n"
+               "movt ip, #2989\n"
+               "bx ip\n");
   COMPARE_A32(Mov(eq, pc, 0xbadbeef),
               "mov ip, #48879\n"
               "movt ip, #2989\n"
@@ -1465,10 +1477,8 @@
   SETUP();
 
   // Identities.
-  COMPARE_BOTH(And(r0, r1, 0),
-               "mov r0, #0\n");
-  COMPARE_BOTH(And(r0, r0, 0xffffffff),
-               "");
+  COMPARE_BOTH(And(r0, r1, 0), "mov r0, #0\n");
+  COMPARE_BOTH(And(r0, r0, 0xffffffff), "");
   CLEANUP();
 }
 
@@ -1477,10 +1487,8 @@
   SETUP();
 
   // Identities.
-  COMPARE_BOTH(Bic(r0, r1, 0xffffffff),
-               "mov r0, #0\n");
-  COMPARE_BOTH(Bic(r0, r0, 0),
-               "");
+  COMPARE_BOTH(Bic(r0, r1, 0xffffffff), "mov r0, #0\n");
+  COMPARE_BOTH(Bic(r0, r0, 0), "");
   CLEANUP();
 }
 
@@ -1489,10 +1497,8 @@
   SETUP();
 
   // Identities.
-  COMPARE_BOTH(Orr(r0, r1, 0xffffffff),
-               "mvn r0, #0\n");
-  COMPARE_BOTH(Orr(r0, r0, 0),
-               "");
+  COMPARE_BOTH(Orr(r0, r1, 0xffffffff), "mvn r0, #0\n");
+  COMPARE_BOTH(Orr(r0, r0, 0), "");
   CLEANUP();
 }
 
@@ -1502,52 +1508,34 @@
 
   // Special case for Orr <-> Orn correspondance.
 
-  COMPARE_T32(Orr(r0, r1, 0x00ffffff),
-              "orn r0, r1, #0xff000000\n");
-  COMPARE_T32(Orrs(r0, r1, 0x00ffffff),
-              "orns r0, r1, #0xff000000\n");
+  COMPARE_T32(Orr(r0, r1, 0x00ffffff), "orn r0, r1, #0xff000000\n");
+  COMPARE_T32(Orrs(r0, r1, 0x00ffffff), "orns r0, r1, #0xff000000\n");
 
   // Encodable immediates.
 
-  COMPARE_A32(Add(r0, r1, -1),
-              "sub r0, r1, #1\n");
-  COMPARE_A32(Adds(r0, r1, -1),
-              "subs r0, r1, #1\n");
+  COMPARE_A32(Add(r0, r1, -1), "sub r0, r1, #1\n");
+  COMPARE_A32(Adds(r0, r1, -1), "subs r0, r1, #1\n");
   // 0xffffffff is encodable in a T32 ADD.
-  COMPARE_T32(Add(r0, r1, -1),
-              "add r0, r1, #4294967295\n");
-  COMPARE_T32(Adds(r0, r1, -1),
-              "adds r0, r1, #4294967295\n");
+  COMPARE_T32(Add(r0, r1, -1), "add r0, r1, #4294967295\n");
+  COMPARE_T32(Adds(r0, r1, -1), "adds r0, r1, #4294967295\n");
 
-  COMPARE_BOTH(Add(r0, r1, -4),
-              "sub r0, r1, #4\n");
-  COMPARE_BOTH(Adds(r0, r1, -4),
-              "subs r0, r1, #4\n");
+  COMPARE_BOTH(Add(r0, r1, -4), "sub r0, r1, #4\n");
+  COMPARE_BOTH(Adds(r0, r1, -4), "subs r0, r1, #4\n");
 
-  COMPARE_BOTH(Adc(r0, r1, -2),
-              "sbc r0, r1, #1\n");
-  COMPARE_BOTH(Adcs(r0, r1, -2),
-              "sbcs r0, r1, #1\n");
+  COMPARE_BOTH(Adc(r0, r1, -2), "sbc r0, r1, #1\n");
+  COMPARE_BOTH(Adcs(r0, r1, -2), "sbcs r0, r1, #1\n");
 
-  COMPARE_A32(Sub(r0, r1, -1),
-              "add r0, r1, #1\n");
-  COMPARE_A32(Subs(r0, r1, -1),
-              "adds r0, r1, #1\n");
+  COMPARE_A32(Sub(r0, r1, -1), "add r0, r1, #1\n");
+  COMPARE_A32(Subs(r0, r1, -1), "adds r0, r1, #1\n");
   // 0xffffffff is encodable in a T32 SUB.
-  COMPARE_T32(Sub(r0, r1, -1),
-              "sub r0, r1, #4294967295\n");
-  COMPARE_T32(Subs(r0, r1, -1),
-              "subs r0, r1, #4294967295\n");
+  COMPARE_T32(Sub(r0, r1, -1), "sub r0, r1, #4294967295\n");
+  COMPARE_T32(Subs(r0, r1, -1), "subs r0, r1, #4294967295\n");
 
-  COMPARE_BOTH(Sub(r0, r1, -4),
-              "add r0, r1, #4\n");
-  COMPARE_BOTH(Subs(r0, r1, -4),
-              "adds r0, r1, #4\n");
+  COMPARE_BOTH(Sub(r0, r1, -4), "add r0, r1, #4\n");
+  COMPARE_BOTH(Subs(r0, r1, -4), "adds r0, r1, #4\n");
 
-  COMPARE_BOTH(Sbc(r0, r1, -5),
-              "adc r0, r1, #4\n");
-  COMPARE_BOTH(Sbcs(r0, r1, -5),
-              "adcs r0, r1, #4\n");
+  COMPARE_BOTH(Sbc(r0, r1, -5), "adc r0, r1, #4\n");
+  COMPARE_BOTH(Sbcs(r0, r1, -5), "adcs r0, r1, #4\n");
 
   // Non-encodable immediates
 
@@ -1556,7 +1544,7 @@
                "adc r0, r1, r0\n");
 
   COMPARE_BOTH(Adc(r0, r1, -0xabcd),
-               "mov r0, #43980\n" // This represents #0xabcd - 1.
+               "mov r0, #43980\n"  // This represents #0xabcd - 1.
                "sbc r0, r1, r0\n");
 
   COMPARE_BOTH(Adc(r0, r1, 0x1234abcd),
@@ -1565,7 +1553,7 @@
                "adc r0, r1, r0\n");
 
   COMPARE_BOTH(Adc(r0, r1, -0x1234abcd),
-               "mov r0, #43980\n" // This represents #0x1234abcd - 1.
+               "mov r0, #43980\n"  // This represents #0x1234abcd - 1.
                "movt r0, #4660\n"
                "sbc r0, r1, r0\n");
 
@@ -1576,7 +1564,7 @@
                "sbc r0, ip\n");
 
   COMPARE_BOTH(Sbc(r0, r0, -0xabcd),
-               "mov ip, #43980\n" // This represents #0xabcd - 1.
+               "mov ip, #43980\n"  // This represents #0xabcd - 1.
                "adc r0, ip\n");
 
   COMPARE_BOTH(Sbc(r0, r0, 0x1234abcd),
@@ -1585,7 +1573,7 @@
                "sbc r0, ip\n");
 
   COMPARE_BOTH(Sbc(r0, r0, -0x1234abcd),
-               "mov ip, #43980\n" // This represents #0x1234abcd - 1.
+               "mov ip, #43980\n"  // This represents #0x1234abcd - 1.
                "movt ip, #4660\n"
                "adc r0, ip\n");
 
@@ -1659,14 +1647,14 @@
   // Make sure GetArchitectureStatePCOffset() returns the correct value.
   __ UseT32();
   // Largest encodable offset.
-  Label label_126(__ GetCursorOffset() + __ GetArchitectureStatePCOffset(), 126);
-  COMPARE_T32(Cbz(r0, &label_126),
-              "cbz r0, 0x00000082\n");
-  COMPARE_T32(Cbnz(r0, &label_126),
-              "cbnz r0, 0x00000082\n");
+  Label label_126(__ GetCursorOffset() + __ GetArchitectureStatePCOffset(),
+                  126);
+  COMPARE_T32(Cbz(r0, &label_126), "cbz r0, 0x00000082\n");
+  COMPARE_T32(Cbnz(r0, &label_126), "cbnz r0, 0x00000082\n");
 
   // Offset cannot be encoded.
-  Label label_128(__ GetCursorOffset() + __ GetArchitectureStatePCOffset(), 128);
+  Label label_128(__ GetCursorOffset() + __ GetArchitectureStatePCOffset(),
+                  128);
   COMPARE_T32(Cbz(r0, &label_128),
               "cbnz r0, 0x00000004\n"
               "b 0x00000084\n");
@@ -1675,7 +1663,8 @@
               "b 0x00000084\n");
 
   // Offset that cannot be encoded and needs 32-bit branch instruction.
-  Label label_8192(__ GetCursorOffset() + __ GetArchitectureStatePCOffset(), 8192);
+  Label label_8192(__ GetCursorOffset() + __ GetArchitectureStatePCOffset(),
+                   8192);
   COMPARE_T32(Cbz(r0, &label_8192),
               "cbnz r0, 0x00000006\n"
               "b 0x00002004\n");
@@ -1693,7 +1682,8 @@
               "b 0xfffffffc\n");
 
   // Large negative offset.
-  Label label_neg128(__ GetCursorOffset() + __ GetArchitectureStatePCOffset(), -128);
+  Label label_neg128(__ GetCursorOffset() + __ GetArchitectureStatePCOffset(),
+                     -128);
   COMPARE_T32(Cbz(r0, &label_neg128),
               "cbnz r0, 0x00000004\n"
               "b 0xffffff84\n");
@@ -1706,206 +1696,176 @@
 }
 
 
-#define TEST_VMEMOP(MACRO_OP, STRING_OP, DST_REG)                       \
-  SETUP();                                                              \
-                                                                        \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, 1024)),                  \
-              "add ip, r8, #1024\n"                                     \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, 1371)),                  \
-              "add ip, r8, #1371\n"                                     \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, 4113)),                  \
-              "add ip, r8, #17\n"                                       \
-              "add ip, #4096\n"                                         \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, 65808)),                 \
-              "add ip, r8, #272\n"                                      \
-              "add ip, #65536\n"                                        \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-                                                                        \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, -1024)),                 \
-              "sub ip, r8, #1024\n"                                     \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, -1371)),                 \
-              "sub ip, r8, #1371\n"                                     \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, -4113)),                 \
-              "sub ip, r8, #17\n"                                       \
-              "sub ip, #4096\n"                                         \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, -65808)),                \
-              "sub ip, r8, #272\n"                                      \
-              "sub ip, #65536\n"                                        \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-                                                                        \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, 0, PreIndex)),           \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, 137, PreIndex)),         \
-              "add r9, #137\n"                                          \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, 4110, PreIndex)),        \
-              "add r9, #14\n"                                           \
-              "add r9, #4096\n"                                         \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, 65623, PreIndex)),       \
-              "add r9, #87\n"                                           \
-              "add r9, #65536\n"                                        \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-                                                                        \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, -137, PreIndex)),        \
-              "sub r9, #137\n"                                          \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, -4110, PreIndex)),       \
-              "sub r9, #14\n"                                           \
-              "sub r9, #4096\n"                                         \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, -65623, PreIndex)),      \
-              "sub r9, #87\n"                                           \
-              "sub r9, #65536\n"                                        \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-                                                                        \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, 0, PostIndex)),         \
-              STRING_OP # DST_REG ", [r10]\n");                         \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, 137, PostIndex)),       \
-              STRING_OP # DST_REG ", [r10]\n"                           \
-              "add r10, #137\n");                                       \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, 4110, PostIndex)),      \
-              STRING_OP # DST_REG ", [r10]\n"                           \
-              "add r10, #14\n"                                          \
-              "add r10, #4096\n");                                      \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, 65623, PostIndex)),     \
-              STRING_OP # DST_REG ", [r10]\n"                           \
-              "add r10, #87\n"                                          \
-              "add r10, #65536\n");                                     \
-                                                                        \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, -137, PostIndex)),      \
-              STRING_OP # DST_REG ", [r10]\n"                           \
-              "sub r10, #137\n");                                       \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, -4110, PostIndex)),     \
-              STRING_OP # DST_REG ", [r10]\n"                           \
-              "sub r10, #14\n"                                          \
-              "sub r10, #4096\n");                                      \
-  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, -65623, PostIndex)),    \
-              STRING_OP # DST_REG ", [r10]\n"                           \
-              "sub r10, #87\n"                                          \
-              "sub r10, #65536\n");                                     \
+#define TEST_VMEMOP(MACRO_OP, STRING_OP, DST_REG)                    \
+  SETUP();                                                           \
+                                                                     \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, 1024)),               \
+              "add ip, r8, #1024\n" STRING_OP #DST_REG ", [ip]\n");  \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, 1371)),               \
+              "add ip, r8, #1371\n" STRING_OP #DST_REG ", [ip]\n");  \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, 4113)),               \
+              "add ip, r8, #17\n"                                    \
+              "add ip, #4096\n" STRING_OP #DST_REG ", [ip]\n");      \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, 65808)),              \
+              "add ip, r8, #272\n"                                   \
+              "add ip, #65536\n" STRING_OP #DST_REG ", [ip]\n");     \
+                                                                     \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, -1024)),              \
+              "sub ip, r8, #1024\n" STRING_OP #DST_REG ", [ip]\n");  \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, -1371)),              \
+              "sub ip, r8, #1371\n" STRING_OP #DST_REG ", [ip]\n");  \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, -4113)),              \
+              "sub ip, r8, #17\n"                                    \
+              "sub ip, #4096\n" STRING_OP #DST_REG ", [ip]\n");      \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r8, -65808)),             \
+              "sub ip, r8, #272\n"                                   \
+              "sub ip, #65536\n" STRING_OP #DST_REG ", [ip]\n");     \
+                                                                     \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, 0, PreIndex)),        \
+              STRING_OP #DST_REG ", [r9]\n");                        \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, 137, PreIndex)),      \
+              "add r9, #137\n" STRING_OP #DST_REG ", [r9]\n");       \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, 4110, PreIndex)),     \
+              "add r9, #14\n"                                        \
+              "add r9, #4096\n" STRING_OP #DST_REG ", [r9]\n");      \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, 65623, PreIndex)),    \
+              "add r9, #87\n"                                        \
+              "add r9, #65536\n" STRING_OP #DST_REG ", [r9]\n");     \
+                                                                     \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, -137, PreIndex)),     \
+              "sub r9, #137\n" STRING_OP #DST_REG ", [r9]\n");       \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, -4110, PreIndex)),    \
+              "sub r9, #14\n"                                        \
+              "sub r9, #4096\n" STRING_OP #DST_REG ", [r9]\n");      \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r9, -65623, PreIndex)),   \
+              "sub r9, #87\n"                                        \
+              "sub r9, #65536\n" STRING_OP #DST_REG ", [r9]\n");     \
+                                                                     \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, 0, PostIndex)),      \
+              STRING_OP #DST_REG ", [r10]\n");                       \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, 137, PostIndex)),    \
+              STRING_OP #DST_REG                                     \
+              ", [r10]\n"                                            \
+              "add r10, #137\n");                                    \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, 4110, PostIndex)),   \
+              STRING_OP #DST_REG                                     \
+              ", [r10]\n"                                            \
+              "add r10, #14\n"                                       \
+              "add r10, #4096\n");                                   \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, 65623, PostIndex)),  \
+              STRING_OP #DST_REG                                     \
+              ", [r10]\n"                                            \
+              "add r10, #87\n"                                       \
+              "add r10, #65536\n");                                  \
+                                                                     \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, -137, PostIndex)),   \
+              STRING_OP #DST_REG                                     \
+              ", [r10]\n"                                            \
+              "sub r10, #137\n");                                    \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, -4110, PostIndex)),  \
+              STRING_OP #DST_REG                                     \
+              ", [r10]\n"                                            \
+              "sub r10, #14\n"                                       \
+              "sub r10, #4096\n");                                   \
+  COMPARE_T32(MACRO_OP(DST_REG, MemOperand(r10, -65623, PostIndex)), \
+              STRING_OP #DST_REG                                     \
+              ", [r10]\n"                                            \
+              "sub r10, #87\n"                                       \
+              "sub r10, #65536\n");                                  \
   CLEANUP();
 
-TEST(macro_assembler_T32_Vldr_d) {
-  TEST_VMEMOP(Vldr, "vldr ", d0);
-}
+TEST(macro_assembler_T32_Vldr_d) { TEST_VMEMOP(Vldr, "vldr ", d0); }
 
-TEST(macro_assembler_T32_Vstr_d) {
-  TEST_VMEMOP(Vstr, "vstr ", d1);
-}
+TEST(macro_assembler_T32_Vstr_d) { TEST_VMEMOP(Vstr, "vstr ", d1); }
 
-TEST(macro_assembler_T32_Vldr_s) {
-  TEST_VMEMOP(Vldr, "vldr ", s2);
-}
+TEST(macro_assembler_T32_Vldr_s) { TEST_VMEMOP(Vldr, "vldr ", s2); }
 
-TEST(macro_assembler_T32_Vstr_s) {
-  TEST_VMEMOP(Vstr, "vstr ", s3);
-}
+TEST(macro_assembler_T32_Vstr_s) { TEST_VMEMOP(Vstr, "vstr ", s3); }
 
 #undef TEST_VMEMOP
 
-#define TEST_VMEMOP(MACRO_OP, STRING_OP, DST_REG)                       \
-  SETUP();                                                              \
-                                                                        \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r8, 137)),                   \
-              "add ip, r8, #137\n"                                      \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r8, 274)),                   \
-              "add ip, r8, #18\n"                                       \
-              "add ip, #256\n"                                          \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r8, 65623)),                 \
-              "add ip, r8, #87\n"                                       \
-              "add ip, #65536\n"                                        \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-                                                                        \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r8, -137)),                  \
-              "sub ip, r8, #137\n"                                      \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r8, -274)),                  \
-              "sub ip, r8, #18\n"                                       \
-              "sub ip, #256\n"                                          \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r8, -65623)),                \
-              "sub ip, r8, #87\n"                                       \
-              "sub ip, #65536\n"                                        \
-              STRING_OP # DST_REG ", [ip]\n");                          \
-                                                                        \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, 0, PreIndex)),           \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, 137, PreIndex)),         \
-              "add r9, #137\n"                                          \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, 274, PreIndex)),         \
-              "add r9, #18\n"                                           \
-              "add r9, #256\n"                                          \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, 65623, PreIndex)),       \
-              "add r9, #87\n"                                           \
-              "add r9, #65536\n"                                        \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-                                                                        \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, -137, PreIndex)),        \
-              "sub r9, #137\n"                                          \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, -274, PreIndex)),        \
-              "sub r9, #18\n"                                           \
-              "sub r9, #256\n"                                          \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, -65623, PreIndex)),      \
-              "sub r9, #87\n"                                           \
-              "sub r9, #65536\n"                                        \
-              STRING_OP # DST_REG ", [r9]\n");                          \
-                                                                        \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, 0, PostIndex)),         \
-              STRING_OP # DST_REG ", [r10]\n");                         \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, 137, PostIndex)),       \
-              STRING_OP # DST_REG ", [r10]\n"                           \
-              "add r10, #137\n");                                       \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, 274, PostIndex)),       \
-              STRING_OP # DST_REG ", [r10]\n"                           \
-              "add r10, #18\n"                                          \
-              "add r10, #256\n");                                       \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, 65623, PostIndex)),     \
-              STRING_OP # DST_REG ", [r10]\n"                           \
-              "add r10, #87\n"                                          \
-              "add r10, #65536\n");                                     \
-                                                                        \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, -137, PostIndex)),      \
-              STRING_OP # DST_REG ", [r10]\n"                           \
-              "sub r10, #137\n");                                       \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, -274, PostIndex)),      \
-              STRING_OP # DST_REG ", [r10]\n"                           \
-              "sub r10, #18\n"                                          \
-              "sub r10, #256\n");                                       \
-  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, -65623, PostIndex)),    \
-              STRING_OP # DST_REG ", [r10]\n"                           \
-              "sub r10, #87\n"                                          \
-              "sub r10, #65536\n");                                     \
+#define TEST_VMEMOP(MACRO_OP, STRING_OP, DST_REG)                    \
+  SETUP();                                                           \
+                                                                     \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r8, 137)),                \
+              "add ip, r8, #137\n" STRING_OP #DST_REG ", [ip]\n");   \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r8, 274)),                \
+              "add ip, r8, #18\n"                                    \
+              "add ip, #256\n" STRING_OP #DST_REG ", [ip]\n");       \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r8, 65623)),              \
+              "add ip, r8, #87\n"                                    \
+              "add ip, #65536\n" STRING_OP #DST_REG ", [ip]\n");     \
+                                                                     \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r8, -137)),               \
+              "sub ip, r8, #137\n" STRING_OP #DST_REG ", [ip]\n");   \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r8, -274)),               \
+              "sub ip, r8, #18\n"                                    \
+              "sub ip, #256\n" STRING_OP #DST_REG ", [ip]\n");       \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r8, -65623)),             \
+              "sub ip, r8, #87\n"                                    \
+              "sub ip, #65536\n" STRING_OP #DST_REG ", [ip]\n");     \
+                                                                     \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, 0, PreIndex)),        \
+              STRING_OP #DST_REG ", [r9]\n");                        \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, 137, PreIndex)),      \
+              "add r9, #137\n" STRING_OP #DST_REG ", [r9]\n");       \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, 274, PreIndex)),      \
+              "add r9, #18\n"                                        \
+              "add r9, #256\n" STRING_OP #DST_REG ", [r9]\n");       \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, 65623, PreIndex)),    \
+              "add r9, #87\n"                                        \
+              "add r9, #65536\n" STRING_OP #DST_REG ", [r9]\n");     \
+                                                                     \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, -137, PreIndex)),     \
+              "sub r9, #137\n" STRING_OP #DST_REG ", [r9]\n");       \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, -274, PreIndex)),     \
+              "sub r9, #18\n"                                        \
+              "sub r9, #256\n" STRING_OP #DST_REG ", [r9]\n");       \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r9, -65623, PreIndex)),   \
+              "sub r9, #87\n"                                        \
+              "sub r9, #65536\n" STRING_OP #DST_REG ", [r9]\n");     \
+                                                                     \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, 0, PostIndex)),      \
+              STRING_OP #DST_REG ", [r10]\n");                       \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, 137, PostIndex)),    \
+              STRING_OP #DST_REG                                     \
+              ", [r10]\n"                                            \
+              "add r10, #137\n");                                    \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, 274, PostIndex)),    \
+              STRING_OP #DST_REG                                     \
+              ", [r10]\n"                                            \
+              "add r10, #18\n"                                       \
+              "add r10, #256\n");                                    \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, 65623, PostIndex)),  \
+              STRING_OP #DST_REG                                     \
+              ", [r10]\n"                                            \
+              "add r10, #87\n"                                       \
+              "add r10, #65536\n");                                  \
+                                                                     \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, -137, PostIndex)),   \
+              STRING_OP #DST_REG                                     \
+              ", [r10]\n"                                            \
+              "sub r10, #137\n");                                    \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, -274, PostIndex)),   \
+              STRING_OP #DST_REG                                     \
+              ", [r10]\n"                                            \
+              "sub r10, #18\n"                                       \
+              "sub r10, #256\n");                                    \
+  COMPARE_A32(MACRO_OP(DST_REG, MemOperand(r10, -65623, PostIndex)), \
+              STRING_OP #DST_REG                                     \
+              ", [r10]\n"                                            \
+              "sub r10, #87\n"                                       \
+              "sub r10, #65536\n");                                  \
   CLEANUP();
 
 
-TEST(macro_assembler_A32_Vldr_d) {
-  TEST_VMEMOP(Vldr, "vldr ", d0);
-}
+TEST(macro_assembler_A32_Vldr_d) { TEST_VMEMOP(Vldr, "vldr ", d0); }
 
-TEST(macro_assembler_A32_Vstr_d) {
-  TEST_VMEMOP(Vstr, "vstr ", d1);
-}
+TEST(macro_assembler_A32_Vstr_d) { TEST_VMEMOP(Vstr, "vstr ", d1); }
 
-TEST(macro_assembler_A32_Vldr_s) {
-  TEST_VMEMOP(Vldr, "vldr ", s2);
-}
+TEST(macro_assembler_A32_Vldr_s) { TEST_VMEMOP(Vldr, "vldr ", s2); }
 
-TEST(macro_assembler_A32_Vstr_s) {
-  TEST_VMEMOP(Vstr, "vstr ", s3);
-}
+TEST(macro_assembler_A32_Vstr_s) { TEST_VMEMOP(Vstr, "vstr ", s3); }
 
 #undef TEST_VMEMOP
 
@@ -1942,98 +1902,88 @@
   CLEANUP();
 }
 
-#define TEST_SHIFT_T32(Inst, name, offset)       \
-  COMPARE_T32(Inst(r0, Operand(r1, LSL, r2)),    \
-              "lsl ip, r1, r2\n"                 \
-              name " r0, ip\n");                 \
-  COMPARE_T32(Inst(r0, Operand(r1, LSR, r2)),    \
-              "lsr ip, r1, r2\n"                 \
-              name " r0, ip\n");                 \
-  COMPARE_T32(Inst(r0, Operand(r1, ASR, r2)),    \
-              "asr ip, r1, r2\n"                 \
-              name " r0, ip\n");                 \
-  COMPARE_T32(Inst(r0, Operand(r1, ROR, r2)),    \
-              "ror ip, r1, r2\n"                 \
-              name " r0, ip\n");                 \
-  COMPARE_T32(Inst(eq, r0, Operand(r1, LSL, r2)),\
-              "bne "#offset"\n"                  \
-              "lsl ip, r1, r2\n"                 \
-              name " r0, ip\n");                 \
-  COMPARE_T32(Inst(le, r0, Operand(r1, LSL, r2)),\
-              "bgt "#offset"\n"                  \
-              "lsl ip, r1, r2\n"                 \
-              name " r0, ip\n");
+#define TEST_SHIFT_T32(Inst, name, offset)          \
+  COMPARE_T32(Inst(r0, Operand(r1, LSL, r2)),       \
+              "lsl ip, r1, r2\n" name " r0, ip\n"); \
+  COMPARE_T32(Inst(r0, Operand(r1, LSR, r2)),       \
+              "lsr ip, r1, r2\n" name " r0, ip\n"); \
+  COMPARE_T32(Inst(r0, Operand(r1, ASR, r2)),       \
+              "asr ip, r1, r2\n" name " r0, ip\n"); \
+  COMPARE_T32(Inst(r0, Operand(r1, ROR, r2)),       \
+              "ror ip, r1, r2\n" name " r0, ip\n"); \
+  COMPARE_T32(Inst(eq, r0, Operand(r1, LSL, r2)),   \
+              "bne " #offset                        \
+              "\n"                                  \
+              "lsl ip, r1, r2\n" name " r0, ip\n"); \
+  COMPARE_T32(Inst(le, r0, Operand(r1, LSL, r2)),   \
+              "bgt " #offset                        \
+              "\n"                                  \
+              "lsl ip, r1, r2\n" name " r0, ip\n");
 
-#define TEST_MOV_SHIFT_T32(Inst, s, offset)      \
-  COMPARE_T32(Inst(r0, Operand(r1, LSL, r2)),    \
-              "lsl" s " r0, r1, r2\n");          \
-  COMPARE_T32(Inst(r0, Operand(r1, LSR, r2)),    \
-              "lsr" s " r0, r1, r2\n");          \
-  COMPARE_T32(Inst(r0, Operand(r1, ASR, r2)),    \
-              "asr" s " r0, r1, r2\n");          \
-  COMPARE_T32(Inst(r0, Operand(r1, ROR, r2)),    \
-              "ror" s " r0, r1, r2\n");          \
-  COMPARE_T32(Inst(eq, r0, Operand(r1, LSL, r2)),\
-              "bne "#offset"\n"                  \
-              "lsl" s " r0, r1, r2\n");          \
-  COMPARE_T32(Inst(le, r0, Operand(r1, LSL, r2)),\
-              "bgt "#offset"\n"                  \
+#define TEST_MOV_SHIFT_T32(Inst, s, offset)                             \
+  COMPARE_T32(Inst(r0, Operand(r1, LSL, r2)), "lsl" s " r0, r1, r2\n"); \
+  COMPARE_T32(Inst(r0, Operand(r1, LSR, r2)), "lsr" s " r0, r1, r2\n"); \
+  COMPARE_T32(Inst(r0, Operand(r1, ASR, r2)), "asr" s " r0, r1, r2\n"); \
+  COMPARE_T32(Inst(r0, Operand(r1, ROR, r2)), "ror" s " r0, r1, r2\n"); \
+  COMPARE_T32(Inst(eq, r0, Operand(r1, LSL, r2)),                       \
+              "bne " #offset                                            \
+              "\n"                                                      \
+              "lsl" s " r0, r1, r2\n");                                 \
+  COMPARE_T32(Inst(le, r0, Operand(r1, LSL, r2)),                       \
+              "bgt " #offset                                            \
+              "\n"                                                      \
               "lsl" s " r0, r1, r2\n");
 
-#define TEST_WIDE_IMMEDIATE(Inst, name, offset)  \
-  COMPARE_BOTH(Inst(r0, 0xbadbeef),              \
-              "mov ip, #48879\n"                 \
-              "movt ip, #2989\n"                 \
-              name " r0, ip\n");                 \
-  COMPARE_A32(Inst(eq, r0, 0xbadbeef),           \
-              "moveq ip, #48879\n"               \
-              "movteq ip, #2989\n"               \
-              name "eq r0, ip\n");               \
-  COMPARE_T32(Inst(eq, r0, 0xbadbeef),           \
-              "bne "#offset"\n"                  \
-              "mov ip, #48879\n"                 \
-              "movt ip, #2989\n"                 \
-              name " r0, ip\n");
+#define TEST_WIDE_IMMEDIATE(Inst, name, offset)         \
+  COMPARE_BOTH(Inst(r0, 0xbadbeef),                     \
+               "mov ip, #48879\n"                       \
+               "movt ip, #2989\n" name " r0, ip\n");    \
+  COMPARE_A32(Inst(eq, r0, 0xbadbeef),                  \
+              "moveq ip, #48879\n"                      \
+              "movteq ip, #2989\n" name "eq r0, ip\n"); \
+  COMPARE_T32(Inst(eq, r0, 0xbadbeef),                  \
+              "bne " #offset                            \
+              "\n"                                      \
+              "mov ip, #48879\n"                        \
+              "movt ip, #2989\n" name " r0, ip\n");
 
 #define TEST_WIDE_IMMEDIATE_PC(Inst, name, offset)            \
   COMPARE_A32(Inst(pc, 0xbadbeef),                            \
               "mov ip, #48879\n"                              \
-              "movt ip, #2989\n"                              \
-              name " pc, ip\n");                              \
+              "movt ip, #2989\n" name " pc, ip\n");           \
   COMPARE_A32(Inst(eq, pc, 0xbadbeef),                        \
               "moveq ip, #48879\n"                            \
-              "movteq ip, #2989\n"                            \
-              name "eq pc, ip\n");                            \
+              "movteq ip, #2989\n" name "eq pc, ip\n");       \
   MUST_FAIL_TEST_T32(Inst(pc, 0xbadbeef),                     \
                      "Ill-formed '" name "' instruction.\n"); \
   MUST_FAIL_TEST_T32(Inst(eq, pc, 0xbadbeef),                 \
-                     "Ill-formed '" name "' instruction.\n"); \
+                     "Ill-formed '" name "' instruction.\n");
 
 TEST(macro_assembler_InstructionCondSizeROp) {
   SETUP();
 
   // T32 register shifted register.
-  TEST_SHIFT_T32(Cmn,"cmn", 0x0000000a)
-  TEST_SHIFT_T32(Cmp,"cmp", 0x00000008)
-  TEST_SHIFT_T32(Mvn,"mvn", 0x0000000a)
-  TEST_SHIFT_T32(Mvns,"mvns", 0x0000000a)
-  TEST_SHIFT_T32(Sxtb,"sxtb", 0x0000000a)
-  TEST_SHIFT_T32(Sxth,"sxth", 0x0000000a)
-  TEST_SHIFT_T32(Tst,"tst", 0x0000000a)
-  TEST_SHIFT_T32(Uxtb,"uxtb", 0x0000000a)
-  TEST_SHIFT_T32(Uxth,"uxth", 0x0000000a)
+  TEST_SHIFT_T32(Cmn, "cmn", 0x0000000a)
+  TEST_SHIFT_T32(Cmp, "cmp", 0x00000008)
+  TEST_SHIFT_T32(Mvn, "mvn", 0x0000000a)
+  TEST_SHIFT_T32(Mvns, "mvns", 0x0000000a)
+  TEST_SHIFT_T32(Sxtb, "sxtb", 0x0000000a)
+  TEST_SHIFT_T32(Sxth, "sxth", 0x0000000a)
+  TEST_SHIFT_T32(Tst, "tst", 0x0000000a)
+  TEST_SHIFT_T32(Uxtb, "uxtb", 0x0000000a)
+  TEST_SHIFT_T32(Uxth, "uxth", 0x0000000a)
 
   TEST_MOV_SHIFT_T32(Mov, "", 0x00000006)
   TEST_MOV_SHIFT_T32(Movs, "s", 0x00000006)
 
-  MUST_FAIL_TEST_BOTH(Movs(pc, r0),
-                      "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_BOTH(Movs(pc, r0), "Unpredictable instruction.\n");
   MUST_FAIL_TEST_BOTH(Movs(pc, Operand(r0, LSL, 0x4)),
                       "Unpredictable instruction.\n");
   MUST_FAIL_TEST_BOTH(Movs(pc, Operand(r0, ASR, r2)),
                       "Unpredictable instruction.\n");
 
-  // Wide immediates (Mov and Movs are tested in "macro_assembler_wide_immediate").
+  // Wide immediates (Mov and Movs are tested in
+  // "macro_assembler_wide_immediate").
   TEST_WIDE_IMMEDIATE(Cmp, "cmp", 0x0000000c);
   TEST_WIDE_IMMEDIATE(Cmn, "cmn", 0x0000000e);
   TEST_WIDE_IMMEDIATE(Tst, "tst", 0x0000000e);
@@ -2045,9 +1995,11 @@
   TEST_WIDE_IMMEDIATE(Mvn, "mvn", 0x0000000e);
   TEST_WIDE_IMMEDIATE(Mvns, "mvns", 0x0000000e);
   MUST_FAIL_TEST_BOTH(Mvn(pc, 0xbadbeef), "Ill-formed 'mvn' instruction.\n");
-  MUST_FAIL_TEST_BOTH(Mvn(eq, pc, 0xbadbeef), "Ill-formed 'mvn' instruction.\n");
+  MUST_FAIL_TEST_BOTH(Mvn(eq, pc, 0xbadbeef),
+                      "Ill-formed 'mvn' instruction.\n");
   MUST_FAIL_TEST_BOTH(Mvns(pc, 0xbadbeef), "Ill-formed 'mvns' instruction.\n");
-  MUST_FAIL_TEST_BOTH(Mvns(eq, pc, 0xbadbeef), "Ill-formed 'mvns' instruction.\n");
+  MUST_FAIL_TEST_BOTH(Mvns(eq, pc, 0xbadbeef),
+                      "Ill-formed 'mvns' instruction.\n");
 
   MUST_FAIL_TEST_BOTH(Sxtb(r0, 0x1), "Ill-formed 'sxtb' instruction.\n");
   MUST_FAIL_TEST_BOTH(Sxth(r0, 0x1), "Ill-formed 'sxth' instruction.\n");
@@ -2072,9 +2024,9 @@
 
   // Wide immediate.
   COMPARE_BOTH(Msr(APSR_nzcvq, 0xbadbeef),
-              "mov ip, #48879\n"
-              "movt ip, #2989\n"
-              "msr APSR_nzcvq, ip\n");
+               "mov ip, #48879\n"
+               "movt ip, #2989\n"
+               "msr APSR_nzcvq, ip\n");
 
   // Other types of operands are not handled.
   MUST_FAIL_TEST_BOTH(Msr(APSR_nzcvq, Operand(r0, LSR, r1)),
@@ -2089,8 +2041,7 @@
   COMPARE_BOTH(Vmov(s0, 0.0f),
                "mov ip, #0\n"
                "vmov s0, ip\n");
-  COMPARE_BOTH(Vmov(s1, 1.0f),
-               "vmov.f32 s1, #1\n");
+  COMPARE_BOTH(Vmov(s1, 1.0f), "vmov.f32 s1, #1\n");
   COMPARE_BOTH(Vmov(s2, RawbitsToFloat(0x0000db6c)),
                "mov ip, #56172\n"
                "vmov s2, ip\n");
@@ -2106,10 +2057,8 @@
                "movt ip, #46893\n"
                "vmov s5, ip\n");
 
-  COMPARE_BOTH(Vmov(d6, 0.0),
-               "vmov.i64 d6, #0x0000000000000000\n");
-  COMPARE_BOTH(Vmov(d7, 1.0),
-               "vmov.f64 d7, #1\n");
+  COMPARE_BOTH(Vmov(d6, 0.0), "vmov.i64 d6, #0x0000000000000000\n");
+  COMPARE_BOTH(Vmov(d7, 1.0), "vmov.f64 d7, #1\n");
   COMPARE_BOTH(Vmov(d8, RawbitsToDouble(0x000000000000af8e)),
                "mov ip, #44942\n"
                "vdup.32 d8, ip\n"
@@ -2162,8 +2111,7 @@
   UseScratchRegisterScope temps(&masm);
   temps.ExcludeAll();
 
-  COMPARE_BOTH(Push(RegisterList(0x1111)),
-               "push {r0,r4,r8,ip}\n");
+  COMPARE_BOTH(Push(RegisterList(0x1111)), "push {r0,r4,r8,ip}\n");
 
   COMPARE_BOTH(Push(RegisterList(0x1fff)),
                "push {r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,ip}\n");
@@ -2208,8 +2156,10 @@
   COMPARE_BOTH(Push(RegisterList(r8)), "stmdb sp!, {r8}\n");
 
   // Cannot push the sp and pc in T32 when using a register list.
-  MUST_FAIL_TEST_T32(Push(RegisterList(sp)), "Ill-formed 'push' instruction.\n");
-  MUST_FAIL_TEST_T32(Push(RegisterList(pc)), "Ill-formed 'push' instruction.\n");
+  MUST_FAIL_TEST_T32(Push(RegisterList(sp)),
+                     "Ill-formed 'push' instruction.\n");
+  MUST_FAIL_TEST_T32(Push(RegisterList(pc)),
+                     "Ill-formed 'push' instruction.\n");
 
   CLEANUP();
 }
@@ -2221,8 +2171,7 @@
   UseScratchRegisterScope temps(&masm);
   temps.ExcludeAll();
 
-  COMPARE_BOTH(Pop(RegisterList(0x1111)),
-               "pop {r0,r4,r8,ip}\n");
+  COMPARE_BOTH(Pop(RegisterList(0x1111)), "pop {r0,r4,r8,ip}\n");
 
   COMPARE_BOTH(Pop(RegisterList(0x1fff)),
                "pop {r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,ip}\n");
@@ -2271,36 +2220,26 @@
   // ADC, ADCS (immediate).
   COMPARE_A32(Adc(pc, r0, 1), "adc pc, r0, #1\n");
   COMPARE_A32(Adc(r0, pc, 1), "adc r0, pc, #1\n");
-  MUST_FAIL_TEST_T32(Adc(pc, r0, 1),
-                     "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_T32(Adc(r0, pc, 1),
-                     "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adc(pc, r0, 1), "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adc(r0, pc, 1), "Unpredictable instruction.\n");
   COMPARE_A32(Adcs(pc, r0, 1), "adcs pc, r0, #1\n");
   COMPARE_A32(Adcs(r0, pc, 1), "adcs r0, pc, #1\n");
-  MUST_FAIL_TEST_T32(Adcs(pc, r0, 1),
-                     "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_T32(Adcs(r0, pc, 1),
-                     "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adcs(pc, r0, 1), "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adcs(r0, pc, 1), "Unpredictable instruction.\n");
 
   // ADC, ADCS (register).
   COMPARE_A32(Adc(pc, r0, r1), "adc pc, r0, r1\n");
   COMPARE_A32(Adc(r0, pc, r1), "adc r0, pc, r1\n");
   COMPARE_A32(Adc(r0, r1, pc), "adc r0, r1, pc\n");
-  MUST_FAIL_TEST_T32(Adc(pc, r0, r1),
-                     "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_T32(Adc(r0, pc, r1),
-                     "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_T32(Adc(r0, r1, pc),
-                     "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adc(pc, r0, r1), "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adc(r0, pc, r1), "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adc(r0, r1, pc), "Unpredictable instruction.\n");
   COMPARE_A32(Adcs(pc, r0, r1), "adcs pc, r0, r1\n");
   COMPARE_A32(Adcs(r0, pc, r1), "adcs r0, pc, r1\n");
   COMPARE_A32(Adcs(r0, r1, pc), "adcs r0, r1, pc\n");
-  MUST_FAIL_TEST_T32(Adcs(pc, r0, r1),
-                     "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_T32(Adcs(r0, pc, r1),
-                     "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_T32(Adcs(r0, r1, pc),
-                     "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adcs(pc, r0, r1), "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adcs(r0, pc, r1), "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adcs(r0, r1, pc), "Unpredictable instruction.\n");
 
   // ADC, ADCS (register-shifted register).
   MUST_FAIL_TEST_A32(Adc(pc, r0, Operand(r1, LSL, r2)),
@@ -2324,22 +2263,17 @@
   COMPARE_A32(Add(r0, pc, 1), "adr r0, 0x00000009\n");
   COMPARE_T32(Add(r0, pc, 1), "adr r0, 0x00000005\n");
   COMPARE_A32(Add(pc, pc, 1), "adr pc, 0x00000009\n");
-  MUST_FAIL_TEST_T32(Add(pc, pc, 1),
-                     "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Add(pc, pc, 1), "Unpredictable instruction.\n");
 
   // ADD, ADDS (immediate).
   COMPARE_A32(Add(pc, r0, 1), "add pc, r0, #1\n");
-  MUST_FAIL_TEST_T32(Add(pc, r0, 1),
-                     "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_T32(Add(pc, r0, 0x123),
-                     "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Add(pc, r0, 1), "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Add(pc, r0, 0x123), "Unpredictable instruction.\n");
   COMPARE_A32(Adds(pc, r0, 1), "adds pc, r0, #1\n");
   COMPARE_A32(Adds(r0, pc, 1), "adds r0, pc, #1\n");
   // TODO: Try to make these error messages more consistent.
-  MUST_FAIL_TEST_T32(Adds(r0, pc, 1),
-                     "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_T32(Adds(r0, pc, 0x123),
-                     "Ill-formed 'adds' instruction.\n");
+  MUST_FAIL_TEST_T32(Adds(r0, pc, 1), "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adds(r0, pc, 0x123), "Ill-formed 'adds' instruction.\n");
 
   // ADD, ADDS (register).
   COMPARE_A32(Add(pc, r0, r1), "add pc, r0, r1\n");
@@ -2347,21 +2281,15 @@
   COMPARE_A32(Add(r0, r1, pc), "add r0, r1, pc\n");
   COMPARE_T32(Add(r0, r0, pc), "add r0, pc\n");
   COMPARE_T32(Add(pc, pc, r0), "add pc, r0\n");
-  MUST_FAIL_TEST_T32(Add(pc, pc, pc),
-                     "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_T32(Add(pc, r0, r1),
-                     "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_T32(Add(r0, pc, r1),
-                     "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_T32(Add(r0, r1, pc),
-                     "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Add(pc, pc, pc), "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Add(pc, r0, r1), "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Add(r0, pc, r1), "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Add(r0, r1, pc), "Unpredictable instruction.\n");
   COMPARE_A32(Adds(pc, r0, r1), "adds pc, r0, r1\n");
   COMPARE_A32(Adds(r0, pc, r1), "adds r0, pc, r1\n");
   COMPARE_A32(Adds(r0, r1, pc), "adds r0, r1, pc\n");
-  MUST_FAIL_TEST_T32(Adds(r0, pc, r1),
-                     "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_T32(Adds(r0, r1, pc),
-                     "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adds(r0, pc, r1), "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adds(r0, r1, pc), "Unpredictable instruction.\n");
 
   // ADD, ADDS (register-shifted register)
   MUST_FAIL_TEST_A32(Add(pc, r0, Operand(r1, LSL, r2)),
@@ -2373,8 +2301,7 @@
   MUST_FAIL_TEST_A32(Add(r0, r1, Operand(r2, LSL, pc)),
                      "Unpredictable instruction.\n");
   COMPARE_A32(Add(pc, sp, 1), "add pc, sp, #1\n");
-  MUST_FAIL_TEST_T32(Add(pc, sp, 1),
-                     "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Add(pc, sp, 1), "Unpredictable instruction.\n");
   MUST_FAIL_TEST_A32(Adds(pc, r0, Operand(r1, LSL, r2)),
                      "Unpredictable instruction.\n");
   MUST_FAIL_TEST_A32(Adds(r0, pc, Operand(r1, LSL, r2)),
@@ -2386,41 +2313,33 @@
 
   // ADD, ADDS (SP plus immediate).
   COMPARE_A32(Add(pc, sp, 1), "add pc, sp, #1\n");
-  MUST_FAIL_TEST_T32(Add(pc, sp, 1),
-                      "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Add(pc, sp, 1), "Unpredictable instruction.\n");
   COMPARE_A32(Adds(pc, sp, 1), "adds pc, sp, #1\n");
-  MUST_FAIL_TEST_T32(Adds(pc, sp, 1),
-                      "Ill-formed 'adds' instruction.\n");
+  MUST_FAIL_TEST_T32(Adds(pc, sp, 1), "Ill-formed 'adds' instruction.\n");
 
   // ADD, ADDS (SP plus register).
   COMPARE_A32(Add(pc, sp, r0), "add pc, sp, r0\n");
-  MUST_FAIL_TEST_T32(Add(pc, sp, r0),
-                     "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Add(pc, sp, r0), "Unpredictable instruction.\n");
   COMPARE_A32(Add(r0, sp, pc), "add r0, sp, pc\n");
-  MUST_FAIL_TEST_T32(Add(r0, sp, pc),
-                     "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Add(r0, sp, pc), "Unpredictable instruction.\n");
   COMPARE_BOTH(Add(pc, sp, pc), "add pc, sp, pc\n");
   COMPARE_BOTH(Add(sp, sp, pc), "add sp, pc\n");
   COMPARE_A32(Adds(pc, sp, r0), "adds pc, sp, r0\n");
-  MUST_FAIL_TEST_T32(Adds(pc, sp, r0),
-                      "Ill-formed 'adds' instruction.\n");
+  MUST_FAIL_TEST_T32(Adds(pc, sp, r0), "Ill-formed 'adds' instruction.\n");
   COMPARE_A32(Adds(r0, sp, pc), "adds r0, sp, pc\n");
-  MUST_FAIL_TEST_T32(Adds(r0, sp, pc),
-                     "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adds(r0, sp, pc), "Unpredictable instruction.\n");
   COMPARE_A32(Adds(pc, sp, pc), "adds pc, sp, pc\n");
-  MUST_FAIL_TEST_T32(Adds(pc, sp, pc),
-                      "Ill-formed 'adds' instruction.\n");
+  MUST_FAIL_TEST_T32(Adds(pc, sp, pc), "Ill-formed 'adds' instruction.\n");
   COMPARE_A32(Adds(sp, sp, pc), "adds sp, pc\n");
-  MUST_FAIL_TEST_T32(Adds(sp, sp, pc),
-                     "Unpredictable instruction.\n");
+  MUST_FAIL_TEST_T32(Adds(sp, sp, pc), "Unpredictable instruction.\n");
 
   // ADR.
   {
-    Label label;
-    masm.Bind(&label);
-    COMPARE_A32(Adr(pc, &label), "adr pc, 0x00000000\n");
-    MUST_FAIL_TEST_T32(Adr(pc, &label),
-                       "Unpredictable instruction.\n");
+    Literal<uint32_t> literal(0x12345678);
+    // The address is 0x4 and not 0x0 because of the branch over the literal.
+    // TODO: Consider disallowing this instruction.
+    COMPARE_A32(Adr(pc, &literal), "adr pc, 0x00000004\n");
+    MUST_FAIL_TEST_T32(Adr(pc, &literal), "Unpredictable instruction.\n");
   }
 
   // CLZ.
@@ -2435,8 +2354,7 @@
   MUST_FAIL_TEST_T32(Mov(pc, 0xf000), "Unpredictable instruction.\n");
   COMPARE_A32(Movs(pc, 1), "movs pc, #1\n");
   MUST_FAIL_TEST_T32(Movs(pc, 1), "Unpredictable instruction.\n");
-  MUST_FAIL_TEST_BOTH(Movs(pc, 0xfff),
-                      "Ill-formed 'movs' instruction.\n");
+  MUST_FAIL_TEST_BOTH(Movs(pc, 0xfff), "Ill-formed 'movs' instruction.\n");
   COMPARE_A32(Movs(pc, 0xf000), "movs pc, #61440\n");
   MUST_FAIL_TEST_T32(Movs(pc, 0xf000), "Unpredictable instruction.\n");
 
@@ -2492,42 +2410,56 @@
   MUST_FAIL_TEST_A32(Add(r0, pc, 1025), "Ill-formed 'add' instruction.\n");
   MUST_FAIL_TEST_A32(Add(r0, pc, 0xffff), "Ill-formed 'add' instruction.\n");
   MUST_FAIL_TEST_A32(Add(r0, pc, 0x10001), "Ill-formed 'add' instruction.\n");
-  MUST_FAIL_TEST_A32(Add(r0, pc, 0x12345678), "Ill-formed 'add' instruction.\n");
-  MUST_FAIL_TEST_A32(Add(r0, pc, 0x7fffffff), "Ill-formed 'add' instruction.\n");
-  COMPARE_A32(Add(r0, pc, -1025), "adr r0, 0x00000007\n"
-                                  "sub r0, #1024\n");
-  COMPARE_A32(Add(r0, pc, -0xffff), "adr r0, 0xffffff09\n"
-                                    "sub r0, #65280\n");
-  COMPARE_A32(Add(r0, pc, -0x10001), "adr r0, 0x00000007\n"
-                                     "sub r0, #65536\n");
-  COMPARE_A32(Add(r0, pc, -0x2345678), "adr r0, 0xfffffd90\n"
-                                       "sub r0, #21504\n"
-                                       "sub r0, #36962304\n");
-  COMPARE_A32(Add(r0, pc, -0x12345678), "adr r0, 0xfffffd90\n"
-                                        "mov ip, #21504\n"
-                                        "movt ip, #4660\n"
-                                        "sub r0, ip\n");
+  MUST_FAIL_TEST_A32(Add(r0, pc, 0x12345678),
+                     "Ill-formed 'add' instruction.\n");
+  MUST_FAIL_TEST_A32(Add(r0, pc, 0x7fffffff),
+                     "Ill-formed 'add' instruction.\n");
+  COMPARE_A32(Add(r0, pc, -1025),
+              "adr r0, 0x00000007\n"
+              "sub r0, #1024\n");
+  COMPARE_A32(Add(r0, pc, -0xffff),
+              "adr r0, 0xffffff09\n"
+              "sub r0, #65280\n");
+  COMPARE_A32(Add(r0, pc, -0x10001),
+              "adr r0, 0x00000007\n"
+              "sub r0, #65536\n");
+  COMPARE_A32(Add(r0, pc, -0x2345678),
+              "adr r0, 0xfffffd90\n"
+              "sub r0, #21504\n"
+              "sub r0, #36962304\n");
+  COMPARE_A32(Add(r0, pc, -0x12345678),
+              "adr r0, 0xfffffd90\n"
+              "mov ip, #21504\n"
+              "movt ip, #4660\n"
+              "sub r0, ip\n");
 
   MUST_FAIL_TEST_A32(Sub(r0, pc, -1025), "Ill-formed 'add' instruction.\n");
   MUST_FAIL_TEST_A32(Sub(r0, pc, -0xffff), "Ill-formed 'add' instruction.\n");
   MUST_FAIL_TEST_A32(Sub(r0, pc, -0x10001), "Ill-formed 'add' instruction.\n");
-  MUST_FAIL_TEST_A32(Sub(r0, pc, -0x12345678), "Ill-formed 'add' instruction.\n");
-  COMPARE_A32(Sub(r0, pc, 1025), "adr r0, 0x00000007\n"
-                                 "sub r0, #1024\n");
-  COMPARE_A32(Sub(r0, pc, 0xffff), "adr r0, 0xffffff09\n"
-                                   "sub r0, #65280\n");
-  COMPARE_A32(Sub(r0, pc, 0x10001), "adr r0, 0x00000007\n"
-                                    "sub r0, #65536\n");
-  COMPARE_A32(Sub(r0, pc, 0x2345678), "adr r0, 0xfffffd90\n"
-                                      "sub r0, #21504\n"
-                                      "sub r0, #36962304\n");
-  COMPARE_A32(Sub(r0, pc, 0x12345678), "adr r0, 0xfffffd90\n"
-                                       "mov ip, #21504\n"
-                                       "movt ip, #4660\n"
-                                       "sub r0, ip\n");
-  COMPARE_A32(Sub(r0, pc, 0x7fffffff), "adr r0, 0xffffff09\n"
-                                       "add r0, #256\n"
-                                       "add r0, #2147483648\n");
+  MUST_FAIL_TEST_A32(Sub(r0, pc, -0x12345678),
+                     "Ill-formed 'add' instruction.\n");
+  COMPARE_A32(Sub(r0, pc, 1025),
+              "adr r0, 0x00000007\n"
+              "sub r0, #1024\n");
+  COMPARE_A32(Sub(r0, pc, 0xffff),
+              "adr r0, 0xffffff09\n"
+              "sub r0, #65280\n");
+  COMPARE_A32(Sub(r0, pc, 0x10001),
+              "adr r0, 0x00000007\n"
+              "sub r0, #65536\n");
+  COMPARE_A32(Sub(r0, pc, 0x2345678),
+              "adr r0, 0xfffffd90\n"
+              "sub r0, #21504\n"
+              "sub r0, #36962304\n");
+  COMPARE_A32(Sub(r0, pc, 0x12345678),
+              "adr r0, 0xfffffd90\n"
+              "mov ip, #21504\n"
+              "movt ip, #4660\n"
+              "sub r0, ip\n");
+  COMPARE_A32(Sub(r0, pc, 0x7fffffff),
+              "adr r0, 0xffffff09\n"
+              "add r0, #256\n"
+              "add r0, #2147483648\n");
 
   CLEANUP();
 }
@@ -2566,15 +2498,19 @@
 
   MUST_FAIL_TEST_T32(Add(r0, pc, 0xffff), "Ill-formed 'add' instruction.\n");
   MUST_FAIL_TEST_T32(Add(r0, pc, 0x10002), "Ill-formed 'add' instruction.\n");
-  MUST_FAIL_TEST_T32(Add(r0, pc, 0x12345678), "Ill-formed 'add' instruction.\n");
-  MUST_FAIL_TEST_T32(Add(r0, pc, 0x7fffffff), "Ill-formed 'add' instruction.\n");
-  COMPARE_T32(Add(r0, pc, -0x12345678), "mov r0, pc\n"
-                                        "mov ip, #22136\n"
-                                        "movt ip, #4660\n"
-                                        "sub r0, ip\n");
-  COMPARE_T32(Add(r0, pc, -0x7fffffff), "mov r0, pc\n"
-                                        "add r0, #1\n"
-                                        "add r0, #2147483648\n");
+  MUST_FAIL_TEST_T32(Add(r0, pc, 0x12345678),
+                     "Ill-formed 'add' instruction.\n");
+  MUST_FAIL_TEST_T32(Add(r0, pc, 0x7fffffff),
+                     "Ill-formed 'add' instruction.\n");
+  COMPARE_T32(Add(r0, pc, -0x12345678),
+              "mov r0, pc\n"
+              "mov ip, #22136\n"
+              "movt ip, #4660\n"
+              "sub r0, ip\n");
+  COMPARE_T32(Add(r0, pc, -0x7fffffff),
+              "mov r0, pc\n"
+              "add r0, #1\n"
+              "add r0, #2147483648\n");
 
   // TODO: This test aborts in the Assembler (with unpredictable instruction
   // errors) before the MacroAssembler gets a chance to do something
@@ -2588,15 +2524,19 @@
 
   MUST_FAIL_TEST_T32(Sub(r0, pc, -0xffff), "Ill-formed 'add' instruction.\n");
   MUST_FAIL_TEST_T32(Sub(r0, pc, -0x10002), "Ill-formed 'add' instruction.\n");
-  MUST_FAIL_TEST_T32(Sub(r0, pc, -0x12345678), "Ill-formed 'add' instruction.\n");
-  MUST_FAIL_TEST_T32(Sub(r0, pc, -0x7fffffff), "Ill-formed 'add' instruction.\n");
-  COMPARE_T32(Sub(r0, pc, 0x12345678), "mov r0, pc\n"
-                                       "mov ip, #22136\n"
-                                       "movt ip, #4660\n"
-                                       "sub r0, ip\n");
-  COMPARE_T32(Sub(r0, pc, 0x7fffffff), "mov r0, pc\n"
-                                       "add r0, #1\n"
-                                       "add r0, #2147483648\n");
+  MUST_FAIL_TEST_T32(Sub(r0, pc, -0x12345678),
+                     "Ill-formed 'add' instruction.\n");
+  MUST_FAIL_TEST_T32(Sub(r0, pc, -0x7fffffff),
+                     "Ill-formed 'add' instruction.\n");
+  COMPARE_T32(Sub(r0, pc, 0x12345678),
+              "mov r0, pc\n"
+              "mov ip, #22136\n"
+              "movt ip, #4660\n"
+              "sub r0, ip\n");
+  COMPARE_T32(Sub(r0, pc, 0x7fffffff),
+              "mov r0, pc\n"
+              "add r0, #1\n"
+              "add r0, #2147483648\n");
   CLEANUP();
 }
 
@@ -2697,40 +2637,29 @@
 
   // Move 8, 16 and 32-bit immediates into D registers, duplicated across the
   // destination.
-  COMPARE_BOTH(Vmov(I8, d0, 0xac),
-               "vmov.i8 d0, #172\n");
+  COMPARE_BOTH(Vmov(I8, d0, 0xac), "vmov.i8 d0, #172\n");
 
-  COMPARE_BOTH(Vmov(I16, d0, 0xa4),
-               "vmov.i16 d0, #164\n");
-  COMPARE_BOTH(Vmov(I16, d0, 0x9797),
-               "vmov.i8 d0, #151\n");
+  COMPARE_BOTH(Vmov(I16, d0, 0xa4), "vmov.i16 d0, #164\n");
+  COMPARE_BOTH(Vmov(I16, d0, 0x9797), "vmov.i8 d0, #151\n");
   COMPARE_BOTH(Vmov(I16, d0, 0x9ef6),
                "mov ip, #40694\n"
                "vdup.16 d0, ip\n");
 
-  COMPARE_BOTH(Vmov(I32, d0, 0x6d0000),
-               "vmov.i32 d0, #7143424\n");
-  COMPARE_BOTH(Vmov(I32, d0, 0x15ffffff),
-               "vmvn.i32 d0, #3925868544\n");
-  COMPARE_BOTH(Vmov(I32, d0, 0x74747474),
-               "vmov.i8 d0, #116\n");
-  COMPARE_BOTH(Vmov(I32, d0, 0xff0000ff),
-               "vmov.i64 d0, #0xff0000ffff0000ff\n");
+  COMPARE_BOTH(Vmov(I32, d0, 0x6d0000), "vmov.i32 d0, #7143424\n");
+  COMPARE_BOTH(Vmov(I32, d0, 0x15ffffff), "vmvn.i32 d0, #3925868544\n");
+  COMPARE_BOTH(Vmov(I32, d0, 0x74747474), "vmov.i8 d0, #116\n");
+  COMPARE_BOTH(Vmov(I32, d0, 0xff0000ff), "vmov.i64 d0, #0xff0000ffff0000ff\n");
   COMPARE_BOTH(Vmov(I32, d0, 0x1ecb9ef6),
                "mov ip, #40694\n"
                "movt ip, #7883\n"
                "vdup.32 d0, ip\n");
-  COMPARE_BOTH(Vmov(I32, d0, 0x006d0000),
-               "vmov.i32 d0, #7143424\n");
+  COMPARE_BOTH(Vmov(I32, d0, 0x006d0000), "vmov.i32 d0, #7143424\n");
   COMPARE_BOTH(Vmov(I32, d0, 0x00004da6),
                "mov ip, #19878\n"
                "vdup.32 d0, ip\n");
-  COMPARE_BOTH(Vmov(I32, d0, 0xffffff55),
-               "vmvn.i32 d0, #170\n");
-  COMPARE_BOTH(Vmov(I32, d0, 0xffff55ff),
-               "vmvn.i32 d0, #43520\n");
-  COMPARE_BOTH(Vmov(I32, d0, 0xff55ffff),
-               "vmvn.i32 d0, #11141120\n");
+  COMPARE_BOTH(Vmov(I32, d0, 0xffffff55), "vmvn.i32 d0, #170\n");
+  COMPARE_BOTH(Vmov(I32, d0, 0xffff55ff), "vmvn.i32 d0, #43520\n");
+  COMPARE_BOTH(Vmov(I32, d0, 0xff55ffff), "vmvn.i32 d0, #11141120\n");
 
   COMPARE_BOTH(Vmov(I64, d0, UINT64_C(0xa5a5a5a5a5a5a5a5)),
                "vmov.i8 d0, #165\n");
@@ -2760,8 +2689,7 @@
                "mov ip, #35767\n"
                "vmov.32 d0[1], ip\n");
 
-  COMPARE_BOTH(Vmov(F32, d0, 0.5),
-               "vmov.f32 d0, #0.5\n");
+  COMPARE_BOTH(Vmov(F32, d0, 0.5), "vmov.f32 d0, #0.5\n");
   COMPARE_BOTH(Vmov(F32, d0, 1.1),
                "mov ip, #52429\n"
                "movt ip, #16268\n"
@@ -2786,31 +2714,23 @@
 
   // Move 8, 16 and 32-bit immediates into Q registers, duplicated across the
   // destination.
-  COMPARE_BOTH(Vmov(I8, q0, 0xac),
-               "vmov.i8 q0, #172\n");
+  COMPARE_BOTH(Vmov(I8, q0, 0xac), "vmov.i8 q0, #172\n");
 
-  COMPARE_BOTH(Vmov(I16, q0, 0xa4),
-               "vmov.i16 q0, #164\n");
-  COMPARE_BOTH(Vmov(I16, q0, 0x9797),
-               "vmov.i8 q0, #151\n");
+  COMPARE_BOTH(Vmov(I16, q0, 0xa4), "vmov.i16 q0, #164\n");
+  COMPARE_BOTH(Vmov(I16, q0, 0x9797), "vmov.i8 q0, #151\n");
   COMPARE_BOTH(Vmov(I16, q0, 0x9ef6),
                "mov ip, #40694\n"
                "vdup.16 q0, ip\n");
 
-  COMPARE_BOTH(Vmov(I32, q0, 0x6d0000),
-               "vmov.i32 q0, #7143424\n");
-  COMPARE_BOTH(Vmov(I32, q0, 0x15ffffff),
-               "vmvn.i32 q0, #3925868544\n");
-  COMPARE_BOTH(Vmov(I32, q0, 0x74747474),
-               "vmov.i8 q0, #116\n");
-  COMPARE_BOTH(Vmov(I32, q0, 0xff0000ff),
-               "vmov.i64 q0, #0xff0000ffff0000ff\n");
+  COMPARE_BOTH(Vmov(I32, q0, 0x6d0000), "vmov.i32 q0, #7143424\n");
+  COMPARE_BOTH(Vmov(I32, q0, 0x15ffffff), "vmvn.i32 q0, #3925868544\n");
+  COMPARE_BOTH(Vmov(I32, q0, 0x74747474), "vmov.i8 q0, #116\n");
+  COMPARE_BOTH(Vmov(I32, q0, 0xff0000ff), "vmov.i64 q0, #0xff0000ffff0000ff\n");
   COMPARE_BOTH(Vmov(I32, q0, 0x1ecb9ef6),
                "mov ip, #40694\n"
                "movt ip, #7883\n"
                "vdup.32 q0, ip\n");
-  COMPARE_BOTH(Vmov(I32, q0, 0x006d0000),
-               "vmov.i32 q0, #7143424\n");
+  COMPARE_BOTH(Vmov(I32, q0, 0x006d0000), "vmov.i32 q0, #7143424\n");
   COMPARE_BOTH(Vmov(I32, q0, 0x00004da6),
                "mov ip, #19878\n"
                "vdup.32 q0, ip\n");
@@ -2847,8 +2767,7 @@
                "vmov.32 d0[1], ip\n"
                "vmov.f64 d1, d0\n");
 
-  COMPARE_BOTH(Vmov(F32, q0, 0.5),
-               "vmov.f32 q0, #0.5\n");
+  COMPARE_BOTH(Vmov(F32, q0, 0.5), "vmov.f32 q0, #0.5\n");
   COMPARE_BOTH(Vmov(F32, q0, 1.1),
                "mov ip, #52429\n"
                "movt ip, #16268\n"
@@ -3396,40 +3315,31 @@
   SETUP();
 
 #ifdef VIXL_DEBUG
-  MUST_FAIL_TEST_BOTH_BLOCK(
-    {
-      Label label;
-      masm.B(&label);
-    },
-    "Label used but not bound.\n")
+  MUST_FAIL_TEST_BOTH_BLOCK({
+    Label label;
+    masm.B(&label);
+  }, "Label used but not bound.\n")
 
-  MUST_FAIL_TEST_BOTH_BLOCK(
-    {
-      Label label;
-      masm.B(eq, &label);
-    },
-    "Label used but not bound.\n")
+  MUST_FAIL_TEST_BOTH_BLOCK({
+    Label label;
+    masm.B(eq, &label);
+  }, "Label used but not bound.\n")
 
-  MUST_FAIL_TEST_T32_BLOCK(
-    {
-      Label label;
-      masm.Cbz(r0, &label);
-    },
-    "Label used but not bound.\n")
+  MUST_FAIL_TEST_T32_BLOCK({
+    Label label;
+    masm.Cbz(r0, &label);
+  }, "Label used but not bound.\n")
 
-  MUST_FAIL_TEST_T32_BLOCK(
-    {
-      Label label;
-      masm.Cbnz(r1, &label);
-    },
-    "Label used but not bound.\n")
+  MUST_FAIL_TEST_T32_BLOCK({
+    Label label;
+    masm.Cbnz(r1, &label);
+  }, "Label used but not bound.\n")
 #endif
 
   CLEANUP();
 }
 
 
-
 TEST(macro_assembler_AddressComputationHelper) {
   SETUP();
 
@@ -3457,34 +3367,26 @@
   COMPARE_A32(Ldr(r0, masm.MemOperandComputationHelper(r2, r1, 0x1000, 0xfff)),
               "add r2, r1, #4096\n"
               "ldr r0, [r2]\n");
-  COMPARE_A32(Ldr(r0, masm.MemOperandComputationHelper(r2,
-                                                       r1,
-                                                       0xffffffff,
-                                                       0xfff)),
+  COMPARE_A32(Ldr(r0,
+                  masm.MemOperandComputationHelper(r2, r1, 0xffffffff, 0xfff)),
               "sub r2, r1, #1\n"
               "ldr r0, [r2]\n");
 
   // TODO: Improve the code generation for these cases.
 
-  COMPARE_A32(Ldr(r0, masm.MemOperandComputationHelper(r2,
-                                                       r1,
-                                                       0x12345678,
-                                                       0xfff)),
+  COMPARE_A32(Ldr(r0,
+                  masm.MemOperandComputationHelper(r2, r1, 0x12345678, 0xfff)),
               "mov r2, #20480\n"
               "movt r2, #4660\n"
               "add r2, r1, r2\n"
               "ldr r0, [r2, #1656]\n");
-  COMPARE_A32(Ldr(r0, masm.MemOperandComputationHelper(r2,
-                                                       r1,
-                                                       0x7fffffff,
-                                                       0xfff)),
+  COMPARE_A32(Ldr(r0,
+                  masm.MemOperandComputationHelper(r2, r1, 0x7fffffff, 0xfff)),
               "sub r2, r1, #1\n"
               "sub r2, #2147483648\n"
               "ldr r0, [r2]\n");
-  COMPARE_A32(Ldr(r0, masm.MemOperandComputationHelper(r2,
-                                                       r1,
-                                                       0xffcba000,
-                                                       0xfff)),
+  COMPARE_A32(Ldr(r0,
+                  masm.MemOperandComputationHelper(r2, r1, 0xffcba000, 0xfff)),
               "sub r2, r1, #286720\n"
               "sub r2, #3145728\n"
               "ldr r0, [r2]\n");
@@ -3585,14 +3487,13 @@
 TEST(vmrs_vmsr) {
   SETUP();
 
-  COMPARE_BOTH(Vmsr(FPSCR, r0),
-	       "vmsr FPSCR, r0\n");
+  COMPARE_BOTH(Vmsr(FPSCR, r0), "vmsr FPSCR, r0\n");
 
   COMPARE_BOTH(Vmrs(RegisterOrAPSR_nzcv(r1.GetCode()), FPSCR),
-	       "vmrs r1, FPSCR\n");
+               "vmrs r1, FPSCR\n");
 
   COMPARE_BOTH(Vmrs(RegisterOrAPSR_nzcv(pc.GetCode()), FPSCR),
-	       "vmrs APSR_nzcv, FPSCR\n");
+               "vmrs APSR_nzcv, FPSCR\n");
 
   CLEANUP();
 }
@@ -3602,59 +3503,56 @@
   SETUP();
 
   // ldm/stm
-  COMPARE_BOTH(Ldm(r0, NO_WRITE_BACK, RegisterList(r1)),
-	       "ldm r0, {r1}\n");
+  COMPARE_BOTH(Ldm(r0, NO_WRITE_BACK, RegisterList(r1)), "ldm r0, {r1}\n");
 
   COMPARE_BOTH(Ldm(r1, NO_WRITE_BACK, RegisterList(r2, r5, r9, r10)),
-	       "ldm r1, {r2,r5,r9,r10}\n");
+               "ldm r1, {r2,r5,r9,r10}\n");
 
-  COMPARE_BOTH(Ldm(r0, WRITE_BACK, RegisterList(r1, r2)),
-	       "ldm r0!, {r1,r2}\n");
+  COMPARE_BOTH(Ldm(r0, WRITE_BACK, RegisterList(r1, r2)), "ldm r0!, {r1,r2}\n");
 
   COMPARE_BOTH(Stm(r1, NO_WRITE_BACK, RegisterList(r2, r5, r9, r10)),
-	       "stm r1, {r2,r5,r9,r10}\n");
+               "stm r1, {r2,r5,r9,r10}\n");
 
-  COMPARE_BOTH(Stm(r0, WRITE_BACK, RegisterList(r1, r2)),
-	       "stm r0!, {r1,r2}\n");
+  COMPARE_BOTH(Stm(r0, WRITE_BACK, RegisterList(r1, r2)), "stm r0!, {r1,r2}\n");
 
   // ldmda/stmda
   COMPARE_A32(Ldmda(r11, WRITE_BACK, RegisterList(r0, r1)),
-	      "ldmda r11!, {r0,r1}\n");
+              "ldmda r11!, {r0,r1}\n");
 
   COMPARE_A32(Ldmda(r11, NO_WRITE_BACK, RegisterList(r2, r3)),
-	      "ldmda r11, {r2,r3}\n");
+              "ldmda r11, {r2,r3}\n");
 
   COMPARE_A32(Stmda(r11, WRITE_BACK, RegisterList(r0, r1)),
-	      "stmda r11!, {r0,r1}\n");
+              "stmda r11!, {r0,r1}\n");
 
   COMPARE_A32(Stmda(r11, NO_WRITE_BACK, RegisterList(r2, r3)),
-	      "stmda r11, {r2,r3}\n");
+              "stmda r11, {r2,r3}\n");
 
   // ldmib/stmib
   COMPARE_A32(Ldmib(r11, WRITE_BACK, RegisterList(r0, r1)),
-	      "ldmib r11!, {r0,r1}\n");
+              "ldmib r11!, {r0,r1}\n");
 
   COMPARE_A32(Ldmib(r11, NO_WRITE_BACK, RegisterList(r2, r3)),
-	      "ldmib r11, {r2,r3}\n");
+              "ldmib r11, {r2,r3}\n");
 
   COMPARE_A32(Stmib(r11, WRITE_BACK, RegisterList(r0, r1)),
-	      "stmib r11!, {r0,r1}\n");
+              "stmib r11!, {r0,r1}\n");
 
   COMPARE_A32(Stmib(r11, NO_WRITE_BACK, RegisterList(r2, r3)),
-	      "stmib r11, {r2,r3}\n");
+              "stmib r11, {r2,r3}\n");
 
   // ldmdb/stmdb
   COMPARE_BOTH(Ldmdb(r11, WRITE_BACK, RegisterList(r0, r1)),
-	       "ldmdb r11!, {r0,r1}\n");
+               "ldmdb r11!, {r0,r1}\n");
 
   COMPARE_BOTH(Ldmdb(r11, NO_WRITE_BACK, RegisterList(r2, r3)),
-	       "ldmdb r11, {r2,r3}\n");
+               "ldmdb r11, {r2,r3}\n");
 
   COMPARE_BOTH(Stmdb(r11, WRITE_BACK, RegisterList(r0, r1)),
-	       "stmdb r11!, {r0,r1}\n");
+               "stmdb r11!, {r0,r1}\n");
 
   COMPARE_BOTH(Stmdb(r11, NO_WRITE_BACK, RegisterList(r2, r3)),
-	       "stmdb r11, {r2,r3}\n");
+               "stmdb r11, {r2,r3}\n");
 
   CLEANUP();
 }
@@ -3672,22 +3570,19 @@
   UseScratchRegisterScope temps(&masm);
   temps.ExcludeAll();
 
-  CHECK_T32_16(Adc(DontCare, r7, r7, r6),
-               "adcs r7, r6\n");
+  CHECK_T32_16(Adc(DontCare, r7, r7, r6), "adcs r7, r6\n");
 
   CHECK_T32_16_IT_BLOCK(Adc(DontCare, eq, r7, r7, r6),
                         "it eq\n"
                         "adceq r7, r6\n");
 
-  CHECK_T32_16(Add(DontCare, r6, r7, 7),
-               "adds r6, r7, #7\n");
+  CHECK_T32_16(Add(DontCare, r6, r7, 7), "adds r6, r7, #7\n");
 
   CHECK_T32_16_IT_BLOCK(Add(DontCare, lt, r6, r7, 7),
                         "it lt\n"
                         "addlt r6, r7, #7\n");
 
-  CHECK_T32_16(Add(DontCare, r5, r5, 255),
-               "adds r5, #255\n");
+  CHECK_T32_16(Add(DontCare, r5, r5, 255), "adds r5, #255\n");
 
   CHECK_T32_16_IT_BLOCK(Add(DontCare, lt, r5, r5, 255),
                         "it lt\n"
@@ -3695,146 +3590,121 @@
 
   // Make sure we select the non flag-setting version here, since
   // this can have two potential encodings.
-  CHECK_T32_16(Add(DontCare, r1, r1, r2),
-               "add r1, r2\n");
+  CHECK_T32_16(Add(DontCare, r1, r1, r2), "add r1, r2\n");
 
-  CHECK_T32_16(Add(DontCare, r1, r2, r7),
-               "adds r1, r2, r7\n");
+  CHECK_T32_16(Add(DontCare, r1, r2, r7), "adds r1, r2, r7\n");
 
   CHECK_T32_16_IT_BLOCK(Add(DontCare, lt, r1, r2, r7),
                         "it lt\n"
                         "addlt r1, r2, r7\n");
 
-  CHECK_T32_16(Add(DontCare, r4, r4, r12),
-               "add r4, ip\n");
+  CHECK_T32_16(Add(DontCare, r4, r4, r12), "add r4, ip\n");
 
   CHECK_T32_16_IT_BLOCK(Add(DontCare, eq, r4, r4, r12),
                         "it eq\n"
                         "addeq r4, ip\n");
 
-  CHECK_T32_16(Add(DontCare, r0, sp, 1020),
-               "add r0, sp, #1020\n");
+  CHECK_T32_16(Add(DontCare, r0, sp, 1020), "add r0, sp, #1020\n");
 
   CHECK_T32_16_IT_BLOCK(Add(DontCare, ge, r0, sp, 1020),
                         "it ge\n"
                         "addge r0, sp, #1020\n");
 
   // The equivalent inside an IT block is deprecated.
-  CHECK_T32_16(Add(DontCare, sp, sp, 508),
-               "add sp, #508\n");
+  CHECK_T32_16(Add(DontCare, sp, sp, 508), "add sp, #508\n");
 
-  CHECK_T32_16(Add(DontCare, r7, sp, r7),
-               "add r7, sp, r7\n");
+  CHECK_T32_16(Add(DontCare, r7, sp, r7), "add r7, sp, r7\n");
 
   CHECK_T32_16_IT_BLOCK(Add(DontCare, eq, r7, sp, r7),
                         "it eq\n"
                         "addeq r7, sp, r7\n");
 
-  CHECK_T32_16(Add(DontCare, sp, sp, r10),
-               "add sp, r10\n");
+  CHECK_T32_16(Add(DontCare, sp, sp, r10), "add sp, r10\n");
 
   CHECK_T32_16_IT_BLOCK(Add(DontCare, eq, sp, sp, r10),
                         "it eq\n"
                         "addeq sp, r10\n");
 
-  CHECK_T32_16(And(DontCare, r7, r7, r6),
-               "ands r7, r6\n");
+  CHECK_T32_16(And(DontCare, r7, r7, r6), "ands r7, r6\n");
 
   CHECK_T32_16_IT_BLOCK(And(DontCare, eq, r7, r7, r6),
                         "it eq\n"
                         "andeq r7, r6\n");
 
-  CHECK_T32_16(Asr(DontCare, r0, r1, 32),
-               "asrs r0, r1, #32\n");
+  CHECK_T32_16(Asr(DontCare, r0, r1, 32), "asrs r0, r1, #32\n");
 
   CHECK_T32_16_IT_BLOCK(Asr(DontCare, eq, r0, r1, 32),
                         "it eq\n"
                         "asreq r0, r1, #32\n");
 
-  CHECK_T32_16(Asr(DontCare, r0, r0, r1),
-               "asrs r0, r1\n");
+  CHECK_T32_16(Asr(DontCare, r0, r0, r1), "asrs r0, r1\n");
 
   CHECK_T32_16_IT_BLOCK(Asr(DontCare, eq, r0, r0, r1),
                         "it eq\n"
                         "asreq r0, r1\n");
 
-  CHECK_T32_16(Bic(DontCare, r7, r7, r6),
-               "bics r7, r6\n");
+  CHECK_T32_16(Bic(DontCare, r7, r7, r6), "bics r7, r6\n");
 
   CHECK_T32_16_IT_BLOCK(Bic(DontCare, eq, r7, r7, r6),
                         "it eq\n"
                         "biceq r7, r6\n");
 
-  CHECK_T32_16(Eor(DontCare, r7, r7, r6),
-               "eors r7, r6\n");
+  CHECK_T32_16(Eor(DontCare, r7, r7, r6), "eors r7, r6\n");
 
   CHECK_T32_16_IT_BLOCK(Eor(DontCare, eq, r7, r7, r6),
                         "it eq\n"
                         "eoreq r7, r6\n");
 
-  CHECK_T32_16(Lsl(DontCare, r0, r1, 31),
-               "lsls r0, r1, #31\n");
+  CHECK_T32_16(Lsl(DontCare, r0, r1, 31), "lsls r0, r1, #31\n");
 
   CHECK_T32_16_IT_BLOCK(Lsl(DontCare, eq, r0, r1, 31),
                         "it eq\n"
                         "lsleq r0, r1, #31\n");
 
-  CHECK_T32_16(Lsl(DontCare, r0, r0, r1),
-               "lsls r0, r1\n");
+  CHECK_T32_16(Lsl(DontCare, r0, r0, r1), "lsls r0, r1\n");
 
   CHECK_T32_16_IT_BLOCK(Lsl(DontCare, eq, r0, r0, r1),
                         "it eq\n"
                         "lsleq r0, r1\n");
 
-  CHECK_T32_16(Lsr(DontCare, r0, r1, 32),
-               "lsrs r0, r1, #32\n");
+  CHECK_T32_16(Lsr(DontCare, r0, r1, 32), "lsrs r0, r1, #32\n");
 
   CHECK_T32_16_IT_BLOCK(Lsr(DontCare, eq, r0, r1, 32),
                         "it eq\n"
                         "lsreq r0, r1, #32\n");
 
-  CHECK_T32_16(Lsr(DontCare, r0, r0, r1),
-               "lsrs r0, r1\n");
+  CHECK_T32_16(Lsr(DontCare, r0, r0, r1), "lsrs r0, r1\n");
 
   CHECK_T32_16_IT_BLOCK(Lsr(DontCare, eq, r0, r0, r1),
                         "it eq\n"
                         "lsreq r0, r1\n");
 
-  CHECK_T32_16(Mov(DontCare, r7, 255),
-               "movs r7, #255\n");
+  CHECK_T32_16(Mov(DontCare, r7, 255), "movs r7, #255\n");
 
   CHECK_T32_16_IT_BLOCK(Mov(DontCare, eq, r7, 255),
                         "it eq\n"
                         "moveq r7, #255\n");
 
-  CHECK_T32_16(Mov(DontCare, r9, r8),
-               "mov r9, r8\n");
+  CHECK_T32_16(Mov(DontCare, r9, r8), "mov r9, r8\n");
 
   // Check that we don't try to pick the MOVS register-shifted register variant.
-  CHECK_T32_16(Mov(DontCare, r5, r6),
-               "mov r5, r6\n");
+  CHECK_T32_16(Mov(DontCare, r5, r6), "mov r5, r6\n");
 
   CHECK_T32_16_IT_BLOCK(Mov(DontCare, eq, r9, r8),
                         "it eq\n"
                         "moveq r9, r8\n");
 
-  CHECK_T32_16(Mov(DontCare, r5, Operand(r6, ASR, 1)),
-               "asrs r5, r6, #1\n");
+  CHECK_T32_16(Mov(DontCare, r5, Operand(r6, ASR, 1)), "asrs r5, r6, #1\n");
 
-  CHECK_T32_16(Mov(DontCare, r5, Operand(r6, ASR, 32)),
-               "asrs r5, r6, #32\n");
+  CHECK_T32_16(Mov(DontCare, r5, Operand(r6, ASR, 32)), "asrs r5, r6, #32\n");
 
-  CHECK_T32_16(Mov(DontCare, r5, Operand(r6, LSR, 1)),
-               "lsrs r5, r6, #1\n");
+  CHECK_T32_16(Mov(DontCare, r5, Operand(r6, LSR, 1)), "lsrs r5, r6, #1\n");
 
-  CHECK_T32_16(Mov(DontCare, r5, Operand(r6, LSR, 32)),
-               "lsrs r5, r6, #32\n");
+  CHECK_T32_16(Mov(DontCare, r5, Operand(r6, LSR, 32)), "lsrs r5, r6, #32\n");
 
-  CHECK_T32_16(Mov(DontCare, r5, Operand(r6, LSL, 1)),
-               "lsls r5, r6, #1\n");
+  CHECK_T32_16(Mov(DontCare, r5, Operand(r6, LSL, 1)), "lsls r5, r6, #1\n");
 
-  CHECK_T32_16(Mov(DontCare, r5, Operand(r6, LSL, 31)),
-               "lsls r5, r6, #31\n");
+  CHECK_T32_16(Mov(DontCare, r5, Operand(r6, LSL, 31)), "lsls r5, r6, #31\n");
 
   CHECK_T32_16_IT_BLOCK(Mov(DontCare, eq, r5, Operand(r6, ASR, 1)),
                         "it eq\n"
@@ -3860,133 +3730,109 @@
                         "it eq\n"
                         "lsleq r5, r6, #31\n");
 
-  CHECK_T32_16(Mov(DontCare, r7, Operand(r7, ASR, r6)),
-               "asrs r7, r6\n");
+  CHECK_T32_16(Mov(DontCare, r7, Operand(r7, ASR, r6)), "asrs r7, r6\n");
 
   CHECK_T32_16_IT_BLOCK(Mov(DontCare, eq, r7, Operand(r7, ASR, r6)),
                         "it eq\n"
                         "asreq r7, r6\n");
 
-  CHECK_T32_16(Mov(DontCare, r7, Operand(r7, LSR, r6)),
-               "lsrs r7, r6\n");
+  CHECK_T32_16(Mov(DontCare, r7, Operand(r7, LSR, r6)), "lsrs r7, r6\n");
 
   CHECK_T32_16_IT_BLOCK(Mov(DontCare, eq, r7, Operand(r7, LSR, r6)),
                         "it eq\n"
                         "lsreq r7, r6\n");
 
-  CHECK_T32_16(Mov(DontCare, r7, Operand(r7, LSL, r6)),
-               "lsls r7, r6\n");
+  CHECK_T32_16(Mov(DontCare, r7, Operand(r7, LSL, r6)), "lsls r7, r6\n");
 
   CHECK_T32_16_IT_BLOCK(Mov(DontCare, eq, r7, Operand(r7, LSL, r6)),
                         "it eq\n"
                         "lsleq r7, r6\n");
 
-  CHECK_T32_16(Mov(DontCare, r7, Operand(r7, ROR, r6)),
-               "rors r7, r6\n");
+  CHECK_T32_16(Mov(DontCare, r7, Operand(r7, ROR, r6)), "rors r7, r6\n");
 
   CHECK_T32_16_IT_BLOCK(Mov(DontCare, eq, r7, Operand(r7, ROR, r6)),
                         "it eq\n"
                         "roreq r7, r6\n");
 
-  CHECK_T32_16(Mul(DontCare, r0, r1, r0),
-               "muls r0, r1, r0\n");
+  CHECK_T32_16(Mul(DontCare, r0, r1, r0), "muls r0, r1, r0\n");
 
   CHECK_T32_16_IT_BLOCK(Mul(DontCare, eq, r0, r1, r0),
                         "it eq\n"
                         "muleq r0, r1, r0\n");
 
-  CHECK_T32_16(Mvn(DontCare, r6, r7),
-               "mvns r6, r7\n");
+  CHECK_T32_16(Mvn(DontCare, r6, r7), "mvns r6, r7\n");
 
   CHECK_T32_16_IT_BLOCK(Mvn(DontCare, eq, r6, r7),
                         "it eq\n"
                         "mvneq r6, r7\n");
 
-  CHECK_T32_16(Orr(DontCare, r7, r7, r6),
-               "orrs r7, r6\n");
+  CHECK_T32_16(Orr(DontCare, r7, r7, r6), "orrs r7, r6\n");
 
   CHECK_T32_16_IT_BLOCK(Orr(DontCare, eq, r7, r7, r6),
                         "it eq\n"
                         "orreq r7, r6\n");
 
-  CHECK_T32_16(Ror(DontCare, r0, r0, r1),
-               "rors r0, r1\n");
+  CHECK_T32_16(Ror(DontCare, r0, r0, r1), "rors r0, r1\n");
 
   CHECK_T32_16_IT_BLOCK(Ror(DontCare, eq, r0, r0, r1),
                         "it eq\n"
                         "roreq r0, r1\n");
 
-  CHECK_T32_16(Rsb(DontCare, r7, r6, 0),
-               "rsbs r7, r6, #0\n");
+  CHECK_T32_16(Rsb(DontCare, r7, r6, 0), "rsbs r7, r6, #0\n");
 
   CHECK_T32_16_IT_BLOCK(Rsb(DontCare, eq, r7, r6, 0),
                         "it eq\n"
                         "rsbeq r7, r6, #0\n");
 
-  CHECK_T32_16(Sbc(DontCare, r7, r7, r6),
-               "sbcs r7, r6\n");
+  CHECK_T32_16(Sbc(DontCare, r7, r7, r6), "sbcs r7, r6\n");
 
   CHECK_T32_16_IT_BLOCK(Sbc(DontCare, eq, r7, r7, r6),
                         "it eq\n"
                         "sbceq r7, r6\n");
 
-  CHECK_T32_16(Sub(DontCare, r6, r7, 7),
-               "subs r6, r7, #7\n");
+  CHECK_T32_16(Sub(DontCare, r6, r7, 7), "subs r6, r7, #7\n");
 
   CHECK_T32_16_IT_BLOCK(Sub(DontCare, lt, r6, r7, 7),
                         "it lt\n"
                         "sublt r6, r7, #7\n");
 
-  CHECK_T32_16(Sub(DontCare, r5, r5, 255),
-               "subs r5, #255\n");
+  CHECK_T32_16(Sub(DontCare, r5, r5, 255), "subs r5, #255\n");
 
   CHECK_T32_16_IT_BLOCK(Sub(DontCare, lt, r5, r5, 255),
                         "it lt\n"
                         "sublt r5, #255\n");
 
-  CHECK_T32_16(Sub(DontCare, r1, r2, r7),
-               "subs r1, r2, r7\n");
+  CHECK_T32_16(Sub(DontCare, r1, r2, r7), "subs r1, r2, r7\n");
 
   CHECK_T32_16_IT_BLOCK(Sub(DontCare, lt, r1, r2, r7),
                         "it lt\n"
                         "sublt r1, r2, r7\n");
 
   // The equivalent inside an IT block is deprecated.
-  CHECK_T32_16(Sub(DontCare, sp, sp, 508),
-               "sub sp, #508\n");
+  CHECK_T32_16(Sub(DontCare, sp, sp, 508), "sub sp, #508\n");
 
   // Generate SUBS for ADD.
-  CHECK_T32_16(Add(DontCare, r0, r1, -1),
-               "subs r0, r1, #1\n");
+  CHECK_T32_16(Add(DontCare, r0, r1, -1), "subs r0, r1, #1\n");
 
-  CHECK_T32_16(Add(DontCare, r0, r1, -7),
-               "subs r0, r1, #7\n");
+  CHECK_T32_16(Add(DontCare, r0, r1, -7), "subs r0, r1, #7\n");
 
-  CHECK_T32_16(Add(DontCare, r6, r6, -1),
-               "subs r6, #1\n");
+  CHECK_T32_16(Add(DontCare, r6, r6, -1), "subs r6, #1\n");
 
-  CHECK_T32_16(Add(DontCare, r6, r6, -255),
-               "subs r6, #255\n");
+  CHECK_T32_16(Add(DontCare, r6, r6, -255), "subs r6, #255\n");
 
   // Generate ADDS for SUB.
-  CHECK_T32_16(Sub(DontCare, r0, r1, -1),
-               "adds r0, r1, #1\n");
+  CHECK_T32_16(Sub(DontCare, r0, r1, -1), "adds r0, r1, #1\n");
 
-  CHECK_T32_16(Sub(DontCare, r0, r1, -7),
-               "adds r0, r1, #7\n");
+  CHECK_T32_16(Sub(DontCare, r0, r1, -7), "adds r0, r1, #7\n");
 
-  CHECK_T32_16(Sub(DontCare, r6, r6, -1),
-               "adds r6, #1\n");
+  CHECK_T32_16(Sub(DontCare, r6, r6, -1), "adds r6, #1\n");
 
-  CHECK_T32_16(Sub(DontCare, r6, r6, -255),
-               "adds r6, #255\n");
+  CHECK_T32_16(Sub(DontCare, r6, r6, -255), "adds r6, #255\n");
 
   // Check that we don't change the opcode for INT_MIN.
-  COMPARE_T32(Add(DontCare, r6, r6, 0x80000000),
-              "add r6, #2147483648\n");
+  COMPARE_T32(Add(DontCare, r6, r6, 0x80000000), "add r6, #2147483648\n");
 
-  COMPARE_T32(Sub(DontCare, r6, r6, 0x80000000),
-              "sub r6, #2147483648\n");
+  COMPARE_T32(Sub(DontCare, r6, r6, 0x80000000), "sub r6, #2147483648\n");
 
   CLEANUP();
 }
@@ -4033,11 +3879,11 @@
                "add r0, r1, #33\n"
                "add r0, #1124073472\n");
   COMPARE_T32(Add(r0, r1, 0x54321),
-               "add r0, r1, #801\n"
-               "add r0, #344064\n");
+              "add r0, r1, #801\n"
+              "add r0, #344064\n");
   COMPARE_T32(Add(r0, r1, 0x54000321),
-               "add r0, r1, #801\n"
-               "add r0, #1409286144\n");
+              "add r0, r1, #801\n"
+              "add r0, #1409286144\n");
 
   COMPARE_A32(Sub(r0, r1, 0x4321),
               "sub r0, r1, #33\n"
@@ -4058,11 +3904,11 @@
                "sub r0, r1, #33\n"
                "sub r0, #1124073472\n");
   COMPARE_T32(Sub(r0, r1, 0x54321),
-               "sub r0, r1, #801\n"
-               "sub r0, #344064\n");
+              "sub r0, r1, #801\n"
+              "sub r0, #344064\n");
   COMPARE_T32(Sub(r0, r1, 0x54000321),
-               "sub r0, r1, #801\n"
-               "sub r0, #1409286144\n");
+              "sub r0, r1, #801\n"
+              "sub r0, #1409286144\n");
 
   CLEANUP();
 }
diff --git a/test/aarch32/test-utils-aarch32.cc b/test/aarch32/test-utils-aarch32.cc
index 4684bbf..960a9f5 100644
--- a/test/aarch32/test-utils-aarch32.cc
+++ b/test/aarch32/test-utils-aarch32.cc
@@ -31,8 +31,7 @@
 namespace vixl {
 namespace aarch32 {
 
-#define VIXL_OFFSET(type, member) \
-  offsetof(type, member)
+#define VIXL_OFFSET(type, member) offsetof(type, member)
 
 void RegisterDump::Dump(MacroAssembler* masm) {
   UseScratchRegisterScope scratch(masm);
@@ -72,7 +71,8 @@
 
   for (unsigned i = 0; i < kMaxNumberOfDRegisters; i++) {
     DRegister rt(i);
-    __ Vstr(Untyped64, rt,
+    __ Vstr(Untyped64,
+            rt,
             MemOperand(dump_base, d_offset + (i * kDRegSizeInBytes)));
   }
 
@@ -90,13 +90,12 @@
   __ Pop(dump_base);
 
   // Dump tmp, dump_base and the stack pointer.
-  __ Str(tmp, MemOperand(dump2_base,
-                         r_offset + (tmp.GetCode() * kRegSizeInBytes)));
+  __ Str(tmp,
+         MemOperand(dump2_base, r_offset + (tmp.GetCode() * kRegSizeInBytes)));
   __ Str(dump_base,
          MemOperand(dump2_base,
                     r_offset + (dump_base.GetCode() * kRegSizeInBytes)));
-  __ Str(sp, MemOperand(dump2_base,
-                        r_offset + (kSPRegNum * kRegSizeInBytes)));
+  __ Str(sp, MemOperand(dump2_base, r_offset + (kSPRegNum * kRegSizeInBytes)));
 
   completed_ = true;
 }
@@ -105,15 +104,15 @@
 bool Equal32(uint32_t expected, const RegisterDump*, uint32_t result) {
   if (result != expected) {
     printf("Expected 0x%08" PRIx32 "\t Found 0x%08" PRIx32 "\n",
-           expected, result);
+           expected,
+           result);
   }
 
   return expected == result;
 }
 
 
-bool Equal32(uint32_t expected, const RegisterDump* core,
-             const Register& reg) {
+bool Equal32(uint32_t expected, const RegisterDump* core, const Register& reg) {
   if (reg.IsPC()) {
     printf("Testing the value of the program counter is not supported.");
     return false;
@@ -123,7 +122,8 @@
 }
 
 
-bool Equal32(uint32_t expected, const RegisterDump* core,
+bool Equal32(uint32_t expected,
+             const RegisterDump* core,
              const SRegister& sreg) {
   return Equal32(expected, core, core->GetSRegisterBits(sreg.GetCode()));
 }
@@ -132,14 +132,16 @@
 bool Equal64(uint64_t expected, const RegisterDump*, uint64_t result) {
   if (result != expected) {
     printf("Expected 0x%016" PRIx64 "\t Found 0x%016" PRIx64 "\n",
-           expected, result);
+           expected,
+           result);
   }
 
   return expected == result;
 }
 
 
-bool Equal64(uint64_t expected, const RegisterDump* core,
+bool Equal64(uint64_t expected,
+             const RegisterDump* core,
              const DRegister& dreg) {
   return Equal64(expected, core, core->GetDRegisterBits(dreg.GetCode()));
 }
@@ -147,41 +149,39 @@
 
 bool Equal128(vec128_t expected, const RegisterDump*, vec128_t result) {
   if ((result.h != expected.h) || (result.l != expected.l)) {
-    printf("Expected 0x%016" PRIx64 "%016" PRIx64 "\t "
+    printf("Expected 0x%016" PRIx64 "%016" PRIx64
+           "\t "
            "Found 0x%016" PRIx64 "%016" PRIx64 "\n",
-           expected.h, expected.l, result.h, result.l);
+           expected.h,
+           expected.l,
+           result.h,
+           result.l);
   }
 
   return ((expected.h == result.h) && (expected.l == result.l));
 }
 
 
-bool Equal128(uint64_t expected_h, uint64_t expected_l,
-              const RegisterDump* core, const QRegister& qreg) {
+bool Equal128(uint64_t expected_h,
+              uint64_t expected_l,
+              const RegisterDump* core,
+              const QRegister& qreg) {
   vec128_t expected = {expected_l, expected_h};
   vec128_t result = core->GetQRegisterBits(qreg.GetCode());
   return Equal128(expected, core, result);
 }
 
 
-static char FlagN(uint32_t flags) {
-  return (flags & NFlag) ? 'N' : 'n';
-}
+static char FlagN(uint32_t flags) { return (flags & NFlag) ? 'N' : 'n'; }
 
 
-static char FlagZ(uint32_t flags) {
-  return (flags & ZFlag) ? 'Z' : 'z';
-}
+static char FlagZ(uint32_t flags) { return (flags & ZFlag) ? 'Z' : 'z'; }
 
 
-static char FlagC(uint32_t flags) {
-  return (flags & CFlag) ? 'C' : 'c';
-}
+static char FlagC(uint32_t flags) { return (flags & CFlag) ? 'C' : 'c'; }
 
 
-static char FlagV(uint32_t flags) {
-  return (flags & VFlag) ? 'V' : 'v';
-}
+static char FlagV(uint32_t flags) { return (flags & VFlag) ? 'V' : 'v'; }
 
 
 bool EqualNzcv(uint32_t expected, uint32_t result) {
@@ -189,8 +189,14 @@
   VIXL_ASSERT((result & ~NZCVFlag) == 0);
   if (result != expected) {
     printf("Expected: %c%c%c%c\t Found: %c%c%c%c\n",
-        FlagN(expected), FlagZ(expected), FlagC(expected), FlagV(expected),
-        FlagN(result), FlagZ(result), FlagC(result), FlagV(result));
+           FlagN(expected),
+           FlagZ(expected),
+           FlagC(expected),
+           FlagV(expected),
+           FlagN(result),
+           FlagZ(result),
+           FlagC(result),
+           FlagV(result));
     return false;
   }
 
@@ -209,12 +215,16 @@
   } else {
     if (std::isnan(expected) || (expected == 0.0)) {
       printf("Expected 0x%08" PRIx32 "\t Found 0x%08" PRIx32 "\n",
-             FloatToRawbits(expected), result);
+             FloatToRawbits(expected),
+             result);
     } else {
-      printf("Expected %.9f (0x%08" PRIx32 ")\t "
+      printf("Expected %.9f (0x%08" PRIx32
+             ")\t "
              "Found %.9f (0x%08" PRIx32 ")\n",
-             expected, FloatToRawbits(expected),
-             RawbitsToFloat(result), result);
+             expected,
+             FloatToRawbits(expected),
+             RawbitsToFloat(result),
+             result);
     }
     return false;
   }
@@ -233,12 +243,16 @@
 
   if (std::isnan(expected) || (expected == 0.0)) {
     printf("Expected 0x%016" PRIx64 "\t Found 0x%016" PRIx64 "\n",
-           DoubleToRawbits(expected), DoubleToRawbits(result));
+           DoubleToRawbits(expected),
+           DoubleToRawbits(result));
   } else {
-    printf("Expected %.17f (0x%016" PRIx64 ")\t "
+    printf("Expected %.17f (0x%016" PRIx64
+           ")\t "
            "Found %.17f (0x%016" PRIx64 ")\n",
-           expected, DoubleToRawbits(expected),
-           RawbitsToDouble(result), result);
+           expected,
+           DoubleToRawbits(expected),
+           RawbitsToDouble(result),
+           result);
   }
   return false;
 }
diff --git a/test/aarch32/test-utils-aarch32.h b/test/aarch32/test-utils-aarch32.h
index 2e7f8f3..dd8ecb5 100644
--- a/test/aarch32/test-utils-aarch32.h
+++ b/test/aarch32/test-utils-aarch32.h
@@ -45,40 +45,40 @@
 
 // Helper constants used to check for condition code combinations.  These are
 // not part of instruction definitions as no instruction uses them directly.
-const uint32_t NoFlag   = 0x0;
-const uint32_t NFlag    = 0x80000000;
-const uint32_t ZFlag    = 0x40000000;
-const uint32_t CFlag    = 0x20000000;
-const uint32_t VFlag    = 0x10000000;
-const uint32_t NZFlag   = NFlag | ZFlag;
-const uint32_t NCFlag   = NFlag | CFlag;
-const uint32_t NVFlag   = NFlag | VFlag;
-const uint32_t ZCFlag   = ZFlag | CFlag;
-const uint32_t ZVFlag   = ZFlag | VFlag;
-const uint32_t CVFlag   = CFlag | VFlag;
-const uint32_t NZCFlag  = NFlag | ZFlag | CFlag;
-const uint32_t NZVFlag  = NFlag | ZFlag | VFlag;
-const uint32_t NCVFlag  = NFlag | CFlag | VFlag;
-const uint32_t ZCVFlag  = ZFlag | CFlag | VFlag;
+const uint32_t NoFlag = 0x0;
+const uint32_t NFlag = 0x80000000;
+const uint32_t ZFlag = 0x40000000;
+const uint32_t CFlag = 0x20000000;
+const uint32_t VFlag = 0x10000000;
+const uint32_t NZFlag = NFlag | ZFlag;
+const uint32_t NCFlag = NFlag | CFlag;
+const uint32_t NVFlag = NFlag | VFlag;
+const uint32_t ZCFlag = ZFlag | CFlag;
+const uint32_t ZVFlag = ZFlag | VFlag;
+const uint32_t CVFlag = CFlag | VFlag;
+const uint32_t NZCFlag = NFlag | ZFlag | CFlag;
+const uint32_t NZVFlag = NFlag | ZFlag | VFlag;
+const uint32_t NCVFlag = NFlag | CFlag | VFlag;
+const uint32_t ZCVFlag = ZFlag | CFlag | VFlag;
 const uint32_t NZCVFlag = NFlag | ZFlag | CFlag | VFlag;
-const uint32_t QFlag    = 0x08000000;
+const uint32_t QFlag = 0x08000000;
 
-const uint32_t GE0Flag    = 0x00010000;
-const uint32_t GE1Flag    = 0x00020000;
-const uint32_t GE2Flag    = 0x00040000;
-const uint32_t GE3Flag    = 0x00080000;
-const uint32_t GE01Flag   = GE0Flag | GE1Flag;
-const uint32_t GE02Flag   = GE0Flag | GE2Flag;
-const uint32_t GE03Flag   = GE0Flag | GE3Flag;
-const uint32_t GE12Flag   = GE1Flag | GE2Flag;
-const uint32_t GE13Flag   = GE1Flag | GE3Flag;
-const uint32_t GE23Flag   = GE2Flag | GE3Flag;
-const uint32_t GE012Flag  = GE0Flag | GE1Flag | GE2Flag;
-const uint32_t GE013Flag  = GE0Flag | GE1Flag | GE3Flag;
-const uint32_t GE023Flag  = GE0Flag | GE2Flag | GE3Flag;
-const uint32_t GE123Flag  = GE1Flag | GE2Flag | GE3Flag;
+const uint32_t GE0Flag = 0x00010000;
+const uint32_t GE1Flag = 0x00020000;
+const uint32_t GE2Flag = 0x00040000;
+const uint32_t GE3Flag = 0x00080000;
+const uint32_t GE01Flag = GE0Flag | GE1Flag;
+const uint32_t GE02Flag = GE0Flag | GE2Flag;
+const uint32_t GE03Flag = GE0Flag | GE3Flag;
+const uint32_t GE12Flag = GE1Flag | GE2Flag;
+const uint32_t GE13Flag = GE1Flag | GE3Flag;
+const uint32_t GE23Flag = GE2Flag | GE3Flag;
+const uint32_t GE012Flag = GE0Flag | GE1Flag | GE2Flag;
+const uint32_t GE013Flag = GE0Flag | GE1Flag | GE3Flag;
+const uint32_t GE023Flag = GE0Flag | GE2Flag | GE3Flag;
+const uint32_t GE123Flag = GE1Flag | GE2Flag | GE3Flag;
 const uint32_t GE0123Flag = GE0Flag | GE1Flag | GE2Flag | GE3Flag;
-const uint32_t GEFlags    = GE0123Flag;
+const uint32_t GEFlags = GE0123Flag;
 
 struct vec128_t {
   uint64_t l;
@@ -112,10 +112,7 @@
   vec128_t GetQRegisterBits(unsigned code) const {
     VIXL_ASSERT(IsComplete());
     VIXL_ASSERT(code < kNumberOfQRegisters);
-    vec128_t content = {
-      dump_.d_[code * 2],
-      dump_.d_[(code * 2) + 1]
-    };
+    vec128_t content = {dump_.d_[code * 2], dump_.d_[(code * 2) + 1]};
     return content;
   }
 
@@ -140,9 +137,7 @@
   }
 
   // Stack pointer accessors.
-  int32_t spreg() const {
-    return reg(kSPRegNum);
-  }
+  int32_t spreg() const { return reg(kSPRegNum); }
 
   // Flags accessors.
   uint32_t flags_nzcv() const {
@@ -150,9 +145,7 @@
     return dump_.flags_ & NZCVFlag;
   }
 
-  bool IsComplete() const {
-    return completed_;
-  }
+  bool IsComplete() const { return completed_; }
 
  private:
   // Indicate whether the dump operation has been completed.
@@ -176,15 +169,17 @@
 
 bool Equal32(uint32_t expected, const RegisterDump* core, const Register& reg);
 bool Equal32(uint32_t expected, const RegisterDump* core, uint32_t result);
-bool Equal32(uint32_t expected, const RegisterDump* core,
+bool Equal32(uint32_t expected,
+             const RegisterDump* core,
              const SRegister& sreg);
-bool Equal64(uint64_t expected, const RegisterDump* core,
+bool Equal64(uint64_t expected,
+             const RegisterDump* core,
              const DRegister& dreg);
-bool Equal128(uint64_t expected_h, uint64_t expected_l,
-              const RegisterDump* core, const QRegister& qreg);
-bool EqualFP32(float expected,
-               const RegisterDump* core,
-               const SRegister& dreg);
+bool Equal128(uint64_t expected_h,
+              uint64_t expected_l,
+              const RegisterDump* core,
+              const QRegister& qreg);
+bool EqualFP32(float expected, const RegisterDump* core, const SRegister& dreg);
 bool EqualFP64(double expected,
                const RegisterDump* core,
                const DRegister& dreg);
diff --git a/test/aarch64/examples/test-examples.cc b/test/aarch64/examples/test-examples.cc
index ec1ce7b..7817536 100644
--- a/test/aarch64/examples/test-examples.cc
+++ b/test/aarch64/examples/test-examples.cc
@@ -39,9 +39,7 @@
 using namespace vixl::aarch64;
 
 
-TEST(custom_disassembler) {
-  TestCustomDisassembler();
-}
+TEST(custom_disassembler) { TestCustomDisassembler(); }
 
 
 // The tests below only work with the simulator.
@@ -63,30 +61,28 @@
 // Multiply two column-major 4x4 matrices of 32 bit floating point values.
 // Return a column-major 4x4 matrix of 32 bit floating point values in 'C'.
 void MatrixMultiplyC(float C[16], float A[16], float B[16]) {
-  C[ 0] = A[ 0]*B[ 0] + A[ 4]*B[ 1] + A[ 8]*B[ 2] + A[12]*B[ 3];
-  C[ 1] = A[ 1]*B[ 0] + A[ 5]*B[ 1] + A[ 9]*B[ 2] + A[13]*B[ 3];
-  C[ 2] = A[ 2]*B[ 0] + A[ 6]*B[ 1] + A[10]*B[ 2] + A[14]*B[ 3];
-  C[ 3] = A[ 3]*B[ 0] + A[ 7]*B[ 1] + A[11]*B[ 2] + A[15]*B[ 3];
+  C[0] = A[0] * B[0] + A[4] * B[1] + A[8] * B[2] + A[12] * B[3];
+  C[1] = A[1] * B[0] + A[5] * B[1] + A[9] * B[2] + A[13] * B[3];
+  C[2] = A[2] * B[0] + A[6] * B[1] + A[10] * B[2] + A[14] * B[3];
+  C[3] = A[3] * B[0] + A[7] * B[1] + A[11] * B[2] + A[15] * B[3];
 
-  C[ 4] = A[ 0]*B[ 4] + A[ 4]*B[ 5] + A[ 8]*B[ 6] + A[12]*B[ 7];
-  C[ 5] = A[ 1]*B[ 4] + A[ 5]*B[ 5] + A[ 9]*B[ 6] + A[13]*B[ 7];
-  C[ 6] = A[ 2]*B[ 4] + A[ 6]*B[ 5] + A[10]*B[ 6] + A[14]*B[ 7];
-  C[ 7] = A[ 3]*B[ 4] + A[ 7]*B[ 5] + A[11]*B[ 6] + A[15]*B[ 7];
+  C[4] = A[0] * B[4] + A[4] * B[5] + A[8] * B[6] + A[12] * B[7];
+  C[5] = A[1] * B[4] + A[5] * B[5] + A[9] * B[6] + A[13] * B[7];
+  C[6] = A[2] * B[4] + A[6] * B[5] + A[10] * B[6] + A[14] * B[7];
+  C[7] = A[3] * B[4] + A[7] * B[5] + A[11] * B[6] + A[15] * B[7];
 
-  C[ 8] = A[ 0]*B[ 8] + A[ 4]*B[ 9] + A[ 8]*B[10] + A[12]*B[11];
-  C[ 9] = A[ 1]*B[ 8] + A[ 5]*B[ 9] + A[ 9]*B[10] + A[13]*B[11];
-  C[10] = A[ 2]*B[ 8] + A[ 6]*B[ 9] + A[10]*B[10] + A[14]*B[11];
-  C[11] = A[ 3]*B[ 8] + A[ 7]*B[ 9] + A[11]*B[10] + A[15]*B[11];
+  C[8] = A[0] * B[8] + A[4] * B[9] + A[8] * B[10] + A[12] * B[11];
+  C[9] = A[1] * B[8] + A[5] * B[9] + A[9] * B[10] + A[13] * B[11];
+  C[10] = A[2] * B[8] + A[6] * B[9] + A[10] * B[10] + A[14] * B[11];
+  C[11] = A[3] * B[8] + A[7] * B[9] + A[11] * B[10] + A[15] * B[11];
 
-  C[12] = A[ 0]*B[12] + A[ 4]*B[13] + A[ 8]*B[14] + A[12]*B[15];
-  C[13] = A[ 1]*B[12] + A[ 5]*B[13] + A[ 9]*B[14] + A[13]*B[15];
-  C[14] = A[ 2]*B[12] + A[ 6]*B[13] + A[10]*B[14] + A[14]*B[15];
-  C[15] = A[ 3]*B[12] + A[ 7]*B[13] + A[11]*B[14] + A[15]*B[15];
+  C[12] = A[0] * B[12] + A[4] * B[13] + A[8] * B[14] + A[12] * B[15];
+  C[13] = A[1] * B[12] + A[5] * B[13] + A[9] * B[14] + A[13] * B[15];
+  C[14] = A[2] * B[12] + A[6] * B[13] + A[10] * B[14] + A[14] * B[15];
+  C[15] = A[3] * B[12] + A[7] * B[13] + A[11] * B[14] + A[15] * B[15];
 }
 
-double Add3DoubleC(double x, double y, double z) {
-  return x + y + z;
-}
+double Add3DoubleC(double x, double y, double z) { return x + y + z; }
 
 double Add4DoubleC(uint64_t a, double b, uint64_t c, double d) {
   return static_cast<double>(a) + b + static_cast<double>(c) + d;
@@ -103,7 +99,7 @@
 }
 
 
-void GenerateTestWrapper(MacroAssembler* masm, RegisterDump *regs) {
+void GenerateTestWrapper(MacroAssembler* masm, RegisterDump* regs) {
   __ Push(xzr, lr);
   __ Blr(x15);
   regs->Dump(masm);
@@ -112,92 +108,91 @@
 }
 
 
-#define TEST_FUNCTION(Func)                                             \
-  do {                                                                  \
-    int64_t saved_xregs[13];                                            \
-    saved_xregs[0] = simulator.ReadXRegister(19);                       \
-    saved_xregs[1] = simulator.ReadXRegister(20);                       \
-    saved_xregs[2] = simulator.ReadXRegister(21);                       \
-    saved_xregs[3] = simulator.ReadXRegister(22);                       \
-    saved_xregs[4] = simulator.ReadXRegister(23);                       \
-    saved_xregs[5] = simulator.ReadXRegister(24);                       \
-    saved_xregs[6] = simulator.ReadXRegister(25);                       \
-    saved_xregs[7] = simulator.ReadXRegister(26);                       \
-    saved_xregs[8] = simulator.ReadXRegister(27);                       \
-    saved_xregs[9] = simulator.ReadXRegister(28);                       \
-    saved_xregs[10] = simulator.ReadXRegister(29);                      \
-    saved_xregs[11] = simulator.ReadXRegister(30);                      \
-    saved_xregs[12] = simulator.ReadXRegister(31);                      \
-                                                                        \
-    uint64_t saved_dregs[8];                                            \
-    saved_dregs[0] = simulator.ReadDRegisterBits(8);                    \
-    saved_dregs[1] = simulator.ReadDRegisterBits(9);                    \
-    saved_dregs[2] = simulator.ReadDRegisterBits(10);                   \
-    saved_dregs[3] = simulator.ReadDRegisterBits(11);                   \
-    saved_dregs[4] = simulator.ReadDRegisterBits(12);                   \
-    saved_dregs[5] = simulator.ReadDRegisterBits(13);                   \
-    saved_dregs[6] = simulator.ReadDRegisterBits(14);                   \
-    saved_dregs[7] = simulator.ReadDRegisterBits(15);                   \
-                                                                        \
-    simulator.WriteXRegister(15, masm.GetLabelAddress<uint64_t>(&Func));\
-    simulator.RunFrom(masm.GetLabelAddress<Instruction*>(&test));       \
-                                                                        \
-    VIXL_CHECK(saved_xregs[0] == simulator.ReadXRegister(19));          \
-    VIXL_CHECK(saved_xregs[1] == simulator.ReadXRegister(20));          \
-    VIXL_CHECK(saved_xregs[2] == simulator.ReadXRegister(21));          \
-    VIXL_CHECK(saved_xregs[3] == simulator.ReadXRegister(22));          \
-    VIXL_CHECK(saved_xregs[4] == simulator.ReadXRegister(23));          \
-    VIXL_CHECK(saved_xregs[5] == simulator.ReadXRegister(24));          \
-    VIXL_CHECK(saved_xregs[6] == simulator.ReadXRegister(25));          \
-    VIXL_CHECK(saved_xregs[7] == simulator.ReadXRegister(26));          \
-    VIXL_CHECK(saved_xregs[8] == simulator.ReadXRegister(27));          \
-    VIXL_CHECK(saved_xregs[9] == simulator.ReadXRegister(28));          \
-    VIXL_CHECK(saved_xregs[10] == simulator.ReadXRegister(29));         \
-    VIXL_CHECK(saved_xregs[11] == simulator.ReadXRegister(30));         \
-    VIXL_CHECK(saved_xregs[12] == simulator.ReadXRegister(31));         \
-                                                                        \
-    VIXL_CHECK(saved_dregs[0] == simulator.ReadDRegisterBits(8));       \
-    VIXL_CHECK(saved_dregs[1] == simulator.ReadDRegisterBits(9));       \
-    VIXL_CHECK(saved_dregs[2] == simulator.ReadDRegisterBits(10));      \
-    VIXL_CHECK(saved_dregs[3] == simulator.ReadDRegisterBits(11));      \
-    VIXL_CHECK(saved_dregs[4] == simulator.ReadDRegisterBits(12));      \
-    VIXL_CHECK(saved_dregs[5] == simulator.ReadDRegisterBits(13));      \
-    VIXL_CHECK(saved_dregs[6] == simulator.ReadDRegisterBits(14));      \
-    VIXL_CHECK(saved_dregs[7] == simulator.ReadDRegisterBits(15));      \
-                                                                        \
+#define TEST_FUNCTION(Func)                                              \
+  do {                                                                   \
+    int64_t saved_xregs[13];                                             \
+    saved_xregs[0] = simulator.ReadXRegister(19);                        \
+    saved_xregs[1] = simulator.ReadXRegister(20);                        \
+    saved_xregs[2] = simulator.ReadXRegister(21);                        \
+    saved_xregs[3] = simulator.ReadXRegister(22);                        \
+    saved_xregs[4] = simulator.ReadXRegister(23);                        \
+    saved_xregs[5] = simulator.ReadXRegister(24);                        \
+    saved_xregs[6] = simulator.ReadXRegister(25);                        \
+    saved_xregs[7] = simulator.ReadXRegister(26);                        \
+    saved_xregs[8] = simulator.ReadXRegister(27);                        \
+    saved_xregs[9] = simulator.ReadXRegister(28);                        \
+    saved_xregs[10] = simulator.ReadXRegister(29);                       \
+    saved_xregs[11] = simulator.ReadXRegister(30);                       \
+    saved_xregs[12] = simulator.ReadXRegister(31);                       \
+                                                                         \
+    uint64_t saved_dregs[8];                                             \
+    saved_dregs[0] = simulator.ReadDRegisterBits(8);                     \
+    saved_dregs[1] = simulator.ReadDRegisterBits(9);                     \
+    saved_dregs[2] = simulator.ReadDRegisterBits(10);                    \
+    saved_dregs[3] = simulator.ReadDRegisterBits(11);                    \
+    saved_dregs[4] = simulator.ReadDRegisterBits(12);                    \
+    saved_dregs[5] = simulator.ReadDRegisterBits(13);                    \
+    saved_dregs[6] = simulator.ReadDRegisterBits(14);                    \
+    saved_dregs[7] = simulator.ReadDRegisterBits(15);                    \
+                                                                         \
+    simulator.WriteXRegister(15, masm.GetLabelAddress<uint64_t>(&Func)); \
+    simulator.RunFrom(masm.GetLabelAddress<Instruction*>(&test));        \
+                                                                         \
+    VIXL_CHECK(saved_xregs[0] == simulator.ReadXRegister(19));           \
+    VIXL_CHECK(saved_xregs[1] == simulator.ReadXRegister(20));           \
+    VIXL_CHECK(saved_xregs[2] == simulator.ReadXRegister(21));           \
+    VIXL_CHECK(saved_xregs[3] == simulator.ReadXRegister(22));           \
+    VIXL_CHECK(saved_xregs[4] == simulator.ReadXRegister(23));           \
+    VIXL_CHECK(saved_xregs[5] == simulator.ReadXRegister(24));           \
+    VIXL_CHECK(saved_xregs[6] == simulator.ReadXRegister(25));           \
+    VIXL_CHECK(saved_xregs[7] == simulator.ReadXRegister(26));           \
+    VIXL_CHECK(saved_xregs[8] == simulator.ReadXRegister(27));           \
+    VIXL_CHECK(saved_xregs[9] == simulator.ReadXRegister(28));           \
+    VIXL_CHECK(saved_xregs[10] == simulator.ReadXRegister(29));          \
+    VIXL_CHECK(saved_xregs[11] == simulator.ReadXRegister(30));          \
+    VIXL_CHECK(saved_xregs[12] == simulator.ReadXRegister(31));          \
+                                                                         \
+    VIXL_CHECK(saved_dregs[0] == simulator.ReadDRegisterBits(8));        \
+    VIXL_CHECK(saved_dregs[1] == simulator.ReadDRegisterBits(9));        \
+    VIXL_CHECK(saved_dregs[2] == simulator.ReadDRegisterBits(10));       \
+    VIXL_CHECK(saved_dregs[3] == simulator.ReadDRegisterBits(11));       \
+    VIXL_CHECK(saved_dregs[4] == simulator.ReadDRegisterBits(12));       \
+    VIXL_CHECK(saved_dregs[5] == simulator.ReadDRegisterBits(13));       \
+    VIXL_CHECK(saved_dregs[6] == simulator.ReadDRegisterBits(14));       \
+    VIXL_CHECK(saved_dregs[7] == simulator.ReadDRegisterBits(15));       \
+                                                                         \
   } while (0)
 
-#define START()                                             \
-  MacroAssembler masm;                                      \
-  Decoder decoder;                                          \
-  Debugger simulator(&decoder);                             \
-  simulator.SetColouredTrace(Test::coloured_trace());       \
-  PrintDisassembler* pdis = NULL;                           \
-  Instrument* inst = NULL;                                  \
-  if (Test::trace_sim()) {                                  \
-    pdis = new PrintDisassembler(stdout);                   \
-    decoder.PrependVisitor(pdis);                           \
-  }                                                         \
-  if (Test::instruction_stats()) {                          \
-    inst = new Instrument("vixl_stats.csv", 10);            \
-    inst->Enable();                                         \
-    decoder.AppendVisitor(inst);                            \
-  }                                                         \
-  RegisterDump regs;                                        \
-                                                            \
-  Label test;                                               \
-  masm.Bind(&test);                                         \
-  GenerateTestWrapper(&masm, &regs);                        \
+#define START()                                       \
+  MacroAssembler masm;                                \
+  Decoder decoder;                                    \
+  Debugger simulator(&decoder);                       \
+  simulator.SetColouredTrace(Test::coloured_trace()); \
+  PrintDisassembler* pdis = NULL;                     \
+  Instrument* inst = NULL;                            \
+  if (Test::trace_sim()) {                            \
+    pdis = new PrintDisassembler(stdout);             \
+    decoder.PrependVisitor(pdis);                     \
+  }                                                   \
+  if (Test::instruction_stats()) {                    \
+    inst = new Instrument("vixl_stats.csv", 10);      \
+    inst->Enable();                                   \
+    decoder.AppendVisitor(inst);                      \
+  }                                                   \
+  RegisterDump regs;                                  \
+                                                      \
+  Label test;                                         \
+  masm.Bind(&test);                                   \
+  GenerateTestWrapper(&masm, &regs);                  \
   masm.FinalizeCode()
 
 
-
-#define FACTORIAL_DOTEST(N)                                             \
-  do {                                                                  \
-    simulator.ResetState();                                             \
-    simulator.WriteXRegister(0, N);                                     \
-    TEST_FUNCTION(factorial);                                           \
-    VIXL_CHECK(static_cast<uint64_t>(regs.xreg(0)) == FactorialC(N));   \
+#define FACTORIAL_DOTEST(N)                                           \
+  do {                                                                \
+    simulator.ResetState();                                           \
+    simulator.WriteXRegister(0, N);                                   \
+    TEST_FUNCTION(factorial);                                         \
+    VIXL_CHECK(static_cast<uint64_t>(regs.xreg(0)) == FactorialC(N)); \
   } while (0)
 
 TEST(factorial) {
@@ -217,12 +212,12 @@
 }
 
 
-#define FACTORIAL_REC_DOTEST(N)                                         \
-  do {                                                                  \
-    simulator.ResetState();                                             \
-    simulator.WriteXRegister(0, N);                                     \
-    TEST_FUNCTION(factorial_rec);                                       \
-    VIXL_CHECK(static_cast<uint64_t>(regs.xreg(0)) == FactorialC(N));   \
+#define FACTORIAL_REC_DOTEST(N)                                       \
+  do {                                                                \
+    simulator.ResetState();                                           \
+    simulator.WriteXRegister(0, N);                                   \
+    TEST_FUNCTION(factorial_rec);                                     \
+    VIXL_CHECK(static_cast<uint64_t>(regs.xreg(0)) == FactorialC(N)); \
   } while (0)
 
 TEST(factorial_rec) {
@@ -258,15 +253,39 @@
 
     // Fill the two input matrices with some 32 bit floating point values.
 
-    mat1[0] =   1.0f; mat1[4] =   2.0f; mat1[ 8] =   3.0f; mat1[12] =   4.0f;
-    mat1[1] = 52.03f; mat1[5] = 12.24f; mat1[ 9] = 53.56f; mat1[13] = 22.22f;
-    mat1[2] =  4.43f; mat1[6] =  5.00f; mat1[10] =  7.00f; mat1[14] =  3.11f;
-    mat1[3] = 43.47f; mat1[7] = 10.97f; mat1[11] = 37.78f; mat1[15] = 90.91f;
+    mat1[0] = 1.0f;
+    mat1[4] = 2.0f;
+    mat1[8] = 3.0f;
+    mat1[12] = 4.0f;
+    mat1[1] = 52.03f;
+    mat1[5] = 12.24f;
+    mat1[9] = 53.56f;
+    mat1[13] = 22.22f;
+    mat1[2] = 4.43f;
+    mat1[6] = 5.00f;
+    mat1[10] = 7.00f;
+    mat1[14] = 3.11f;
+    mat1[3] = 43.47f;
+    mat1[7] = 10.97f;
+    mat1[11] = 37.78f;
+    mat1[15] = 90.91f;
 
-    mat2[0] =   1.0f; mat2[4] = 11.24f; mat2[ 8] = 21.00f; mat2[12] = 21.31f;
-    mat2[1] =   2.0f; mat2[5] =  2.24f; mat2[ 9] =  8.56f; mat2[13] = 52.03f;
-    mat2[2] =   3.0f; mat2[6] = 51.00f; mat2[10] = 21.00f; mat2[14] = 33.11f;
-    mat2[3] =   4.0f; mat2[7] =  0.00f; mat2[11] = 84.00f; mat2[15] =  1.97f;
+    mat2[0] = 1.0f;
+    mat2[4] = 11.24f;
+    mat2[8] = 21.00f;
+    mat2[12] = 21.31f;
+    mat2[1] = 2.0f;
+    mat2[5] = 2.24f;
+    mat2[9] = 8.56f;
+    mat2[13] = 52.03f;
+    mat2[2] = 3.0f;
+    mat2[6] = 51.00f;
+    mat2[10] = 21.00f;
+    mat2[14] = 33.11f;
+    mat2[3] = 4.0f;
+    mat2[7] = 0.00f;
+    mat2[11] = 84.00f;
+    mat2[15] = 1.97f;
 
     MatrixMultiplyC(expected, mat1, mat2);
 
@@ -294,8 +313,8 @@
 
   // Initialize input data for the example function.
   uint8_t A[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 200};
-  uint8_t B[] = {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, \
-                 30, 31, 50};
+  uint8_t B[] =
+      {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 50};
   uint8_t D[ARRAY_SIZE(A)];
   uintptr_t A_addr = reinterpret_cast<uintptr_t>(A);
   uintptr_t B_addr = reinterpret_cast<uintptr_t>(B);
@@ -322,14 +341,14 @@
   }
 }
 
-#define ADD3_DOUBLE_DOTEST(A, B, C)                                     \
-  do {                                                                  \
-    simulator.ResetState();                                             \
-    simulator.WriteDRegister(0, A);                                     \
-    simulator.WriteDRegister(1, B);                                     \
-    simulator.WriteDRegister(2, C);                                     \
-    TEST_FUNCTION(add3_double);                                         \
-    VIXL_CHECK(regs.dreg(0) == Add3DoubleC(A, B, C));                   \
+#define ADD3_DOUBLE_DOTEST(A, B, C)                   \
+  do {                                                \
+    simulator.ResetState();                           \
+    simulator.WriteDRegister(0, A);                   \
+    simulator.WriteDRegister(1, B);                   \
+    simulator.WriteDRegister(2, C);                   \
+    TEST_FUNCTION(add3_double);                       \
+    VIXL_CHECK(regs.dreg(0) == Add3DoubleC(A, B, C)); \
   } while (0)
 
 TEST(add3_double) {
@@ -347,15 +366,15 @@
 }
 
 
-#define ADD4_DOUBLE_DOTEST(A, B, C, D)                                  \
-  do {                                                                  \
-    simulator.ResetState();                                             \
-    simulator.WriteXRegister(0, A);                                     \
-    simulator.WriteDRegister(0, B);                                     \
-    simulator.WriteXRegister(1, C);                                     \
-    simulator.WriteDRegister(1, D);                                     \
-    TEST_FUNCTION(add4_double);                                         \
-    VIXL_CHECK(regs.dreg(0) == Add4DoubleC(A, B, C, D));                \
+#define ADD4_DOUBLE_DOTEST(A, B, C, D)                   \
+  do {                                                   \
+    simulator.ResetState();                              \
+    simulator.WriteXRegister(0, A);                      \
+    simulator.WriteDRegister(0, B);                      \
+    simulator.WriteXRegister(1, C);                      \
+    simulator.WriteDRegister(1, D);                      \
+    TEST_FUNCTION(add4_double);                          \
+    VIXL_CHECK(regs.dreg(0) == Add4DoubleC(A, B, C, D)); \
   } while (0)
 
 TEST(add4_double) {
@@ -374,14 +393,14 @@
 }
 
 
-#define SUM_ARRAY_DOTEST(Array)                                         \
-  do {                                                                  \
-    simulator.ResetState();                                             \
-    uintptr_t addr = reinterpret_cast<uintptr_t>(Array);                \
-    simulator.WriteXRegister(0, addr);                                  \
-    simulator.WriteXRegister(1, ARRAY_SIZE(Array));                     \
-    TEST_FUNCTION(sum_array);                                           \
-    VIXL_CHECK(regs.xreg(0) == SumArrayC(Array, ARRAY_SIZE(Array)));    \
+#define SUM_ARRAY_DOTEST(Array)                                      \
+  do {                                                               \
+    simulator.ResetState();                                          \
+    uintptr_t addr = reinterpret_cast<uintptr_t>(Array);             \
+    simulator.WriteXRegister(0, addr);                               \
+    simulator.WriteXRegister(1, ARRAY_SIZE(Array));                  \
+    TEST_FUNCTION(sum_array);                                        \
+    VIXL_CHECK(regs.xreg(0) == SumArrayC(Array, ARRAY_SIZE(Array))); \
   } while (0)
 
 TEST(sum_array) {
@@ -392,25 +411,24 @@
   GenerateSumArray(&masm);
   masm.FinalizeCode();
 
-  uint8_t data1[] = { 4, 9, 13, 3, 2, 6, 5 };
+  uint8_t data1[] = {4, 9, 13, 3, 2, 6, 5};
   SUM_ARRAY_DOTEST(data1);
 
-  uint8_t data2[] = { 42 };
+  uint8_t data2[] = {42};
   SUM_ARRAY_DOTEST(data2);
 
   uint8_t data3[1000];
-  for (unsigned int i = 0; i < ARRAY_SIZE(data3); ++i)
-    data3[i] = 255;
+  for (unsigned int i = 0; i < ARRAY_SIZE(data3); ++i) data3[i] = 255;
   SUM_ARRAY_DOTEST(data3);
 }
 
 
-#define ABS_DOTEST(X)                                                   \
-  do {                                                                  \
-    simulator.ResetState();                                             \
-    simulator.WriteXRegister(0, X);                                     \
-    TEST_FUNCTION(func_abs);                                            \
-    VIXL_CHECK(regs.xreg(0) == abs(X));                                 \
+#define ABS_DOTEST(X)                   \
+  do {                                  \
+    simulator.ResetState();             \
+    simulator.WriteXRegister(0, X);     \
+    TEST_FUNCTION(func_abs);            \
+    VIXL_CHECK(regs.xreg(0) == abs(X)); \
   } while (0)
 
 TEST(abs) {
@@ -436,7 +454,7 @@
   GenerateCrc32(&masm);
   masm.FinalizeCode();
 
-  const char *msg = "Hello World!";
+  const char* msg = "Hello World!";
   uintptr_t msg_addr = reinterpret_cast<uintptr_t>(msg);
   size_t msg_size = strlen(msg);
   int64_t chksum = INT64_C(0xe3d6e35c);
@@ -490,14 +508,14 @@
 }
 
 
-#define CHECKBOUNDS_DOTEST(Value, Low, High)                            \
-  do {                                                                  \
-    simulator.ResetState();                                             \
-    simulator.WriteXRegister(0, Value);                                 \
-    simulator.WriteXRegister(1, Low);                                   \
-    simulator.WriteXRegister(2, High);                                  \
-    TEST_FUNCTION(check_bounds);                                        \
-    VIXL_CHECK(regs.xreg(0) == ((Low <= Value) && (Value <= High)));    \
+#define CHECKBOUNDS_DOTEST(Value, Low, High)                         \
+  do {                                                               \
+    simulator.ResetState();                                          \
+    simulator.WriteXRegister(0, Value);                              \
+    simulator.WriteXRegister(1, Low);                                \
+    simulator.WriteXRegister(2, High);                               \
+    TEST_FUNCTION(check_bounds);                                     \
+    VIXL_CHECK(regs.xreg(0) == ((Low <= Value) && (Value <= High))); \
   } while (0)
 
 TEST(check_bounds) {
@@ -520,12 +538,12 @@
 }
 
 
-#define GETTING_STARTED_DOTEST(Value)                           \
-  do {                                                          \
-    simulator.ResetState();                                     \
-    simulator.WriteXRegister(0, Value);                         \
-    TEST_FUNCTION(demo_function);                               \
-    VIXL_CHECK(regs.xreg(0) == (Value & 0x1122334455667788));   \
+#define GETTING_STARTED_DOTEST(Value)                         \
+  do {                                                        \
+    simulator.ResetState();                                   \
+    simulator.WriteXRegister(0, Value);                       \
+    TEST_FUNCTION(demo_function);                             \
+    VIXL_CHECK(regs.xreg(0) == (Value & 0x1122334455667788)); \
   } while (0)
 
 TEST(getting_started) {
@@ -566,8 +584,8 @@
 
 TEST(literal_example) {
   VIXL_ASSERT(LiteralExample(1, 2) == 3);
-  VIXL_ASSERT(
-      LiteralExample(INT64_C(0x100000000), 0x1) == INT64_C(0x100000001));
+  VIXL_ASSERT(LiteralExample(INT64_C(0x100000000), 0x1) ==
+              INT64_C(0x100000001));
 }
 
 
diff --git a/test/aarch64/test-abi.cc b/test/aarch64/test-abi.cc
index aa7e65b..e823c7e 100644
--- a/test/aarch64/test-abi.cc
+++ b/test/aarch64/test-abi.cc
@@ -35,7 +35,7 @@
 
 #ifdef VIXL_HAS_ABI_SUPPORT
 
-#define TEST(name)  TEST_(AARCH64_ABI_##name)
+#define TEST(name) TEST_(AARCH64_ABI_##name)
 
 namespace vixl {
 namespace aarch64 {
@@ -51,7 +51,9 @@
   VIXL_CHECK(abi.GetReturnGenericOperand<char>().Equals(GenericOperand(w0)));
   VIXL_CHECK(abi.GetReturnGenericOperand<int8_t>().Equals(GenericOperand(w0)));
   VIXL_CHECK(abi.GetReturnGenericOperand<uint8_t>().Equals(GenericOperand(w0)));
-  VIXL_CHECK(abi.GetReturnGenericOperand<short>().Equals(GenericOperand(w0)));  // NOLINT(runtime/int)
+  VIXL_CHECK(
+      abi.GetReturnGenericOperand<short>().Equals(  // NOLINT(runtime/int)
+          GenericOperand(w0)));
   VIXL_CHECK(abi.GetReturnGenericOperand<int16_t>().Equals(GenericOperand(w0)));
   VIXL_CHECK(
       abi.GetReturnGenericOperand<uint16_t>().Equals(GenericOperand(w0)));
@@ -68,45 +70,46 @@
 
   GenericOperand found(NoReg);
   GenericOperand expected(NoReg);
-#define CHECK_NEXT_PARAMETER_REG(type, reg)       \
-    found = abi.GetNextParameterGenericOperand<type>(); \
-    expected = GenericOperand(reg);                     \
-    VIXL_CHECK(found.Equals(expected))
-  // Slots on the stack are always 8 bytes.
-#define CHECK_NEXT_PARAMETER_MEM(type, mem_op, size) \
-    found = abi.GetNextParameterGenericOperand<type>();    \
-    expected = GenericOperand(mem_op, size);               \
-    VIXL_CHECK(found.Equals(expected))
+#define CHECK_NEXT_PARAMETER_REG(type, reg)           \
+  found = abi.GetNextParameterGenericOperand<type>(); \
+  expected = GenericOperand(reg);                     \
+  VIXL_CHECK(found.Equals(expected))
+// Slots on the stack are always 8 bytes.
+#define CHECK_NEXT_PARAMETER_MEM(type, mem_op, size)  \
+  found = abi.GetNextParameterGenericOperand<type>(); \
+  expected = GenericOperand(mem_op, size);            \
+  VIXL_CHECK(found.Equals(expected))
 
   abi.Reset();
-  CHECK_NEXT_PARAMETER_REG(int,      w0);
-  CHECK_NEXT_PARAMETER_REG(char,     w1);
-  CHECK_NEXT_PARAMETER_REG(bool,     w2);
-  CHECK_NEXT_PARAMETER_REG(float,    s0);
-  CHECK_NEXT_PARAMETER_REG(double,   d1);
-  CHECK_NEXT_PARAMETER_REG(double,   d2);
-  CHECK_NEXT_PARAMETER_REG(float,    s3);
-  CHECK_NEXT_PARAMETER_REG(int64_t,  x3);
+  CHECK_NEXT_PARAMETER_REG(int, w0);
+  CHECK_NEXT_PARAMETER_REG(char, w1);
+  CHECK_NEXT_PARAMETER_REG(bool, w2);
+  CHECK_NEXT_PARAMETER_REG(float, s0);
+  CHECK_NEXT_PARAMETER_REG(double, d1);
+  CHECK_NEXT_PARAMETER_REG(double, d2);
+  CHECK_NEXT_PARAMETER_REG(float, s3);
+  CHECK_NEXT_PARAMETER_REG(int64_t, x3);
   CHECK_NEXT_PARAMETER_REG(uint64_t, x4);
-  CHECK_NEXT_PARAMETER_REG(void*,    x5);
+  CHECK_NEXT_PARAMETER_REG(void*, x5);
   CHECK_NEXT_PARAMETER_REG(uint32_t, w6);
   typedef short my_type;  // NOLINT(runtime/int)
-  CHECK_NEXT_PARAMETER_REG(my_type,  w7);
-  CHECK_NEXT_PARAMETER_MEM(int,      MemOperand(sp, 0), kWRegSizeInBytes);
-  CHECK_NEXT_PARAMETER_MEM(int,      MemOperand(sp, 8), kWRegSizeInBytes);
-  CHECK_NEXT_PARAMETER_REG(double,   d4);
-  CHECK_NEXT_PARAMETER_REG(double,   d5);
-  CHECK_NEXT_PARAMETER_REG(double,   d6);
-  CHECK_NEXT_PARAMETER_REG(double,   d7);
-  CHECK_NEXT_PARAMETER_MEM(double,   MemOperand(sp, 16), kDRegSizeInBytes);
-  CHECK_NEXT_PARAMETER_MEM(bool,     MemOperand(sp, 24), kWRegSizeInBytes);
-  CHECK_NEXT_PARAMETER_MEM(short,    MemOperand(sp, 32), kWRegSizeInBytes);  // NOLINT(runtime/int)
-  CHECK_NEXT_PARAMETER_MEM(float,    MemOperand(sp, 40), kSRegSizeInBytes);
-  CHECK_NEXT_PARAMETER_MEM(float,    MemOperand(sp, 48), kSRegSizeInBytes);
+  CHECK_NEXT_PARAMETER_REG(my_type, w7);
+  CHECK_NEXT_PARAMETER_MEM(int, MemOperand(sp, 0), kWRegSizeInBytes);
+  CHECK_NEXT_PARAMETER_MEM(int, MemOperand(sp, 8), kWRegSizeInBytes);
+  CHECK_NEXT_PARAMETER_REG(double, d4);
+  CHECK_NEXT_PARAMETER_REG(double, d5);
+  CHECK_NEXT_PARAMETER_REG(double, d6);
+  CHECK_NEXT_PARAMETER_REG(double, d7);
+  CHECK_NEXT_PARAMETER_MEM(double, MemOperand(sp, 16), kDRegSizeInBytes);
+  CHECK_NEXT_PARAMETER_MEM(bool, MemOperand(sp, 24), kWRegSizeInBytes);
+  CHECK_NEXT_PARAMETER_MEM(short,  // NOLINT(runtime/int)
+                           MemOperand(sp, 32),
+                           kWRegSizeInBytes);
+  CHECK_NEXT_PARAMETER_MEM(float, MemOperand(sp, 40), kSRegSizeInBytes);
+  CHECK_NEXT_PARAMETER_MEM(float, MemOperand(sp, 48), kSRegSizeInBytes);
   VIXL_CHECK(abi.GetStackSpaceRequired() == 56);
 }
-
-
-}}  // namespace vixl::aarch64
+}
+}  // namespace vixl::aarch64
 
 #endif  // VIXL_ABI_SUPORT
diff --git a/test/aarch64/test-assembler-aarch64.cc b/test/aarch64/test-assembler-aarch64.cc
index 78f0643..50e7800 100644
--- a/test/aarch64/test-assembler-aarch64.cc
+++ b/test/aarch64/test-assembler-aarch64.cc
@@ -94,132 +94,124 @@
 
 
 #define __ masm.
-#define TEST(name)  TEST_(AARCH64_ASM_##name)
+#define TEST(name) TEST_(AARCH64_ASM_##name)
 
 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
 // Run tests with the simulator.
 
-#define SETUP()                                                                \
-  MacroAssembler masm;                                                         \
+#define SETUP()        \
+  MacroAssembler masm; \
   SETUP_COMMON()
 
-#define SETUP_CUSTOM(size, pic)                                                \
-  byte* buf = new byte[size + CodeBuffer::kDefaultCapacity];                   \
-  MacroAssembler masm(buf, size + CodeBuffer::kDefaultCapacity, pic);          \
+#define SETUP_CUSTOM(size, pic)                                       \
+  byte* buf = new byte[size + CodeBuffer::kDefaultCapacity];          \
+  MacroAssembler masm(buf, size + CodeBuffer::kDefaultCapacity, pic); \
   SETUP_COMMON()
 
-#define SETUP_COMMON()                                                         \
-  masm.SetGenerateSimulatorCode(true);                                         \
-  Decoder simulator_decoder;                                                   \
-  Simulator* simulator =                                                       \
-      Test::run_debugger() ? new Debugger(&simulator_decoder)                  \
-                           : new Simulator(&simulator_decoder);                \
-  simulator->SetColouredTrace(Test::coloured_trace());                         \
-  simulator->SetInstructionStats(Test::instruction_stats());                   \
-  Disassembler disasm;                                                         \
-  Decoder disassembler_decoder;                                                \
-  disassembler_decoder.AppendVisitor(&disasm);                                 \
+#define SETUP_COMMON()                                            \
+  masm.SetGenerateSimulatorCode(true);                            \
+  Decoder simulator_decoder;                                      \
+  Simulator* simulator = Test::run_debugger()                     \
+                             ? new Debugger(&simulator_decoder)   \
+                             : new Simulator(&simulator_decoder); \
+  simulator->SetColouredTrace(Test::coloured_trace());            \
+  simulator->SetInstructionStats(Test::instruction_stats());      \
+  Disassembler disasm;                                            \
+  Decoder disassembler_decoder;                                   \
+  disassembler_decoder.AppendVisitor(&disasm);                    \
   RegisterDump core
 
-// This is a convenience macro to avoid creating a scope for every assembler
-// function called. It will still assert the buffer hasn't been exceeded.
-#define ALLOW_ASM()                                                            \
-  CodeBufferCheckScope guard(&masm, masm.GetBuffer()->GetCapacity())
-
-#define START()                                                                \
-  masm.Reset();                                                                \
-  simulator->ResetState();                                                     \
-  __ PushCalleeSavedRegisters();                                               \
-  {                                                                            \
-    int trace_parameters = 0;                                                  \
-    if (Test::trace_reg()) trace_parameters |= LOG_STATE;                      \
-    if (Test::trace_write()) trace_parameters |= LOG_WRITE;                    \
-    if (Test::trace_sim()) trace_parameters |= LOG_DISASM;                     \
-    if (Test::trace_branch()) trace_parameters |= LOG_BRANCH;                  \
-    if (trace_parameters != 0) {                                               \
-      __ Trace(static_cast<TraceParameters>(trace_parameters), TRACE_ENABLE);  \
-    }                                                                          \
-  }                                                                            \
-  if (Test::instruction_stats()) {                                             \
-    __ EnableInstrumentation();                                                \
+#define START()                                                               \
+  masm.Reset();                                                               \
+  simulator->ResetState();                                                    \
+  __ PushCalleeSavedRegisters();                                              \
+  {                                                                           \
+    int trace_parameters = 0;                                                 \
+    if (Test::trace_reg()) trace_parameters |= LOG_STATE;                     \
+    if (Test::trace_write()) trace_parameters |= LOG_WRITE;                   \
+    if (Test::trace_sim()) trace_parameters |= LOG_DISASM;                    \
+    if (Test::trace_branch()) trace_parameters |= LOG_BRANCH;                 \
+    if (trace_parameters != 0) {                                              \
+      __ Trace(static_cast<TraceParameters>(trace_parameters), TRACE_ENABLE); \
+    }                                                                         \
+  }                                                                           \
+  if (Test::instruction_stats()) {                                            \
+    __ EnableInstrumentation();                                               \
   }
 
-#define END()                                                                  \
-  if (Test::instruction_stats()) {                                             \
-    __ DisableInstrumentation();                                               \
-  }                                                                            \
-  __ Trace(LOG_ALL, TRACE_DISABLE);                                            \
-  core.Dump(&masm);                                                            \
-  __ PopCalleeSavedRegisters();                                                \
-  __ Ret();                                                                    \
+#define END()                       \
+  if (Test::instruction_stats()) {  \
+    __ DisableInstrumentation();    \
+  }                                 \
+  __ Trace(LOG_ALL, TRACE_DISABLE); \
+  core.Dump(&masm);                 \
+  __ PopCalleeSavedRegisters();     \
+  __ Ret();                         \
   masm.FinalizeCode()
 
-#define RUN()                                                                  \
-  DISASSEMBLE();                                                               \
+#define RUN()    \
+  DISASSEMBLE(); \
   simulator->RunFrom(masm.GetBuffer()->GetStartAddress<Instruction*>())
 
 #define RUN_CUSTOM() RUN()
 
 #define TEARDOWN() TEARDOWN_COMMON()
 
-#define TEARDOWN_CUSTOM()                                                      \
-  delete[] buf;                                                                \
+#define TEARDOWN_CUSTOM() \
+  delete[] buf;           \
   TEARDOWN_COMMON()
 
-#define TEARDOWN_COMMON()                                                      \
-  delete simulator;
+#define TEARDOWN_COMMON() delete simulator;
 
 #else  // ifdef VIXL_INCLUDE_SIMULATOR_AARCH64.
 // Run the test on real hardware or models.
-#define SETUP()                                                                \
-  MacroAssembler masm;                                                         \
+#define SETUP()        \
+  MacroAssembler masm; \
   SETUP_COMMON()
 
-#define SETUP_CUSTOM(size, pic)                                                \
-  byte *buffer = reinterpret_cast<byte*>(                                      \
-      mmap(NULL, size + CodeBuffer::kDefaultCapacity,                          \
-           PROT_READ | PROT_WRITE,                                             \
-           MAP_PRIVATE | MAP_ANONYMOUS, -1, 0));                               \
-  size_t buffer_size = size + CodeBuffer::kDefaultCapacity;                    \
-  MacroAssembler masm(buffer, buffer_size, pic);                               \
+#define SETUP_CUSTOM(size, pic)                                         \
+  byte* buffer =                                                        \
+      reinterpret_cast<byte*>(mmap(NULL,                                \
+                                   size + CodeBuffer::kDefaultCapacity, \
+                                   PROT_READ | PROT_WRITE,              \
+                                   MAP_PRIVATE | MAP_ANONYMOUS,         \
+                                   -1,                                  \
+                                   0));                                 \
+  size_t buffer_size = size + CodeBuffer::kDefaultCapacity;             \
+  MacroAssembler masm(buffer, buffer_size, pic);                        \
   SETUP_COMMON()
 
-#define SETUP_COMMON()                                                         \
-  Disassembler disasm;                                                         \
-  Decoder disassembler_decoder;                                                \
-  disassembler_decoder.AppendVisitor(&disasm);                                 \
-  masm.SetGenerateSimulatorCode(false);                                        \
-  RegisterDump core;                                                           \
+#define SETUP_COMMON()                         \
+  Disassembler disasm;                         \
+  Decoder disassembler_decoder;                \
+  disassembler_decoder.AppendVisitor(&disasm); \
+  masm.SetGenerateSimulatorCode(false);        \
+  RegisterDump core;                           \
   CPU::SetUp()
 
-// This is a convenience macro to avoid creating a scope for every assembler
-// function called. It will still assert the buffer hasn't been exceeded.
-#define ALLOW_ASM()                                                            \
-  CodeBufferCheckScope guard(&masm, masm.GetBuffer()->GetCapacity())
-
-#define START()                                                                \
-  masm.Reset();                                                                \
+#define START() \
+  masm.Reset(); \
   __ PushCalleeSavedRegisters()
 
-#define END()                                                                  \
-  core.Dump(&masm);                                                            \
-  __ PopCalleeSavedRegisters();                                                \
-  __ Ret();                                                                    \
+#define END()                   \
+  core.Dump(&masm);             \
+  __ PopCalleeSavedRegisters(); \
+  __ Ret();                     \
   masm.FinalizeCode()
 
 // Execute the generated code from the memory area.
-#define RUN()                                                                  \
-  DISASSEMBLE();                                                               \
-  masm.GetBuffer()->SetExecutable();                                           \
-    ExecuteMemory(masm.GetBuffer()->GetStartAddress<byte*>(),                  \
-                  masm.GetSizeOfCodeGenerated());                              \
+#define RUN()                                               \
+  DISASSEMBLE();                                            \
+  masm.GetBuffer()->SetExecutable();                        \
+  ExecuteMemory(masm.GetBuffer()->GetStartAddress<byte*>(), \
+                masm.GetSizeOfCodeGenerated());             \
   masm.GetBuffer()->SetWritable()
 
 // The generated code was written directly into `buffer`, execute it directly.
-#define RUN_CUSTOM()                                                           \
-  DISASSEMBLE();                                                               \
-  mprotect(buffer, buffer_size, PROT_READ | PROT_EXEC);                        \
-  ExecuteMemory(buffer, buffer_size);                                          \
+#define RUN_CUSTOM()                                    \
+  DISASSEMBLE();                                        \
+  mprotect(buffer, buffer_size, PROT_READ | PROT_EXEC); \
+  ExecuteMemory(buffer, buffer_size);                   \
   mprotect(buffer, buffer_size, PROT_READ | PROT_WRITE)
 
 #define TEARDOWN()
@@ -228,42 +220,42 @@
 
 #endif  // ifdef VIXL_INCLUDE_SIMULATOR_AARCH64.
 
-#define DISASSEMBLE() \
-  if (Test::disassemble()) {                                                   \
-    Instruction* instruction =                                                 \
-        masm.GetBuffer()->GetStartAddress<Instruction*>();                     \
-    Instruction* end = masm.GetBuffer()->GetOffsetAddress<Instruction*>(       \
-        masm.GetSizeOfCodeGenerated());                                        \
-    while (instruction != end) {                                               \
-      disassembler_decoder.Decode(instruction);                                \
-      uint32_t encoding = *reinterpret_cast<uint32_t*>(instruction);           \
-      printf("%08" PRIx32 "\t%s\n", encoding, disasm.GetOutput());             \
-      instruction += kInstructionSize;                                         \
-    }                                                                          \
+#define DISASSEMBLE()                                                    \
+  if (Test::disassemble()) {                                             \
+    Instruction* instruction =                                           \
+        masm.GetBuffer()->GetStartAddress<Instruction*>();               \
+    Instruction* end = masm.GetBuffer()->GetOffsetAddress<Instruction*>( \
+        masm.GetSizeOfCodeGenerated());                                  \
+    while (instruction != end) {                                         \
+      disassembler_decoder.Decode(instruction);                          \
+      uint32_t encoding = *reinterpret_cast<uint32_t*>(instruction);     \
+      printf("%08" PRIx32 "\t%s\n", encoding, disasm.GetOutput());       \
+      instruction += kInstructionSize;                                   \
+    }                                                                    \
   }
 
-#define ASSERT_EQUAL_NZCV(expected)                                            \
+#define ASSERT_EQUAL_NZCV(expected) \
   VIXL_CHECK(EqualNzcv(expected, core.flags_nzcv()))
 
-#define ASSERT_EQUAL_REGISTERS(expected)                                       \
+#define ASSERT_EQUAL_REGISTERS(expected) \
   VIXL_CHECK(EqualRegisters(&expected, &core))
 
-#define ASSERT_EQUAL_32(expected, result)                                      \
+#define ASSERT_EQUAL_32(expected, result) \
   VIXL_CHECK(Equal32(static_cast<uint32_t>(expected), &core, result))
 
-#define ASSERT_EQUAL_FP32(expected, result)                                    \
+#define ASSERT_EQUAL_FP32(expected, result) \
   VIXL_CHECK(EqualFP32(expected, &core, result))
 
-#define ASSERT_EQUAL_64(expected, result)                                      \
+#define ASSERT_EQUAL_64(expected, result) \
   VIXL_CHECK(Equal64(expected, &core, result))
 
-#define ASSERT_EQUAL_FP64(expected, result)                                    \
+#define ASSERT_EQUAL_FP64(expected, result) \
   VIXL_CHECK(EqualFP64(expected, &core, result))
 
-#define ASSERT_EQUAL_128(expected_h, expected_l, result)                       \
+#define ASSERT_EQUAL_128(expected_h, expected_l, result) \
   VIXL_CHECK(Equal128(expected_h, expected_l, &core, result))
 
-#define ASSERT_LITERAL_POOL_SIZE(expected)                                     \
+#define ASSERT_LITERAL_POOL_SIZE(expected) \
   VIXL_CHECK((expected + kInstructionSize) == (masm.GetLiteralPoolSize()))
 
 
@@ -463,7 +455,6 @@
 
 TEST(mov) {
   SETUP();
-  ALLOW_ASM();
 
   START();
   __ Mov(x0, 0xffffffffffffffff);
@@ -473,9 +464,12 @@
 
   __ Mov(x0, 0x0123456789abcdef);
 
-  __ movz(x1, UINT64_C(0xabcd) << 16);
-  __ movk(x2, UINT64_C(0xabcd) << 32);
-  __ movn(x3, UINT64_C(0xabcd) << 48);
+  {
+    ExactAssemblyScope scope(&masm, 3 * kInstructionSize);
+    __ movz(x1, UINT64_C(0xabcd) << 16);
+    __ movk(x2, UINT64_C(0xabcd) << 32);
+    __ movn(x3, UINT64_C(0xabcd) << 48);
+  }
 
   __ Mov(x4, 0x0123456789abcdef);
   __ Mov(x5, x4);
@@ -1698,17 +1692,17 @@
   START();
   __ Mov(x0, 0x1);
   __ Mov(x1, 0x0);
-  __ Mov(x22, lr);    // Save lr.
+  __ Mov(x22, lr);  // Save lr.
 
   __ B(&label_1);
   __ B(&label_1);
-  __ B(&label_1);     // Multiple branches to the same label.
+  __ B(&label_1);  // Multiple branches to the same label.
   __ Mov(x0, 0x0);
   __ Bind(&label_2);
-  __ B(&label_3);     // Forward branch.
+  __ B(&label_3);  // Forward branch.
   __ Mov(x0, 0x0);
   __ Bind(&label_1);
-  __ B(&label_2);     // Backward branch.
+  __ B(&label_2);  // Backward branch.
   __ Mov(x0, 0x0);
   __ Bind(&label_3);
   __ Bl(&label_4);
@@ -1774,10 +1768,10 @@
   Label label_1, label_2, label_3, label_4;
 
   START();
-  __ Mov(x0, 0x0);        // Set to non-zero to indicate failure.
-  __ Adr(x1, &label_3);   // Set to zero to indicate success.
+  __ Mov(x0, 0x0);       // Set to non-zero to indicate failure.
+  __ Adr(x1, &label_3);  // Set to zero to indicate success.
 
-  __ Adr(x2, &label_1);   // Multiple forward references to the same label.
+  __ Adr(x2, &label_1);  // Multiple forward references to the same label.
   __ Adr(x3, &label_1);
   __ Adr(x4, &label_1);
 
@@ -1789,17 +1783,17 @@
   __ Br(x2);  // label_1, label_3
 
   __ Bind(&label_3);
-  __ Adr(x2, &label_3);   // Self-reference (offset 0).
+  __ Adr(x2, &label_3);  // Self-reference (offset 0).
   __ Eor(x1, x1, Operand(x2));
-  __ Adr(x2, &label_4);   // Simple forward reference.
-  __ Br(x2);  // label_4
+  __ Adr(x2, &label_4);  // Simple forward reference.
+  __ Br(x2);             // label_4
 
   __ Bind(&label_1);
-  __ Adr(x2, &label_3);   // Multiple reverse references to the same label.
+  __ Adr(x2, &label_3);  // Multiple reverse references to the same label.
   __ Adr(x3, &label_3);
   __ Adr(x4, &label_3);
-  __ Adr(x5, &label_2);   // Simple reverse reference.
-  __ Br(x5);  // label_2
+  __ Adr(x5, &label_2);  // Simple reverse reference.
+  __ Br(x5);             // label_2
 
   __ Bind(&label_4);
   END();
@@ -2030,7 +2024,6 @@
 
 TEST(branch_cond) {
   SETUP();
-  ALLOW_ASM();
 
   Label done, wrong;
 
@@ -2096,13 +2089,19 @@
 
   // The MacroAssembler does not allow al as a branch condition.
   Label ok_5;
-  __ b(&ok_5, al);
+  {
+    ExactAssemblyScope scope(&masm, kInstructionSize);
+    __ b(&ok_5, al);
+  }
   __ Mov(x0, 0x0);
   __ Bind(&ok_5);
 
   // The MacroAssembler does not allow nv as a branch condition.
   Label ok_6;
-  __ b(&ok_6, nv);
+  {
+    ExactAssemblyScope scope(&masm, kInstructionSize);
+    __ b(&ok_6, nv);
+  }
   __ Mov(x0, 0x0);
   __ Bind(&ok_6);
 
@@ -2559,7 +2558,7 @@
   // This value won't fit in the immediate offset field of ldr/str instructions.
   int largeoffset = 0xabcdef;
 
-  int64_t data[3] = { 0x1122334455667788, 0, 0 };
+  int64_t data[3] = {0x1122334455667788, 0, 0};
   uint64_t base_addr = reinterpret_cast<uintptr_t>(data);
   uint64_t drifted_addr = base_addr - largeoffset;
 
@@ -2853,11 +2852,10 @@
 TEST(load_store_q) {
   SETUP();
 
-  uint8_t src[48] = {0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe,
-                     0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
-                     0x21, 0x43, 0x65, 0x87, 0xa9, 0xcb, 0xed, 0x0f,
-                     0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0,
-                     0x24, 0x46, 0x68, 0x8a, 0xac, 0xce, 0xe0, 0x02,
+  uint8_t src[48] = {0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0x01, 0x23,
+                     0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x21, 0x43, 0x65, 0x87,
+                     0xa9, 0xcb, 0xed, 0x0f, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc,
+                     0xde, 0xf0, 0x24, 0x46, 0x68, 0x8a, 0xac, 0xce, 0xe0, 0x02,
                      0x42, 0x64, 0x86, 0xa8, 0xca, 0xec, 0x0e, 0x20};
 
   uint64_t dst[6] = {0, 0, 0, 0, 0, 0};
@@ -3057,11 +3055,20 @@
   __ Ld1(v2.V8B(), MemOperand(x17, x23, PostIndex));
   __ Ld1(v3.V8B(), v4.V8B(), MemOperand(x18, 16, PostIndex));
   __ Ld1(v5.V4H(), v6.V4H(), v7.V4H(), MemOperand(x19, 24, PostIndex));
-  __ Ld1(v16.V2S(), v17.V2S(), v18.V2S(), v19.V2S(),
+  __ Ld1(v16.V2S(),
+         v17.V2S(),
+         v18.V2S(),
+         v19.V2S(),
          MemOperand(x20, 32, PostIndex));
-  __ Ld1(v30.V2S(), v31.V2S(), v0.V2S(), v1.V2S(),
+  __ Ld1(v30.V2S(),
+         v31.V2S(),
+         v0.V2S(),
+         v1.V2S(),
          MemOperand(x21, 32, PostIndex));
-  __ Ld1(v20.V1D(), v21.V1D(), v22.V1D(), v23.V1D(),
+  __ Ld1(v20.V1D(),
+         v21.V1D(),
+         v22.V1D(),
+         v23.V1D(),
          MemOperand(x22, 32, PostIndex));
   END();
 
@@ -3158,9 +3165,15 @@
   __ Ld1(v2.V16B(), MemOperand(x17, x22, PostIndex));
   __ Ld1(v3.V16B(), v4.V16B(), MemOperand(x18, 32, PostIndex));
   __ Ld1(v5.V8H(), v6.V8H(), v7.V8H(), MemOperand(x19, 48, PostIndex));
-  __ Ld1(v16.V4S(), v17.V4S(), v18.V4S(), v19.V4S(),
+  __ Ld1(v16.V4S(),
+         v17.V4S(),
+         v18.V4S(),
+         v19.V4S(),
          MemOperand(x20, 64, PostIndex));
-  __ Ld1(v30.V2D(), v31.V2D(), v0.V2D(), v1.V2D(),
+  __ Ld1(v30.V2D(),
+         v31.V2D(),
+         v0.V2D(),
+         v1.V2D(),
          MemOperand(x21, 64, PostIndex));
   END();
 
@@ -3408,7 +3421,6 @@
   ASSERT_EQUAL_128(0x232221201f1e1d1c, 0x131211100f0e0d0c, q0);
 
 
-
   ASSERT_EQUAL_64(src_base + 1, x17);
   ASSERT_EQUAL_64(src_base + 1 + 32, x18);
   ASSERT_EQUAL_64(src_base + 2 + 32, x19);
@@ -3582,8 +3594,6 @@
   ASSERT_EQUAL_128(0x0f0e0d0c0b0a0908, 0x1716151413121110, q15);
 
 
-
-
   ASSERT_EQUAL_64(src_base + 32, x17);
   ASSERT_EQUAL_64(src_base + 32, x18);
   ASSERT_EQUAL_64(src_base + 32, x19);
@@ -4233,15 +4243,30 @@
   __ Mov(x20, src_base + 3);
   __ Mov(x21, src_base + 4);
   __ Mov(x22, 1);
-  __ Ld4(v2.V8B(), v3.V8B(), v4.V8B(), v5.V8B(),
+  __ Ld4(v2.V8B(),
+         v3.V8B(),
+         v4.V8B(),
+         v5.V8B(),
          MemOperand(x17, x22, PostIndex));
-  __ Ld4(v6.V8B(), v7.V8B(), v8.V8B(), v9.V8B(),
+  __ Ld4(v6.V8B(),
+         v7.V8B(),
+         v8.V8B(),
+         v9.V8B(),
          MemOperand(x18, 32, PostIndex));
-  __ Ld4(v10.V4H(), v11.V4H(), v12.V4H(), v13.V4H(),
+  __ Ld4(v10.V4H(),
+         v11.V4H(),
+         v12.V4H(),
+         v13.V4H(),
          MemOperand(x19, 32, PostIndex));
-  __ Ld4(v14.V2S(), v15.V2S(), v16.V2S(), v17.V2S(),
+  __ Ld4(v14.V2S(),
+         v15.V2S(),
+         v16.V2S(),
+         v17.V2S(),
          MemOperand(x20, 32, PostIndex));
-  __ Ld4(v30.V2S(), v31.V2S(), v0.V2S(), v1.V2S(),
+  __ Ld4(v30.V2S(),
+         v31.V2S(),
+         v0.V2S(),
+         v1.V2S(),
          MemOperand(x21, 32, PostIndex));
   END();
 
@@ -4343,15 +4368,30 @@
   __ Mov(x21, src_base + 4);
   __ Mov(x22, 1);
 
-  __ Ld4(v2.V16B(), v3.V16B(), v4.V16B(), v5.V16B(),
+  __ Ld4(v2.V16B(),
+         v3.V16B(),
+         v4.V16B(),
+         v5.V16B(),
          MemOperand(x17, x22, PostIndex));
-  __ Ld4(v6.V16B(), v7.V16B(), v8.V16B(), v9.V16B(),
+  __ Ld4(v6.V16B(),
+         v7.V16B(),
+         v8.V16B(),
+         v9.V16B(),
          MemOperand(x18, 64, PostIndex));
-  __ Ld4(v10.V8H(), v11.V8H(), v12.V8H(), v13.V8H(),
+  __ Ld4(v10.V8H(),
+         v11.V8H(),
+         v12.V8H(),
+         v13.V8H(),
          MemOperand(x19, 64, PostIndex));
-  __ Ld4(v14.V4S(), v15.V4S(), v16.V4S(), v17.V4S(),
+  __ Ld4(v14.V4S(),
+         v15.V4S(),
+         v16.V4S(),
+         v17.V4S(),
          MemOperand(x20, 64, PostIndex));
-  __ Ld4(v30.V2D(), v31.V2D(), v0.V2D(), v1.V2D(),
+  __ Ld4(v30.V2D(),
+         v31.V2D(),
+         v0.V2D(),
+         v1.V2D(),
          MemOperand(x21, 64, PostIndex));
   END();
 
@@ -4379,7 +4419,6 @@
   ASSERT_EQUAL_128(0x434241403f3e3d3c, 0x232221201f1e1d1c, q1);
 
 
-
   ASSERT_EQUAL_64(src_base + 1, x17);
   ASSERT_EQUAL_64(src_base + 1 + 64, x18);
   ASSERT_EQUAL_64(src_base + 2 + 64, x19);
@@ -4497,7 +4536,6 @@
 }
 
 
-
 TEST(neon_ld4_lane_postindex) {
   SETUP();
 
@@ -4512,25 +4550,26 @@
   // Test loading whole register by element.
   __ Mov(x17, src_base);
   for (int i = 15; i >= 0; i--) {
-    __ Ld4(v0.B(), v1.B(), v2.B(), v3.B(), i,
-           MemOperand(x17, 4, PostIndex));
+    __ Ld4(v0.B(), v1.B(), v2.B(), v3.B(), i, MemOperand(x17, 4, PostIndex));
   }
 
   __ Mov(x18, src_base);
   for (int i = 7; i >= 0; i--) {
-    __ Ld4(v4.H(), v5.H(), v6.H(), v7.H(), i,
-           MemOperand(x18, 8, PostIndex));
+    __ Ld4(v4.H(), v5.H(), v6.H(), v7.H(), i, MemOperand(x18, 8, PostIndex));
   }
 
   __ Mov(x19, src_base);
   for (int i = 3; i >= 0; i--) {
-    __ Ld4(v8.S(), v9.S(), v10.S(), v11.S(), i,
-           MemOperand(x19, 16, PostIndex));
+    __ Ld4(v8.S(), v9.S(), v10.S(), v11.S(), i, MemOperand(x19, 16, PostIndex));
   }
 
   __ Mov(x20, src_base);
   for (int i = 1; i >= 0; i--) {
-    __ Ld4(v12.D(), v13.D(), v14.D(), v15.D(), i,
+    __ Ld4(v12.D(),
+           v13.D(),
+           v14.D(),
+           v15.D(),
+           i,
            MemOperand(x20, 32, PostIndex));
   }
 
@@ -4546,7 +4585,11 @@
   __ Ldr(q17, MemOperand(x4, 16, PostIndex));
   __ Ldr(q18, MemOperand(x4, 16, PostIndex));
   __ Ldr(q19, MemOperand(x4));
-  __ Ld4(v16.B(), v17.B(), v18.B(), v19.B(), 4,
+  __ Ld4(v16.B(),
+         v17.B(),
+         v18.B(),
+         v19.B(),
+         4,
          MemOperand(x21, x25, PostIndex));
   __ Add(x25, x25, 1);
 
@@ -4555,7 +4598,11 @@
   __ Ldr(q21, MemOperand(x5, 16, PostIndex));
   __ Ldr(q22, MemOperand(x5, 16, PostIndex));
   __ Ldr(q23, MemOperand(x5));
-  __ Ld4(v20.H(), v21.H(), v22.H(), v23.H(), 3,
+  __ Ld4(v20.H(),
+         v21.H(),
+         v22.H(),
+         v23.H(),
+         3,
          MemOperand(x22, x25, PostIndex));
   __ Add(x25, x25, 1);
 
@@ -4564,7 +4611,11 @@
   __ Ldr(q25, MemOperand(x6, 16, PostIndex));
   __ Ldr(q26, MemOperand(x6, 16, PostIndex));
   __ Ldr(q27, MemOperand(x6));
-  __ Ld4(v24.S(), v25.S(), v26.S(), v27.S(), 2,
+  __ Ld4(v24.S(),
+         v25.S(),
+         v26.S(),
+         v27.S(),
+         2,
          MemOperand(x23, x25, PostIndex));
   __ Add(x25, x25, 1);
 
@@ -4573,7 +4624,11 @@
   __ Ldr(q29, MemOperand(x7, 16, PostIndex));
   __ Ldr(q30, MemOperand(x7, 16, PostIndex));
   __ Ldr(q31, MemOperand(x7));
-  __ Ld4(v28.D(), v29.D(), v30.D(), v31.D(), 1,
+  __ Ld4(v28.D(),
+         v29.D(),
+         v30.D(),
+         v31.D(),
+         1,
          MemOperand(x24, x25, PostIndex));
 
   END();
@@ -4704,19 +4759,40 @@
   START();
   __ Mov(x17, src_base + 1);
   __ Mov(x18, 1);
-  __ Ld4r(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(),
+  __ Ld4r(v0.V8B(),
+          v1.V8B(),
+          v2.V8B(),
+          v3.V8B(),
           MemOperand(x17, 4, PostIndex));
-  __ Ld4r(v4.V16B(), v5.V16B(), v6.V16B(), v7.V16B(),
+  __ Ld4r(v4.V16B(),
+          v5.V16B(),
+          v6.V16B(),
+          v7.V16B(),
           MemOperand(x17, x18, PostIndex));
-  __ Ld4r(v8.V4H(), v9.V4H(), v10.V4H(), v11.V4H(),
+  __ Ld4r(v8.V4H(),
+          v9.V4H(),
+          v10.V4H(),
+          v11.V4H(),
           MemOperand(x17, x18, PostIndex));
-  __ Ld4r(v12.V8H(), v13.V8H(), v14.V8H(), v15.V8H(),
+  __ Ld4r(v12.V8H(),
+          v13.V8H(),
+          v14.V8H(),
+          v15.V8H(),
           MemOperand(x17, 8, PostIndex));
-  __ Ld4r(v16.V2S(), v17.V2S(), v18.V2S(), v19.V2S(),
+  __ Ld4r(v16.V2S(),
+          v17.V2S(),
+          v18.V2S(),
+          v19.V2S(),
           MemOperand(x17, x18, PostIndex));
-  __ Ld4r(v20.V4S(), v21.V4S(), v22.V4S(), v23.V4S(),
+  __ Ld4r(v20.V4S(),
+          v21.V4S(),
+          v22.V4S(),
+          v23.V4S(),
           MemOperand(x17, 16, PostIndex));
-  __ Ld4r(v24.V2D(), v25.V2D(), v26.V2D(), v27.V2D(),
+  __ Ld4r(v24.V2D(),
+          v25.V2D(),
+          v26.V2D(),
+          v27.V2D(),
           MemOperand(x17, 32, PostIndex));
   END();
 
@@ -5375,12 +5451,18 @@
   __ Ldr(d19, MemOperand(x17, x19));
   __ Ldr(d20, MemOperand(x17, x18));
 
-  __ St1(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(),
+  __ St1(v0.V2S(),
+         v1.V2S(),
+         v2.V2S(),
+         v3.V2S(),
          MemOperand(x17, 32, PostIndex));
   __ Ldr(q21, MemOperand(x17, x21));
   __ Ldr(q22, MemOperand(x17, x19));
 
-  __ St1(v0.V1D(), v1.V1D(), v2.V1D(), v3.V1D(),
+  __ St1(v0.V1D(),
+         v1.V1D(),
+         v2.V1D(),
+         v3.V1D(),
          MemOperand(x17, 32, PostIndex));
   __ Ldr(q23, MemOperand(x17, x21));
   __ Ldr(q24, MemOperand(x17, x19));
@@ -5486,7 +5568,10 @@
   __ Ldr(q20, MemOperand(x17, x19));
   __ Ldr(q21, MemOperand(x17, x18));
 
-  __ St1(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(),
+  __ St1(v0.V2D(),
+         v1.V2D(),
+         v2.V2D(),
+         v3.V2D(),
          MemOperand(x17, 64, PostIndex));
   __ Ldr(q22, MemOperand(x17, x21));
   __ Ldr(q23, MemOperand(x17, x20));
@@ -5515,7 +5600,7 @@
 TEST(neon_st2_d) {
   SETUP();
 
-  uint8_t src[4*16];
+  uint8_t src[4 * 16];
   for (unsigned i = 0; i < sizeof(src); i++) {
     src[i] = i;
   }
@@ -5555,7 +5640,7 @@
 TEST(neon_st2_d_postindex) {
   SETUP();
 
-  uint8_t src[4*16];
+  uint8_t src[4 * 16];
   for (unsigned i = 0; i < sizeof(src); i++) {
     src[i] = i;
   }
@@ -5593,7 +5678,7 @@
 TEST(neon_st2_q) {
   SETUP();
 
-  uint8_t src[5*16];
+  uint8_t src[5 * 16];
   for (unsigned i = 0; i < sizeof(src); i++) {
     src[i] = i;
   }
@@ -5634,7 +5719,7 @@
 TEST(neon_st2_q_postindex) {
   SETUP();
 
-  uint8_t src[5*16];
+  uint8_t src[5 * 16];
   for (unsigned i = 0; i < sizeof(src); i++) {
     src[i] = i;
   }
@@ -5676,7 +5761,7 @@
 TEST(neon_st3_d) {
   SETUP();
 
-  uint8_t src[3*16];
+  uint8_t src[3 * 16];
   for (unsigned i = 0; i < sizeof(src); i++) {
     src[i] = i;
   }
@@ -5714,7 +5799,7 @@
 TEST(neon_st3_d_postindex) {
   SETUP();
 
-  uint8_t src[4*16];
+  uint8_t src[4 * 16];
   for (unsigned i = 0; i < sizeof(src); i++) {
     src[i] = i;
   }
@@ -5755,7 +5840,7 @@
 TEST(neon_st3_q) {
   SETUP();
 
-  uint8_t src[6*16];
+  uint8_t src[6 * 16];
   for (unsigned i = 0; i < sizeof(src); i++) {
     src[i] = i;
   }
@@ -5802,7 +5887,7 @@
 TEST(neon_st3_q_postindex) {
   SETUP();
 
-  uint8_t src[7*16];
+  uint8_t src[7 * 16];
   for (unsigned i = 0; i < sizeof(src); i++) {
     src[i] = i;
   }
@@ -5849,7 +5934,7 @@
 TEST(neon_st4_d) {
   SETUP();
 
-  uint8_t src[4*16];
+  uint8_t src[4 * 16];
   for (unsigned i = 0; i < sizeof(src); i++) {
     src[i] = i;
   }
@@ -5892,7 +5977,7 @@
 TEST(neon_st4_d_postindex) {
   SETUP();
 
-  uint8_t src[5*16];
+  uint8_t src[5 * 16];
   for (unsigned i = 0; i < sizeof(src); i++) {
     src[i] = i;
   }
@@ -5907,12 +5992,17 @@
   __ Ldr(q2, MemOperand(x17, 16, PostIndex));
   __ Ldr(q3, MemOperand(x17, 16, PostIndex));
 
-  __ St4(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(),
+  __ St4(v0.V8B(),
+         v1.V8B(),
+         v2.V8B(),
+         v3.V8B(),
          MemOperand(x18, x22, PostIndex));
-  __ St4(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(),
+  __ St4(v0.V4H(),
+         v1.V4H(),
+         v2.V4H(),
+         v3.V4H(),
          MemOperand(x18, 32, PostIndex));
-  __ St4(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(),
-         MemOperand(x18));
+  __ St4(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x18));
 
 
   __ Mov(x19, src_base);
@@ -5939,7 +6029,7 @@
 TEST(neon_st4_q) {
   SETUP();
 
-  uint8_t src[7*16];
+  uint8_t src[7 * 16];
   for (unsigned i = 0; i < sizeof(src); i++) {
     src[i] = i;
   }
@@ -5990,7 +6080,7 @@
 TEST(neon_st4_q_postindex) {
   SETUP();
 
-  uint8_t src[9*16];
+  uint8_t src[9 * 16];
   for (unsigned i = 0; i < sizeof(src); i++) {
     src[i] = i;
   }
@@ -6005,14 +6095,22 @@
   __ Ldr(q2, MemOperand(x17, 16, PostIndex));
   __ Ldr(q3, MemOperand(x17, 16, PostIndex));
 
-  __ St4(v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B(),
+  __ St4(v0.V16B(),
+         v1.V16B(),
+         v2.V16B(),
+         v3.V16B(),
          MemOperand(x18, x22, PostIndex));
-  __ St4(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(),
+  __ St4(v0.V8H(),
+         v1.V8H(),
+         v2.V8H(),
+         v3.V8H(),
          MemOperand(x18, 64, PostIndex));
-  __ St4(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(),
+  __ St4(v0.V4S(),
+         v1.V4S(),
+         v2.V4S(),
+         v3.V4S(),
          MemOperand(x18, x22, PostIndex));
-  __ St4(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(),
-         MemOperand(x18));
+  __ St4(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x18));
 
   __ Mov(x19, src_base);
   __ Ldr(q0, MemOperand(x19, 16, PostIndex));
@@ -6141,7 +6239,12 @@
   __ Mov(v27, v1);
   __ Mov(v28, v2);
   __ Mov(v29, v3);
-  __ Tbl(v26.V16B(), v26.V16B(), v27.V16B(), v28.V16B(), v29.V16B(), v26.V16B());
+  __ Tbl(v26.V16B(),
+         v26.V16B(),
+         v27.V16B(),
+         v28.V16B(),
+         v29.V16B(),
+         v26.V16B());
   END();
 
   RUN();
@@ -6192,7 +6295,12 @@
   __ Mov(v27, v1);
   __ Mov(v28, v2);
   __ Mov(v29, v3);
-  __ Tbx(v26.V16B(), v26.V16B(), v27.V16B(), v28.V16B(), v29.V16B(), v26.V16B());
+  __ Tbx(v26.V16B(),
+         v26.V16B(),
+         v27.V16B(),
+         v28.V16B(),
+         v29.V16B(),
+         v26.V16B());
   END();
 
   RUN();
@@ -6310,8 +6418,10 @@
 TEST(ldp_stp_quad) {
   SETUP();
 
-  uint64_t src[4] = {0x0123456789abcdef, 0xaaaaaaaa55555555,
-                     0xfedcba9876543210, 0x55555555aaaaaaaa};
+  uint64_t src[4] = {0x0123456789abcdef,
+                     0xaaaaaaaa55555555,
+                     0xfedcba9876543210,
+                     0x55555555aaaaaaaa};
   uint64_t dst[6] = {0, 0, 0, 0, 0, 0};
   uintptr_t src_base = reinterpret_cast<uintptr_t>(src);
   uintptr_t dst_base = reinterpret_cast<uintptr_t>(dst);
@@ -6343,7 +6453,8 @@
 TEST(ldp_stp_offset) {
   SETUP();
 
-  uint64_t src[3] = {0x0011223344556677, 0x8899aabbccddeeff,
+  uint64_t src[3] = {0x0011223344556677,
+                     0x8899aabbccddeeff,
                      0xffeeddccbbaa9988};
   uint64_t dst[7] = {0, 0, 0, 0, 0, 0, 0};
   uintptr_t src_base = reinterpret_cast<uintptr_t>(src);
@@ -6397,7 +6508,8 @@
 TEST(ldp_stp_offset_wide) {
   SETUP();
 
-  uint64_t src[3] = {0x0011223344556677, 0x8899aabbccddeeff,
+  uint64_t src[3] = {0x0011223344556677,
+                     0x8899aabbccddeeff,
                      0xffeeddccbbaa9988};
   uint64_t dst[7] = {0, 0, 0, 0, 0, 0, 0};
   uintptr_t src_base = reinterpret_cast<uintptr_t>(src);
@@ -6454,8 +6566,10 @@
 TEST(ldnp_stnp_offset) {
   SETUP();
 
-  uint64_t src[4] = {0x0011223344556677, 0x8899aabbccddeeff,
-                     0xffeeddccbbaa9988, 0x7766554433221100};
+  uint64_t src[4] = {0x0011223344556677,
+                     0x8899aabbccddeeff,
+                     0xffeeddccbbaa9988,
+                     0x7766554433221100};
   uint64_t dst[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   uintptr_t src_base = reinterpret_cast<uintptr_t>(src);
   uintptr_t dst_base = reinterpret_cast<uintptr_t>(dst);
@@ -6626,7 +6740,8 @@
 TEST(ldp_stp_preindex) {
   SETUP();
 
-  uint64_t src[3] = {0x0011223344556677, 0x8899aabbccddeeff,
+  uint64_t src[3] = {0x0011223344556677,
+                     0x8899aabbccddeeff,
                      0xffeeddccbbaa9988};
   uint64_t dst[5] = {0, 0, 0, 0, 0};
   uintptr_t src_base = reinterpret_cast<uintptr_t>(src);
@@ -6680,7 +6795,8 @@
 TEST(ldp_stp_preindex_wide) {
   SETUP();
 
-  uint64_t src[3] = {0x0011223344556677, 0x8899aabbccddeeff,
+  uint64_t src[3] = {0x0011223344556677,
+                     0x8899aabbccddeeff,
                      0xffeeddccbbaa9988};
   uint64_t dst[5] = {0, 0, 0, 0, 0};
   uintptr_t src_base = reinterpret_cast<uintptr_t>(src);
@@ -6697,7 +6813,7 @@
   __ Mov(x19, x24);
   __ Mov(x24, src_base - base_offset + 4);
   __ Ldp(w2, w3, MemOperand(x24, base_offset - 4, PreIndex));
-  __ Stp(w2, w3, MemOperand(x25, 4 - base_offset , PreIndex));
+  __ Stp(w2, w3, MemOperand(x25, 4 - base_offset, PreIndex));
   __ Mov(x20, x25);
   __ Mov(x25, dst_base + base_offset + 4);
   __ Mov(x24, src_base - base_offset);
@@ -6742,8 +6858,10 @@
 TEST(ldp_stp_postindex) {
   SETUP();
 
-  uint64_t src[4] = {0x0011223344556677, 0x8899aabbccddeeff,
-                     0xffeeddccbbaa9988, 0x7766554433221100};
+  uint64_t src[4] = {0x0011223344556677,
+                     0x8899aabbccddeeff,
+                     0xffeeddccbbaa9988,
+                     0x7766554433221100};
   uint64_t dst[5] = {0, 0, 0, 0, 0};
   uintptr_t src_base = reinterpret_cast<uintptr_t>(src);
   uintptr_t dst_base = reinterpret_cast<uintptr_t>(dst);
@@ -6796,8 +6914,10 @@
 TEST(ldp_stp_postindex_wide) {
   SETUP();
 
-  uint64_t src[4] = {0x0011223344556677, 0x8899aabbccddeeff,
-                     0xffeeddccbbaa9988, 0x7766554433221100};
+  uint64_t src[4] = {0x0011223344556677,
+                     0x8899aabbccddeeff,
+                     0xffeeddccbbaa9988,
+                     0x7766554433221100};
   uint64_t dst[5] = {0, 0, 0, 0, 0};
   uintptr_t src_base = reinterpret_cast<uintptr_t>(src);
   uintptr_t dst_base = reinterpret_cast<uintptr_t>(dst);
@@ -6922,8 +7042,7 @@
 TEST(ldur_stur_fp) {
   SETUP();
 
-  int64_t src[3] = {0x0123456789abcdef, 0x0123456789abcdef,
-                    0x0123456789abcdef};
+  int64_t src[3] = {0x0123456789abcdef, 0x0123456789abcdef, 0x0123456789abcdef};
   int64_t dst[5] = {0, 0, 0, 0, 0};
   uintptr_t src_base = reinterpret_cast<uintptr_t>(src);
   uintptr_t dst_base = reinterpret_cast<uintptr_t>(dst);
@@ -7050,10 +7169,12 @@
 TEST(ldr_literal_values_q) {
   SETUP();
 
-  static const uint64_t kHalfValues[] = {
-    0x8000000000000000, 0x7fffffffffffffff, 0x0000000000000000,
-    0xffffffffffffffff, 0x00ff00ff00ff00ff, 0x1234567890abcdef
-  };
+  static const uint64_t kHalfValues[] = {0x8000000000000000,
+                                         0x7fffffffffffffff,
+                                         0x0000000000000000,
+                                         0xffffffffffffffff,
+                                         0x00ff00ff00ff00ff,
+                                         0x1234567890abcdef};
   const int card = sizeof(kHalfValues) / sizeof(kHalfValues[0]);
   const Register& ref_low64 = x1;
   const Register& ref_high64 = x2;
@@ -7091,9 +7212,9 @@
 void LoadIntValueHelper(T values[], int card) {
   SETUP();
 
-  const bool is_32bits = (sizeof(T) == 4);
-  const Register& tgt1 = is_32bits ? w1 : x1;
-  const Register& tgt2 = is_32bits ? w2 : x2;
+  const bool is_32bit = (sizeof(T) == 4);
+  Register tgt1 = is_32bit ? Register(w1) : Register(x1);
+  Register tgt2 = is_32bit ? Register(w2) : Register(x2);
 
   START();
   __ Mov(x0, 0);
@@ -7117,20 +7238,25 @@
 
 
 TEST(ldr_literal_values_x) {
-  static const uint64_t kValues[] = {
-    0x8000000000000000, 0x7fffffffffffffff, 0x0000000000000000,
-    0xffffffffffffffff, 0x00ff00ff00ff00ff, 0x1234567890abcdef
-  };
+  static const uint64_t kValues[] = {0x8000000000000000,
+                                     0x7fffffffffffffff,
+                                     0x0000000000000000,
+                                     0xffffffffffffffff,
+                                     0x00ff00ff00ff00ff,
+                                     0x1234567890abcdef};
 
   LoadIntValueHelper(kValues, sizeof(kValues) / sizeof(kValues[0]));
 }
 
 
 TEST(ldr_literal_values_w) {
-  static const uint32_t kValues[] = {
-    0x80000000, 0x7fffffff, 0x00000000, 0xffffffff, 0x00ff00ff, 0x12345678,
-    0x90abcdef
-  };
+  static const uint32_t kValues[] = {0x80000000,
+                                     0x7fffffff,
+                                     0x00000000,
+                                     0xffffffff,
+                                     0x00ff00ff,
+                                     0x12345678,
+                                     0x90abcdef};
 
   LoadIntValueHelper(kValues, sizeof(kValues) / sizeof(kValues[0]));
 }
@@ -7142,16 +7268,16 @@
 
   const bool is_32bits = (sizeof(T) == 4);
   const FPRegister& fp_tgt = is_32bits ? s2 : d2;
-  const Register& tgt1 = is_32bits ? w1 : x1;
-  const Register& tgt2 = is_32bits ? w2 : x2;
+  const Register& tgt1 = is_32bits ? Register(w1) : Register(x1);
+  const Register& tgt2 = is_32bits ? Register(w2) : Register(x2);
 
   START();
   __ Mov(x0, 0);
 
   // If one of the values differ then x0 will be one.
   for (int i = 0; i < card; ++i) {
-    __ Mov(tgt1, is_32bits ? FloatToRawbits(values[i])
-                           : DoubleToRawbits(values[i]));
+    __ Mov(tgt1,
+           is_32bits ? FloatToRawbits(values[i]) : DoubleToRawbits(values[i]));
     __ Ldr(fp_tgt, values[i]);
     __ Fmov(tgt2, fp_tgt);
     __ Cmp(tgt1, tgt2);
@@ -7168,18 +7294,14 @@
 }
 
 TEST(ldr_literal_values_d) {
-  static const double kValues[] = {
-    -0.0, 0.0, -1.0, 1.0, -1e10, 1e10
-  };
+  static const double kValues[] = {-0.0, 0.0, -1.0, 1.0, -1e10, 1e10};
 
   LoadFPValueHelper(kValues, sizeof(kValues) / sizeof(kValues[0]));
 }
 
 
 TEST(ldr_literal_values_s) {
-  static const float kValues[] = {
-    -0.0, 0.0, -1.0, 1.0, -1e10, 1e10
-  };
+  static const float kValues[] = {-0.0, 0.0, -1.0, 1.0, -1e10, 1e10};
 
   LoadFPValueHelper(kValues, sizeof(kValues) / sizeof(kValues[0]));
 }
@@ -7187,16 +7309,19 @@
 
 TEST(ldr_literal_custom) {
   SETUP();
-  ALLOW_ASM();
 
   Label end_of_pool_before;
   Label end_of_pool_after;
+
+  const size_t kSizeOfPoolInBytes = 44;
+
   Literal<uint64_t> before_x(0x1234567890abcdef);
   Literal<uint32_t> before_w(0xfedcba09);
   Literal<uint32_t> before_sx(0x80000000);
   Literal<uint64_t> before_q(0x1234000056780000, 0xabcd0000ef000000);
   Literal<double> before_d(1.234);
   Literal<float> before_s(2.5);
+
   Literal<uint64_t> after_x(0x1234567890abcdef);
   Literal<uint32_t> after_w(0xfedcba09);
   Literal<uint32_t> after_sx(0x80000000);
@@ -7208,36 +7333,45 @@
 
   // Manually generate a pool.
   __ B(&end_of_pool_before);
-  __ place(&before_x);
-  __ place(&before_w);
-  __ place(&before_sx);
-  __ place(&before_q);
-  __ place(&before_d);
-  __ place(&before_s);
+  {
+    ExactAssemblyScope scope(&masm, kSizeOfPoolInBytes);
+    __ place(&before_x);
+    __ place(&before_w);
+    __ place(&before_sx);
+    __ place(&before_q);
+    __ place(&before_d);
+    __ place(&before_s);
+  }
   __ Bind(&end_of_pool_before);
 
-  __ ldr(x2, &before_x);
-  __ ldr(w3, &before_w);
-  __ ldrsw(x5, &before_sx);
-  __ ldr(q11, &before_q);
-  __ ldr(d13, &before_d);
-  __ ldr(s25, &before_s);
+  {
+    ExactAssemblyScope scope(&masm, 12 * kInstructionSize);
+    __ ldr(x2, &before_x);
+    __ ldr(w3, &before_w);
+    __ ldrsw(x5, &before_sx);
+    __ ldr(q11, &before_q);
+    __ ldr(d13, &before_d);
+    __ ldr(s25, &before_s);
 
-  __ ldr(x6, &after_x);
-  __ ldr(w7, &after_w);
-  __ ldrsw(x8, &after_sx);
-  __ ldr(q18, &after_q);
-  __ ldr(d14, &after_d);
-  __ ldr(s26, &after_s);
+    __ ldr(x6, &after_x);
+    __ ldr(w7, &after_w);
+    __ ldrsw(x8, &after_sx);
+    __ ldr(q18, &after_q);
+    __ ldr(d14, &after_d);
+    __ ldr(s26, &after_s);
+  }
 
   // Manually generate a pool.
   __ B(&end_of_pool_after);
-  __ place(&after_x);
-  __ place(&after_w);
-  __ place(&after_sx);
-  __ place(&after_q);
-  __ place(&after_d);
-  __ place(&after_s);
+  {
+    ExactAssemblyScope scope(&masm, kSizeOfPoolInBytes);
+    __ place(&after_x);
+    __ place(&after_w);
+    __ place(&after_sx);
+    __ place(&after_q);
+    __ place(&after_d);
+    __ place(&after_s);
+  }
   __ Bind(&end_of_pool_after);
 
   END();
@@ -7264,15 +7398,18 @@
 
 TEST(ldr_literal_custom_shared) {
   SETUP();
-  ALLOW_ASM();
 
   Label end_of_pool_before;
   Label end_of_pool_after;
+
+  const size_t kSizeOfPoolInBytes = 40;
+
   Literal<uint64_t> before_x(0x1234567890abcdef);
   Literal<uint32_t> before_w(0xfedcba09);
   Literal<uint64_t> before_q(0x1234000056780000, 0xabcd0000ef000000);
   Literal<double> before_d(1.234);
   Literal<float> before_s(2.5);
+
   Literal<uint64_t> after_x(0x1234567890abcdef);
   Literal<uint32_t> after_w(0xfedcba09);
   Literal<uint64_t> after_q(0x1234000056780000, 0xabcd0000ef000000);
@@ -7283,25 +7420,29 @@
 
   // Manually generate a pool.
   __ B(&end_of_pool_before);
-  __ place(&before_x);
-  __ place(&before_w);
-  __ place(&before_q);
-  __ place(&before_d);
-  __ place(&before_s);
+  {
+    ExactAssemblyScope scope(&masm, kSizeOfPoolInBytes);
+    __ place(&before_x);
+    __ place(&before_w);
+    __ place(&before_q);
+    __ place(&before_d);
+    __ place(&before_s);
+  }
   __ Bind(&end_of_pool_before);
 
   // Load the entries several times to test that literals can be shared.
   for (int i = 0; i < 50; i++) {
+    ExactAssemblyScope scope(&masm, 12 * kInstructionSize);
     __ ldr(x2, &before_x);
     __ ldr(w3, &before_w);
-    __ ldrsw(x5, &before_w);    // Re-use before_w.
+    __ ldrsw(x5, &before_w);  // Re-use before_w.
     __ ldr(q11, &before_q);
     __ ldr(d13, &before_d);
     __ ldr(s25, &before_s);
 
     __ ldr(x6, &after_x);
     __ ldr(w7, &after_w);
-    __ ldrsw(x8, &after_w);     // Re-use after_w.
+    __ ldrsw(x8, &after_w);  // Re-use after_w.
     __ ldr(q18, &after_q);
     __ ldr(d14, &after_d);
     __ ldr(s26, &after_s);
@@ -7309,11 +7450,14 @@
 
   // Manually generate a pool.
   __ B(&end_of_pool_after);
-  __ place(&after_x);
-  __ place(&after_w);
-  __ place(&after_q);
-  __ place(&after_d);
-  __ place(&after_s);
+  {
+    ExactAssemblyScope scope(&masm, kSizeOfPoolInBytes);
+    __ place(&after_x);
+    __ place(&after_w);
+    __ place(&after_q);
+    __ place(&after_d);
+    __ place(&after_s);
+  }
   __ Bind(&end_of_pool_after);
 
   END();
@@ -7417,13 +7561,13 @@
 
 TEST(prfm_literal_imm19) {
   SETUP();
-  ALLOW_ASM();
   START();
 
   for (int i = 0; i < (1 << ImmPrefetchOperation_width); i++) {
     // Unallocated prefetch operations are ignored, so test all of them.
     PrefetchOperation op = static_cast<PrefetchOperation>(i);
 
+    ExactAssemblyScope scope(&masm, 7 * kInstructionSize);
     // The address used in prfm doesn't have to be valid.
     __ prfm(op, INT64_C(0));
     __ prfm(op, 1);
@@ -7442,7 +7586,6 @@
 
 TEST(prfm_literal) {
   SETUP();
-  ALLOW_ASM();
 
   Label end_of_pool_before;
   Label end_of_pool_after;
@@ -7453,21 +7596,27 @@
 
   // Manually generate a pool.
   __ B(&end_of_pool_before);
-  __ place(&before);
+  {
+    ExactAssemblyScope scope(&masm, before.GetSize());
+    __ place(&before);
+  }
   __ Bind(&end_of_pool_before);
 
   for (int i = 0; i < (1 << ImmPrefetchOperation_width); i++) {
     // Unallocated prefetch operations are ignored, so test all of them.
     PrefetchOperation op = static_cast<PrefetchOperation>(i);
 
-    CodeBufferCheckScope guard(&masm, 2 * kInstructionSize);
+    ExactAssemblyScope guard(&masm, 2 * kInstructionSize);
     __ prfm(op, &before);
     __ prfm(op, &after);
   }
 
   // Manually generate a pool.
   __ B(&end_of_pool_after);
-  __ place(&after);
+  {
+    ExactAssemblyScope scope(&masm, after.GetSize());
+    __ place(&after);
+  }
   __ Bind(&end_of_pool_after);
 
   END();
@@ -7502,10 +7651,12 @@
 TEST(load_prfm_literal) {
   // Test literals shared between both prfm and ldr.
   SETUP();
-  ALLOW_ASM();
 
   Label end_of_pool_before;
   Label end_of_pool_after;
+
+  const size_t kSizeOfPoolInBytes = 28;
+
   Literal<uint64_t> before_x(0x1234567890abcdef);
   Literal<uint32_t> before_w(0xfedcba09);
   Literal<uint32_t> before_sx(0x80000000);
@@ -7521,16 +7672,20 @@
 
   // Manually generate a pool.
   __ B(&end_of_pool_before);
-  __ place(&before_x);
-  __ place(&before_w);
-  __ place(&before_sx);
-  __ place(&before_d);
-  __ place(&before_s);
+  {
+    ExactAssemblyScope scope(&masm, kSizeOfPoolInBytes);
+    __ place(&before_x);
+    __ place(&before_w);
+    __ place(&before_sx);
+    __ place(&before_d);
+    __ place(&before_s);
+  }
   __ Bind(&end_of_pool_before);
 
   for (int i = 0; i < (1 << ImmPrefetchOperation_width); i++) {
     // Unallocated prefetch operations are ignored, so test all of them.
     PrefetchOperation op = static_cast<PrefetchOperation>(i);
+    ExactAssemblyScope scope(&masm, 10 * kInstructionSize);
 
     __ prfm(op, &before_x);
     __ prfm(op, &before_w);
@@ -7545,25 +7700,31 @@
     __ prfm(op, &after_s);
   }
 
-  __ ldr(x2, &before_x);
-  __ ldr(w3, &before_w);
-  __ ldrsw(x5, &before_sx);
-  __ ldr(d13, &before_d);
-  __ ldr(s25, &before_s);
+  {
+    ExactAssemblyScope scope(&masm, 10 * kInstructionSize);
+    __ ldr(x2, &before_x);
+    __ ldr(w3, &before_w);
+    __ ldrsw(x5, &before_sx);
+    __ ldr(d13, &before_d);
+    __ ldr(s25, &before_s);
 
-  __ ldr(x6, &after_x);
-  __ ldr(w7, &after_w);
-  __ ldrsw(x8, &after_sx);
-  __ ldr(d14, &after_d);
-  __ ldr(s26, &after_s);
+    __ ldr(x6, &after_x);
+    __ ldr(w7, &after_w);
+    __ ldrsw(x8, &after_sx);
+    __ ldr(d14, &after_d);
+    __ ldr(s26, &after_s);
+  }
 
   // Manually generate a pool.
   __ B(&end_of_pool_after);
-  __ place(&after_x);
-  __ place(&after_w);
-  __ place(&after_sx);
-  __ place(&after_d);
-  __ place(&after_s);
+  {
+    ExactAssemblyScope scope(&masm, kSizeOfPoolInBytes);
+    __ place(&after_x);
+    __ place(&after_w);
+    __ place(&after_sx);
+    __ place(&after_d);
+    __ place(&after_s);
+  }
   __ Bind(&end_of_pool_after);
 
   END();
@@ -7954,9 +8115,9 @@
 }
 
 
-template<typename T, typename Op>
-static void AdcsSbcsHelper(Op op, T left, T right, int carry,
-                           T expected, StatusFlags expected_flags) {
+template <typename T, typename Op>
+static void AdcsSbcsHelper(
+    Op op, T left, T right, int carry, T expected, StatusFlags expected_flags) {
   int reg_size = sizeof(T) * 8;
   Register left_reg(0, reg_size);
   Register right_reg(1, reg_size);
@@ -7986,10 +8147,14 @@
 
 TEST(adcs_sbcs_x) {
   uint64_t inputs[] = {
-    0x0000000000000000, 0x0000000000000001,
-    0x7ffffffffffffffe, 0x7fffffffffffffff,
-    0x8000000000000000, 0x8000000000000001,
-    0xfffffffffffffffe, 0xffffffffffffffff,
+      0x0000000000000000,
+      0x0000000000000001,
+      0x7ffffffffffffffe,
+      0x7fffffffffffffff,
+      0x8000000000000000,
+      0x8000000000000001,
+      0xfffffffffffffffe,
+      0xffffffffffffffff,
   };
   static const size_t input_count = sizeof(inputs) / sizeof(inputs[0]);
 
@@ -8000,157 +8165,171 @@
     StatusFlags carry1_flags;
   };
 
-  static const Expected expected_adcs_x[input_count][input_count] = {
-    {{0x0000000000000000, ZFlag, 0x0000000000000001, NoFlag},
-     {0x0000000000000001, NoFlag, 0x0000000000000002, NoFlag},
-     {0x7ffffffffffffffe, NoFlag, 0x7fffffffffffffff, NoFlag},
-     {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
-     {0x8000000000000000, NFlag, 0x8000000000000001, NFlag},
-     {0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
-     {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag}},
-    {{0x0000000000000001, NoFlag, 0x0000000000000002, NoFlag},
-     {0x0000000000000002, NoFlag, 0x0000000000000003, NoFlag},
-     {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
-     {0x8000000000000000, NVFlag, 0x8000000000000001, NVFlag},
-     {0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
-     {0x8000000000000002, NFlag, 0x8000000000000003, NFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag}},
-    {{0x7ffffffffffffffe, NoFlag, 0x7fffffffffffffff, NoFlag},
-     {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
-     {0xfffffffffffffffc, NVFlag, 0xfffffffffffffffd, NVFlag},
-     {0xfffffffffffffffd, NVFlag, 0xfffffffffffffffe, NVFlag},
-     {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0x7ffffffffffffffc, CFlag, 0x7ffffffffffffffd, CFlag},
-     {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag}},
-    {{0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
-     {0x8000000000000000, NVFlag, 0x8000000000000001, NVFlag},
-     {0xfffffffffffffffd, NVFlag, 0xfffffffffffffffe, NVFlag},
-     {0xfffffffffffffffe, NVFlag, 0xffffffffffffffff, NVFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
-     {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
-     {0x7ffffffffffffffe, CFlag, 0x7fffffffffffffff, CFlag}},
-    {{0x8000000000000000, NFlag, 0x8000000000000001, NFlag},
-     {0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
-     {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0x0000000000000000, ZCVFlag, 0x0000000000000001, CVFlag},
-     {0x0000000000000001, CVFlag, 0x0000000000000002, CVFlag},
-     {0x7ffffffffffffffe, CVFlag, 0x7fffffffffffffff, CVFlag},
-     {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag}},
-    {{0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
-     {0x8000000000000002, NFlag, 0x8000000000000003, NFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
-     {0x0000000000000001, CVFlag, 0x0000000000000002, CVFlag},
-     {0x0000000000000002, CVFlag, 0x0000000000000003, CVFlag},
-     {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
-     {0x8000000000000000, NCFlag, 0x8000000000000001, NCFlag}},
-    {{0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0x7ffffffffffffffc, CFlag, 0x7ffffffffffffffd, CFlag},
-     {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
-     {0x7ffffffffffffffe, CVFlag, 0x7fffffffffffffff, CVFlag},
-     {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
-     {0xfffffffffffffffc, NCFlag, 0xfffffffffffffffd, NCFlag},
-     {0xfffffffffffffffd, NCFlag, 0xfffffffffffffffe, NCFlag}},
-    {{0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
-     {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
-     {0x7ffffffffffffffe, CFlag, 0x7fffffffffffffff, CFlag},
-     {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
-     {0x8000000000000000, NCFlag, 0x8000000000000001, NCFlag},
-     {0xfffffffffffffffd, NCFlag, 0xfffffffffffffffe, NCFlag},
-     {0xfffffffffffffffe, NCFlag, 0xffffffffffffffff, NCFlag}}
-  };
+  static const Expected expected_adcs_x[input_count][input_count] =
+      {{{0x0000000000000000, ZFlag, 0x0000000000000001, NoFlag},
+        {0x0000000000000001, NoFlag, 0x0000000000000002, NoFlag},
+        {0x7ffffffffffffffe, NoFlag, 0x7fffffffffffffff, NoFlag},
+        {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
+        {0x8000000000000000, NFlag, 0x8000000000000001, NFlag},
+        {0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
+        {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag}},
+       {{0x0000000000000001, NoFlag, 0x0000000000000002, NoFlag},
+        {0x0000000000000002, NoFlag, 0x0000000000000003, NoFlag},
+        {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
+        {0x8000000000000000, NVFlag, 0x8000000000000001, NVFlag},
+        {0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
+        {0x8000000000000002, NFlag, 0x8000000000000003, NFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag}},
+       {{0x7ffffffffffffffe, NoFlag, 0x7fffffffffffffff, NoFlag},
+        {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
+        {0xfffffffffffffffc, NVFlag, 0xfffffffffffffffd, NVFlag},
+        {0xfffffffffffffffd, NVFlag, 0xfffffffffffffffe, NVFlag},
+        {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0x7ffffffffffffffc, CFlag, 0x7ffffffffffffffd, CFlag},
+        {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag}},
+       {{0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
+        {0x8000000000000000, NVFlag, 0x8000000000000001, NVFlag},
+        {0xfffffffffffffffd, NVFlag, 0xfffffffffffffffe, NVFlag},
+        {0xfffffffffffffffe, NVFlag, 0xffffffffffffffff, NVFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
+        {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
+        {0x7ffffffffffffffe, CFlag, 0x7fffffffffffffff, CFlag}},
+       {{0x8000000000000000, NFlag, 0x8000000000000001, NFlag},
+        {0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
+        {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0x0000000000000000, ZCVFlag, 0x0000000000000001, CVFlag},
+        {0x0000000000000001, CVFlag, 0x0000000000000002, CVFlag},
+        {0x7ffffffffffffffe, CVFlag, 0x7fffffffffffffff, CVFlag},
+        {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag}},
+       {{0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
+        {0x8000000000000002, NFlag, 0x8000000000000003, NFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
+        {0x0000000000000001, CVFlag, 0x0000000000000002, CVFlag},
+        {0x0000000000000002, CVFlag, 0x0000000000000003, CVFlag},
+        {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
+        {0x8000000000000000, NCFlag, 0x8000000000000001, NCFlag}},
+       {{0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0x7ffffffffffffffc, CFlag, 0x7ffffffffffffffd, CFlag},
+        {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
+        {0x7ffffffffffffffe, CVFlag, 0x7fffffffffffffff, CVFlag},
+        {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
+        {0xfffffffffffffffc, NCFlag, 0xfffffffffffffffd, NCFlag},
+        {0xfffffffffffffffd, NCFlag, 0xfffffffffffffffe, NCFlag}},
+       {{0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
+        {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
+        {0x7ffffffffffffffe, CFlag, 0x7fffffffffffffff, CFlag},
+        {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
+        {0x8000000000000000, NCFlag, 0x8000000000000001, NCFlag},
+        {0xfffffffffffffffd, NCFlag, 0xfffffffffffffffe, NCFlag},
+        {0xfffffffffffffffe, NCFlag, 0xffffffffffffffff, NCFlag}}};
 
-  static const Expected expected_sbcs_x[input_count][input_count] = {
-    {{0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
-     {0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
-     {0x8000000000000000, NFlag, 0x8000000000000001, NFlag},
-     {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
-     {0x7ffffffffffffffe, NoFlag, 0x7fffffffffffffff, NoFlag},
-     {0x0000000000000001, NoFlag, 0x0000000000000002, NoFlag},
-     {0x0000000000000000, ZFlag, 0x0000000000000001, NoFlag}},
-    {{0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0x8000000000000002, NFlag, 0x8000000000000003, NFlag},
-     {0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
-     {0x8000000000000000, NVFlag, 0x8000000000000001, NVFlag},
-     {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
-     {0x0000000000000002, NoFlag, 0x0000000000000003, NoFlag},
-     {0x0000000000000001, NoFlag, 0x0000000000000002, NoFlag}},
-    {{0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
-     {0x7ffffffffffffffc, CFlag, 0x7ffffffffffffffd, CFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
-     {0xfffffffffffffffd, NVFlag, 0xfffffffffffffffe, NVFlag},
-     {0xfffffffffffffffc, NVFlag, 0xfffffffffffffffd, NVFlag},
-     {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
-     {0x7ffffffffffffffe, NoFlag, 0x7fffffffffffffff, NoFlag}},
-    {{0x7ffffffffffffffe, CFlag, 0x7fffffffffffffff, CFlag},
-     {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
-     {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0xfffffffffffffffe, NVFlag, 0xffffffffffffffff, NVFlag},
-     {0xfffffffffffffffd, NVFlag, 0xfffffffffffffffe, NVFlag},
-     {0x8000000000000000, NVFlag, 0x8000000000000001, NVFlag},
-     {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag}},
-    {{0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
-     {0x7ffffffffffffffe, CVFlag, 0x7fffffffffffffff, CVFlag},
-     {0x0000000000000001, CVFlag, 0x0000000000000002, CVFlag},
-     {0x0000000000000000, ZCVFlag, 0x0000000000000001, CVFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
-     {0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
-     {0x8000000000000000, NFlag, 0x8000000000000001, NFlag}},
-    {{0x8000000000000000, NCFlag, 0x8000000000000001, NCFlag},
-     {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
-     {0x0000000000000002, CVFlag, 0x0000000000000003, CVFlag},
-     {0x0000000000000001, CVFlag, 0x0000000000000002, CVFlag},
-     {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0x8000000000000002, NFlag, 0x8000000000000003, NFlag},
-     {0x8000000000000001, NFlag, 0x8000000000000002, NFlag}},
-    {{0xfffffffffffffffd, NCFlag, 0xfffffffffffffffe, NCFlag},
-     {0xfffffffffffffffc, NCFlag, 0xfffffffffffffffd, NCFlag},
-     {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
-     {0x7ffffffffffffffe, CVFlag, 0x7fffffffffffffff, CVFlag},
-     {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
-     {0x7ffffffffffffffc, CFlag, 0x7ffffffffffffffd, CFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
-     {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag}},
-    {{0xfffffffffffffffe, NCFlag, 0xffffffffffffffff, NCFlag},
-     {0xfffffffffffffffd, NCFlag, 0xfffffffffffffffe, NCFlag},
-     {0x8000000000000000, NCFlag, 0x8000000000000001, NCFlag},
-     {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
-     {0x7ffffffffffffffe, CFlag, 0x7fffffffffffffff, CFlag},
-     {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
-     {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
-     {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag}}
-  };
+  static const Expected expected_sbcs_x[input_count][input_count] =
+      {{{0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
+        {0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
+        {0x8000000000000000, NFlag, 0x8000000000000001, NFlag},
+        {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
+        {0x7ffffffffffffffe, NoFlag, 0x7fffffffffffffff, NoFlag},
+        {0x0000000000000001, NoFlag, 0x0000000000000002, NoFlag},
+        {0x0000000000000000, ZFlag, 0x0000000000000001, NoFlag}},
+       {{0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0x8000000000000002, NFlag, 0x8000000000000003, NFlag},
+        {0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
+        {0x8000000000000000, NVFlag, 0x8000000000000001, NVFlag},
+        {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
+        {0x0000000000000002, NoFlag, 0x0000000000000003, NoFlag},
+        {0x0000000000000001, NoFlag, 0x0000000000000002, NoFlag}},
+       {{0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
+        {0x7ffffffffffffffc, CFlag, 0x7ffffffffffffffd, CFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
+        {0xfffffffffffffffd, NVFlag, 0xfffffffffffffffe, NVFlag},
+        {0xfffffffffffffffc, NVFlag, 0xfffffffffffffffd, NVFlag},
+        {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag},
+        {0x7ffffffffffffffe, NoFlag, 0x7fffffffffffffff, NoFlag}},
+       {{0x7ffffffffffffffe, CFlag, 0x7fffffffffffffff, CFlag},
+        {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
+        {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0xfffffffffffffffe, NVFlag, 0xffffffffffffffff, NVFlag},
+        {0xfffffffffffffffd, NVFlag, 0xfffffffffffffffe, NVFlag},
+        {0x8000000000000000, NVFlag, 0x8000000000000001, NVFlag},
+        {0x7fffffffffffffff, NoFlag, 0x8000000000000000, NVFlag}},
+       {{0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
+        {0x7ffffffffffffffe, CVFlag, 0x7fffffffffffffff, CVFlag},
+        {0x0000000000000001, CVFlag, 0x0000000000000002, CVFlag},
+        {0x0000000000000000, ZCVFlag, 0x0000000000000001, CVFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag},
+        {0x8000000000000001, NFlag, 0x8000000000000002, NFlag},
+        {0x8000000000000000, NFlag, 0x8000000000000001, NFlag}},
+       {{0x8000000000000000, NCFlag, 0x8000000000000001, NCFlag},
+        {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
+        {0x0000000000000002, CVFlag, 0x0000000000000003, CVFlag},
+        {0x0000000000000001, CVFlag, 0x0000000000000002, CVFlag},
+        {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0x8000000000000002, NFlag, 0x8000000000000003, NFlag},
+        {0x8000000000000001, NFlag, 0x8000000000000002, NFlag}},
+       {{0xfffffffffffffffd, NCFlag, 0xfffffffffffffffe, NCFlag},
+        {0xfffffffffffffffc, NCFlag, 0xfffffffffffffffd, NCFlag},
+        {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
+        {0x7ffffffffffffffe, CVFlag, 0x7fffffffffffffff, CVFlag},
+        {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
+        {0x7ffffffffffffffc, CFlag, 0x7ffffffffffffffd, CFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag},
+        {0xfffffffffffffffe, NFlag, 0xffffffffffffffff, NFlag}},
+       {{0xfffffffffffffffe, NCFlag, 0xffffffffffffffff, NCFlag},
+        {0xfffffffffffffffd, NCFlag, 0xfffffffffffffffe, NCFlag},
+        {0x8000000000000000, NCFlag, 0x8000000000000001, NCFlag},
+        {0x7fffffffffffffff, CVFlag, 0x8000000000000000, NCFlag},
+        {0x7ffffffffffffffe, CFlag, 0x7fffffffffffffff, CFlag},
+        {0x7ffffffffffffffd, CFlag, 0x7ffffffffffffffe, CFlag},
+        {0x0000000000000000, ZCFlag, 0x0000000000000001, CFlag},
+        {0xffffffffffffffff, NFlag, 0x0000000000000000, ZCFlag}}};
 
   for (size_t left = 0; left < input_count; left++) {
     for (size_t right = 0; right < input_count; right++) {
-      const Expected & expected = expected_adcs_x[left][right];
-      AdcsSbcsHelper(&MacroAssembler::Adcs, inputs[left], inputs[right], 0,
-                     expected.carry0_result, expected.carry0_flags);
-      AdcsSbcsHelper(&MacroAssembler::Adcs, inputs[left], inputs[right], 1,
-                     expected.carry1_result, expected.carry1_flags);
+      const Expected& expected = expected_adcs_x[left][right];
+      AdcsSbcsHelper(&MacroAssembler::Adcs,
+                     inputs[left],
+                     inputs[right],
+                     0,
+                     expected.carry0_result,
+                     expected.carry0_flags);
+      AdcsSbcsHelper(&MacroAssembler::Adcs,
+                     inputs[left],
+                     inputs[right],
+                     1,
+                     expected.carry1_result,
+                     expected.carry1_flags);
     }
   }
 
   for (size_t left = 0; left < input_count; left++) {
     for (size_t right = 0; right < input_count; right++) {
-      const Expected & expected = expected_sbcs_x[left][right];
-      AdcsSbcsHelper(&MacroAssembler::Sbcs, inputs[left], inputs[right], 0,
-                     expected.carry0_result, expected.carry0_flags);
-      AdcsSbcsHelper(&MacroAssembler::Sbcs, inputs[left], inputs[right], 1,
-                     expected.carry1_result, expected.carry1_flags);
+      const Expected& expected = expected_sbcs_x[left][right];
+      AdcsSbcsHelper(&MacroAssembler::Sbcs,
+                     inputs[left],
+                     inputs[right],
+                     0,
+                     expected.carry0_result,
+                     expected.carry0_flags);
+      AdcsSbcsHelper(&MacroAssembler::Sbcs,
+                     inputs[left],
+                     inputs[right],
+                     1,
+                     expected.carry1_result,
+                     expected.carry1_flags);
     }
   }
 }
@@ -8158,8 +8337,14 @@
 
 TEST(adcs_sbcs_w) {
   uint32_t inputs[] = {
-    0x00000000, 0x00000001, 0x7ffffffe, 0x7fffffff,
-    0x80000000, 0x80000001, 0xfffffffe, 0xffffffff,
+      0x00000000,
+      0x00000001,
+      0x7ffffffe,
+      0x7fffffff,
+      0x80000000,
+      0x80000001,
+      0xfffffffe,
+      0xffffffff,
   };
   static const size_t input_count = sizeof(inputs) / sizeof(inputs[0]);
 
@@ -8170,157 +8355,171 @@
     StatusFlags carry1_flags;
   };
 
-  static const Expected expected_adcs_w[input_count][input_count] = {
-    {{0x00000000, ZFlag, 0x00000001, NoFlag},
-     {0x00000001, NoFlag, 0x00000002, NoFlag},
-     {0x7ffffffe, NoFlag, 0x7fffffff, NoFlag},
-     {0x7fffffff, NoFlag, 0x80000000, NVFlag},
-     {0x80000000, NFlag, 0x80000001, NFlag},
-     {0x80000001, NFlag, 0x80000002, NFlag},
-     {0xfffffffe, NFlag, 0xffffffff, NFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag}},
-    {{0x00000001, NoFlag, 0x00000002, NoFlag},
-     {0x00000002, NoFlag, 0x00000003, NoFlag},
-     {0x7fffffff, NoFlag, 0x80000000, NVFlag},
-     {0x80000000, NVFlag, 0x80000001, NVFlag},
-     {0x80000001, NFlag, 0x80000002, NFlag},
-     {0x80000002, NFlag, 0x80000003, NFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0x00000000, ZCFlag, 0x00000001, CFlag}},
-    {{0x7ffffffe, NoFlag, 0x7fffffff, NoFlag},
-     {0x7fffffff, NoFlag, 0x80000000, NVFlag},
-     {0xfffffffc, NVFlag, 0xfffffffd, NVFlag},
-     {0xfffffffd, NVFlag, 0xfffffffe, NVFlag},
-     {0xfffffffe, NFlag, 0xffffffff, NFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0x7ffffffc, CFlag, 0x7ffffffd, CFlag},
-     {0x7ffffffd, CFlag, 0x7ffffffe, CFlag}},
-    {{0x7fffffff, NoFlag, 0x80000000, NVFlag},
-     {0x80000000, NVFlag, 0x80000001, NVFlag},
-     {0xfffffffd, NVFlag, 0xfffffffe, NVFlag},
-     {0xfffffffe, NVFlag, 0xffffffff, NVFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0x00000000, ZCFlag, 0x00000001, CFlag},
-     {0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
-     {0x7ffffffe, CFlag, 0x7fffffff, CFlag}},
-    {{0x80000000, NFlag, 0x80000001, NFlag},
-     {0x80000001, NFlag, 0x80000002, NFlag},
-     {0xfffffffe, NFlag, 0xffffffff, NFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0x00000000, ZCVFlag, 0x00000001, CVFlag},
-     {0x00000001, CVFlag, 0x00000002, CVFlag},
-     {0x7ffffffe, CVFlag, 0x7fffffff, CVFlag},
-     {0x7fffffff, CVFlag, 0x80000000, NCFlag}},
-    {{0x80000001, NFlag, 0x80000002, NFlag},
-     {0x80000002, NFlag, 0x80000003, NFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0x00000000, ZCFlag, 0x00000001, CFlag},
-     {0x00000001, CVFlag, 0x00000002, CVFlag},
-     {0x00000002, CVFlag, 0x00000003, CVFlag},
-     {0x7fffffff, CVFlag, 0x80000000, NCFlag},
-     {0x80000000, NCFlag, 0x80000001, NCFlag}},
-    {{0xfffffffe, NFlag, 0xffffffff, NFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0x7ffffffc, CFlag, 0x7ffffffd, CFlag},
-     {0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
-     {0x7ffffffe, CVFlag, 0x7fffffff, CVFlag},
-     {0x7fffffff, CVFlag, 0x80000000, NCFlag},
-     {0xfffffffc, NCFlag, 0xfffffffd, NCFlag},
-     {0xfffffffd, NCFlag, 0xfffffffe, NCFlag}},
-    {{0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0x00000000, ZCFlag, 0x00000001, CFlag},
-     {0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
-     {0x7ffffffe, CFlag, 0x7fffffff, CFlag},
-     {0x7fffffff, CVFlag, 0x80000000, NCFlag},
-     {0x80000000, NCFlag, 0x80000001, NCFlag},
-     {0xfffffffd, NCFlag, 0xfffffffe, NCFlag},
-     {0xfffffffe, NCFlag, 0xffffffff, NCFlag}}
-  };
+  static const Expected expected_adcs_w[input_count][input_count] =
+      {{{0x00000000, ZFlag, 0x00000001, NoFlag},
+        {0x00000001, NoFlag, 0x00000002, NoFlag},
+        {0x7ffffffe, NoFlag, 0x7fffffff, NoFlag},
+        {0x7fffffff, NoFlag, 0x80000000, NVFlag},
+        {0x80000000, NFlag, 0x80000001, NFlag},
+        {0x80000001, NFlag, 0x80000002, NFlag},
+        {0xfffffffe, NFlag, 0xffffffff, NFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag}},
+       {{0x00000001, NoFlag, 0x00000002, NoFlag},
+        {0x00000002, NoFlag, 0x00000003, NoFlag},
+        {0x7fffffff, NoFlag, 0x80000000, NVFlag},
+        {0x80000000, NVFlag, 0x80000001, NVFlag},
+        {0x80000001, NFlag, 0x80000002, NFlag},
+        {0x80000002, NFlag, 0x80000003, NFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0x00000000, ZCFlag, 0x00000001, CFlag}},
+       {{0x7ffffffe, NoFlag, 0x7fffffff, NoFlag},
+        {0x7fffffff, NoFlag, 0x80000000, NVFlag},
+        {0xfffffffc, NVFlag, 0xfffffffd, NVFlag},
+        {0xfffffffd, NVFlag, 0xfffffffe, NVFlag},
+        {0xfffffffe, NFlag, 0xffffffff, NFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0x7ffffffc, CFlag, 0x7ffffffd, CFlag},
+        {0x7ffffffd, CFlag, 0x7ffffffe, CFlag}},
+       {{0x7fffffff, NoFlag, 0x80000000, NVFlag},
+        {0x80000000, NVFlag, 0x80000001, NVFlag},
+        {0xfffffffd, NVFlag, 0xfffffffe, NVFlag},
+        {0xfffffffe, NVFlag, 0xffffffff, NVFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0x00000000, ZCFlag, 0x00000001, CFlag},
+        {0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
+        {0x7ffffffe, CFlag, 0x7fffffff, CFlag}},
+       {{0x80000000, NFlag, 0x80000001, NFlag},
+        {0x80000001, NFlag, 0x80000002, NFlag},
+        {0xfffffffe, NFlag, 0xffffffff, NFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0x00000000, ZCVFlag, 0x00000001, CVFlag},
+        {0x00000001, CVFlag, 0x00000002, CVFlag},
+        {0x7ffffffe, CVFlag, 0x7fffffff, CVFlag},
+        {0x7fffffff, CVFlag, 0x80000000, NCFlag}},
+       {{0x80000001, NFlag, 0x80000002, NFlag},
+        {0x80000002, NFlag, 0x80000003, NFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0x00000000, ZCFlag, 0x00000001, CFlag},
+        {0x00000001, CVFlag, 0x00000002, CVFlag},
+        {0x00000002, CVFlag, 0x00000003, CVFlag},
+        {0x7fffffff, CVFlag, 0x80000000, NCFlag},
+        {0x80000000, NCFlag, 0x80000001, NCFlag}},
+       {{0xfffffffe, NFlag, 0xffffffff, NFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0x7ffffffc, CFlag, 0x7ffffffd, CFlag},
+        {0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
+        {0x7ffffffe, CVFlag, 0x7fffffff, CVFlag},
+        {0x7fffffff, CVFlag, 0x80000000, NCFlag},
+        {0xfffffffc, NCFlag, 0xfffffffd, NCFlag},
+        {0xfffffffd, NCFlag, 0xfffffffe, NCFlag}},
+       {{0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0x00000000, ZCFlag, 0x00000001, CFlag},
+        {0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
+        {0x7ffffffe, CFlag, 0x7fffffff, CFlag},
+        {0x7fffffff, CVFlag, 0x80000000, NCFlag},
+        {0x80000000, NCFlag, 0x80000001, NCFlag},
+        {0xfffffffd, NCFlag, 0xfffffffe, NCFlag},
+        {0xfffffffe, NCFlag, 0xffffffff, NCFlag}}};
 
-  static const Expected expected_sbcs_w[input_count][input_count] = {
-    {{0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0xfffffffe, NFlag, 0xffffffff, NFlag},
-     {0x80000001, NFlag, 0x80000002, NFlag},
-     {0x80000000, NFlag, 0x80000001, NFlag},
-     {0x7fffffff, NoFlag, 0x80000000, NVFlag},
-     {0x7ffffffe, NoFlag, 0x7fffffff, NoFlag},
-     {0x00000001, NoFlag, 0x00000002, NoFlag},
-     {0x00000000, ZFlag, 0x00000001, NoFlag}},
-    {{0x00000000, ZCFlag, 0x00000001, CFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0x80000002, NFlag, 0x80000003, NFlag},
-     {0x80000001, NFlag, 0x80000002, NFlag},
-     {0x80000000, NVFlag, 0x80000001, NVFlag},
-     {0x7fffffff, NoFlag, 0x80000000, NVFlag},
-     {0x00000002, NoFlag, 0x00000003, NoFlag},
-     {0x00000001, NoFlag, 0x00000002, NoFlag}},
-    {{0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
-     {0x7ffffffc, CFlag, 0x7ffffffd, CFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0xfffffffe, NFlag, 0xffffffff, NFlag},
-     {0xfffffffd, NVFlag, 0xfffffffe, NVFlag},
-     {0xfffffffc, NVFlag, 0xfffffffd, NVFlag},
-     {0x7fffffff, NoFlag, 0x80000000, NVFlag},
-     {0x7ffffffe, NoFlag, 0x7fffffff, NoFlag}},
-    {{0x7ffffffe, CFlag, 0x7fffffff, CFlag},
-     {0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
-     {0x00000000, ZCFlag, 0x00000001, CFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0xfffffffe, NVFlag, 0xffffffff, NVFlag},
-     {0xfffffffd, NVFlag, 0xfffffffe, NVFlag},
-     {0x80000000, NVFlag, 0x80000001, NVFlag},
-     {0x7fffffff, NoFlag, 0x80000000, NVFlag}},
-    {{0x7fffffff, CVFlag, 0x80000000, NCFlag},
-     {0x7ffffffe, CVFlag, 0x7fffffff, CVFlag},
-     {0x00000001, CVFlag, 0x00000002, CVFlag},
-     {0x00000000, ZCVFlag, 0x00000001, CVFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0xfffffffe, NFlag, 0xffffffff, NFlag},
-     {0x80000001, NFlag, 0x80000002, NFlag},
-     {0x80000000, NFlag, 0x80000001, NFlag}},
-    {{0x80000000, NCFlag, 0x80000001, NCFlag},
-     {0x7fffffff, CVFlag, 0x80000000, NCFlag},
-     {0x00000002, CVFlag, 0x00000003, CVFlag},
-     {0x00000001, CVFlag, 0x00000002, CVFlag},
-     {0x00000000, ZCFlag, 0x00000001, CFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0x80000002, NFlag, 0x80000003, NFlag},
-     {0x80000001, NFlag, 0x80000002, NFlag}},
-    {{0xfffffffd, NCFlag, 0xfffffffe, NCFlag},
-     {0xfffffffc, NCFlag, 0xfffffffd, NCFlag},
-     {0x7fffffff, CVFlag, 0x80000000, NCFlag},
-     {0x7ffffffe, CVFlag, 0x7fffffff, CVFlag},
-     {0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
-     {0x7ffffffc, CFlag, 0x7ffffffd, CFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag},
-     {0xfffffffe, NFlag, 0xffffffff, NFlag}},
-    {{0xfffffffe, NCFlag, 0xffffffff, NCFlag},
-     {0xfffffffd, NCFlag, 0xfffffffe, NCFlag},
-     {0x80000000, NCFlag, 0x80000001, NCFlag},
-     {0x7fffffff, CVFlag, 0x80000000, NCFlag},
-     {0x7ffffffe, CFlag, 0x7fffffff, CFlag},
-     {0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
-     {0x00000000, ZCFlag, 0x00000001, CFlag},
-     {0xffffffff, NFlag, 0x00000000, ZCFlag}}
-  };
+  static const Expected expected_sbcs_w[input_count][input_count] =
+      {{{0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0xfffffffe, NFlag, 0xffffffff, NFlag},
+        {0x80000001, NFlag, 0x80000002, NFlag},
+        {0x80000000, NFlag, 0x80000001, NFlag},
+        {0x7fffffff, NoFlag, 0x80000000, NVFlag},
+        {0x7ffffffe, NoFlag, 0x7fffffff, NoFlag},
+        {0x00000001, NoFlag, 0x00000002, NoFlag},
+        {0x00000000, ZFlag, 0x00000001, NoFlag}},
+       {{0x00000000, ZCFlag, 0x00000001, CFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0x80000002, NFlag, 0x80000003, NFlag},
+        {0x80000001, NFlag, 0x80000002, NFlag},
+        {0x80000000, NVFlag, 0x80000001, NVFlag},
+        {0x7fffffff, NoFlag, 0x80000000, NVFlag},
+        {0x00000002, NoFlag, 0x00000003, NoFlag},
+        {0x00000001, NoFlag, 0x00000002, NoFlag}},
+       {{0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
+        {0x7ffffffc, CFlag, 0x7ffffffd, CFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0xfffffffe, NFlag, 0xffffffff, NFlag},
+        {0xfffffffd, NVFlag, 0xfffffffe, NVFlag},
+        {0xfffffffc, NVFlag, 0xfffffffd, NVFlag},
+        {0x7fffffff, NoFlag, 0x80000000, NVFlag},
+        {0x7ffffffe, NoFlag, 0x7fffffff, NoFlag}},
+       {{0x7ffffffe, CFlag, 0x7fffffff, CFlag},
+        {0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
+        {0x00000000, ZCFlag, 0x00000001, CFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0xfffffffe, NVFlag, 0xffffffff, NVFlag},
+        {0xfffffffd, NVFlag, 0xfffffffe, NVFlag},
+        {0x80000000, NVFlag, 0x80000001, NVFlag},
+        {0x7fffffff, NoFlag, 0x80000000, NVFlag}},
+       {{0x7fffffff, CVFlag, 0x80000000, NCFlag},
+        {0x7ffffffe, CVFlag, 0x7fffffff, CVFlag},
+        {0x00000001, CVFlag, 0x00000002, CVFlag},
+        {0x00000000, ZCVFlag, 0x00000001, CVFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0xfffffffe, NFlag, 0xffffffff, NFlag},
+        {0x80000001, NFlag, 0x80000002, NFlag},
+        {0x80000000, NFlag, 0x80000001, NFlag}},
+       {{0x80000000, NCFlag, 0x80000001, NCFlag},
+        {0x7fffffff, CVFlag, 0x80000000, NCFlag},
+        {0x00000002, CVFlag, 0x00000003, CVFlag},
+        {0x00000001, CVFlag, 0x00000002, CVFlag},
+        {0x00000000, ZCFlag, 0x00000001, CFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0x80000002, NFlag, 0x80000003, NFlag},
+        {0x80000001, NFlag, 0x80000002, NFlag}},
+       {{0xfffffffd, NCFlag, 0xfffffffe, NCFlag},
+        {0xfffffffc, NCFlag, 0xfffffffd, NCFlag},
+        {0x7fffffff, CVFlag, 0x80000000, NCFlag},
+        {0x7ffffffe, CVFlag, 0x7fffffff, CVFlag},
+        {0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
+        {0x7ffffffc, CFlag, 0x7ffffffd, CFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag},
+        {0xfffffffe, NFlag, 0xffffffff, NFlag}},
+       {{0xfffffffe, NCFlag, 0xffffffff, NCFlag},
+        {0xfffffffd, NCFlag, 0xfffffffe, NCFlag},
+        {0x80000000, NCFlag, 0x80000001, NCFlag},
+        {0x7fffffff, CVFlag, 0x80000000, NCFlag},
+        {0x7ffffffe, CFlag, 0x7fffffff, CFlag},
+        {0x7ffffffd, CFlag, 0x7ffffffe, CFlag},
+        {0x00000000, ZCFlag, 0x00000001, CFlag},
+        {0xffffffff, NFlag, 0x00000000, ZCFlag}}};
 
   for (size_t left = 0; left < input_count; left++) {
     for (size_t right = 0; right < input_count; right++) {
-      const Expected & expected = expected_adcs_w[left][right];
-      AdcsSbcsHelper(&MacroAssembler::Adcs, inputs[left], inputs[right], 0,
-                     expected.carry0_result, expected.carry0_flags);
-      AdcsSbcsHelper(&MacroAssembler::Adcs, inputs[left], inputs[right], 1,
-                     expected.carry1_result, expected.carry1_flags);
+      const Expected& expected = expected_adcs_w[left][right];
+      AdcsSbcsHelper(&MacroAssembler::Adcs,
+                     inputs[left],
+                     inputs[right],
+                     0,
+                     expected.carry0_result,
+                     expected.carry0_flags);
+      AdcsSbcsHelper(&MacroAssembler::Adcs,
+                     inputs[left],
+                     inputs[right],
+                     1,
+                     expected.carry1_result,
+                     expected.carry1_flags);
     }
   }
 
   for (size_t left = 0; left < input_count; left++) {
     for (size_t right = 0; right < input_count; right++) {
-      const Expected & expected = expected_sbcs_w[left][right];
-      AdcsSbcsHelper(&MacroAssembler::Sbcs, inputs[left], inputs[right], 0,
-                     expected.carry0_result, expected.carry0_flags);
-      AdcsSbcsHelper(&MacroAssembler::Sbcs, inputs[left], inputs[right], 1,
-                     expected.carry1_result, expected.carry1_flags);
+      const Expected& expected = expected_sbcs_w[left][right];
+      AdcsSbcsHelper(&MacroAssembler::Sbcs,
+                     inputs[left],
+                     inputs[right],
+                     0,
+                     expected.carry0_result,
+                     expected.carry0_flags);
+      AdcsSbcsHelper(&MacroAssembler::Sbcs,
+                     inputs[left],
+                     inputs[right],
+                     1,
+                     expected.carry1_result,
+                     expected.carry1_flags);
     }
   }
 }
@@ -8794,7 +8993,6 @@
 
 TEST(ccmp) {
   SETUP();
-  ALLOW_ASM();
 
   START();
   __ Mov(w16, 0);
@@ -8816,11 +9014,17 @@
   __ Mrs(x3, NZCV);
 
   // The MacroAssembler does not allow al as a condition.
-  __ ccmp(x16, x16, NZCVFlag, al);
+  {
+    ExactAssemblyScope scope(&masm, kInstructionSize);
+    __ ccmp(x16, x16, NZCVFlag, al);
+  }
   __ Mrs(x4, NZCV);
 
   // The MacroAssembler does not allow nv as a condition.
-  __ ccmp(x16, x16, NZCVFlag, nv);
+  {
+    ExactAssemblyScope scope(&masm, kInstructionSize);
+    __ ccmp(x16, x16, NZCVFlag, nv);
+  }
   __ Mrs(x5, NZCV);
 
   END();
@@ -8907,7 +9111,6 @@
 
 TEST(csel_reg) {
   SETUP();
-  ALLOW_ASM();
 
   START();
   __ Mov(x16, 0);
@@ -8921,8 +9124,11 @@
   __ Csinc(w3, w24, w25, pl);
 
   // The MacroAssembler does not allow al or nv as a condition.
-  __ csel(w13, w24, w25, al);
-  __ csel(x14, x24, x25, nv);
+  {
+    ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+    __ csel(w13, w24, w25, al);
+    __ csel(x14, x24, x25, nv);
+  }
 
   __ Cmp(x16, Operand(1));
   __ Csinv(x4, x24, x25, gt);
@@ -8937,8 +9143,11 @@
   __ Cneg(x12, x24, ne);
 
   // The MacroAssembler does not allow al or nv as a condition.
-  __ csel(w15, w24, w25, al);
-  __ csel(x17, x24, x25, nv);
+  {
+    ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+    __ csel(w15, w24, w25, al);
+    __ csel(x17, x24, x25, nv);
+  }
 
   END();
 
@@ -9055,7 +9264,6 @@
 
 TEST(lslv) {
   SETUP();
-  ALLOW_ASM();
 
   uint64_t value = 0x0123456789abcdef;
   int shift[] = {1, 3, 5, 9, 17, 33};
@@ -9070,7 +9278,10 @@
   __ Mov(w6, shift[5]);
 
   // The MacroAssembler does not allow zr as an argument.
-  __ lslv(x0, x0, xzr);
+  {
+    ExactAssemblyScope scope(&masm, kInstructionSize);
+    __ lslv(x0, x0, xzr);
+  }
 
   __ Lsl(x16, x0, x1);
   __ Lsl(x17, x0, x2);
@@ -9109,7 +9320,6 @@
 
 TEST(lsrv) {
   SETUP();
-  ALLOW_ASM();
 
   uint64_t value = 0x0123456789abcdef;
   int shift[] = {1, 3, 5, 9, 17, 33};
@@ -9124,7 +9334,10 @@
   __ Mov(w6, shift[5]);
 
   // The MacroAssembler does not allow zr as an argument.
-  __ lsrv(x0, x0, xzr);
+  {
+    ExactAssemblyScope scope(&masm, kInstructionSize);
+    __ lsrv(x0, x0, xzr);
+  }
 
   __ Lsr(x16, x0, x1);
   __ Lsr(x17, x0, x2);
@@ -9165,7 +9378,6 @@
 
 TEST(asrv) {
   SETUP();
-  ALLOW_ASM();
 
   int64_t value = 0xfedcba98fedcba98;
   int shift[] = {1, 3, 5, 9, 17, 33};
@@ -9180,7 +9392,10 @@
   __ Mov(w6, shift[5]);
 
   // The MacroAssembler does not allow zr as an argument.
-  __ asrv(x0, x0, xzr);
+  {
+    ExactAssemblyScope scope(&masm, kInstructionSize);
+    __ asrv(x0, x0, xzr);
+  }
 
   __ Asr(x16, x0, x1);
   __ Asr(x17, x0, x2);
@@ -9221,7 +9436,6 @@
 
 TEST(rorv) {
   SETUP();
-  ALLOW_ASM();
 
   uint64_t value = 0x0123456789abcdef;
   int shift[] = {4, 8, 12, 16, 24, 36};
@@ -9236,7 +9450,10 @@
   __ Mov(w6, shift[5]);
 
   // The MacroAssembler does not allow zr as an argument.
-  __ rorv(x0, x0, xzr);
+  {
+    ExactAssemblyScope scope(&masm, kInstructionSize);
+    __ rorv(x0, x0, xzr);
+  }
 
   __ Ror(x16, x0, x1);
   __ Ror(x17, x0, x2);
@@ -9275,7 +9492,6 @@
 
 TEST(bfm) {
   SETUP();
-  ALLOW_ASM();
 
   START();
   __ Mov(x1, 0x0123456789abcdef);
@@ -9287,7 +9503,6 @@
   __ Mov(w20, 0x88888888);
   __ Mov(w21, 0x88888888);
 
-  // There are no macro instruction for bfm.
   __ Bfm(x10, x1, 16, 31);
   __ Bfm(x11, x1, 32, 15);
 
@@ -9317,13 +9532,11 @@
 
 TEST(sbfm) {
   SETUP();
-  ALLOW_ASM();
 
   START();
   __ Mov(x1, 0x0123456789abcdef);
   __ Mov(x2, 0xfedcba9876543210);
 
-  // There are no macro instruction for sbfm.
   __ Sbfm(x10, x1, 16, 31);
   __ Sbfm(x11, x1, 32, 15);
   __ Sbfm(x12, x1, 32, 47);
@@ -9381,7 +9594,6 @@
 
 TEST(ubfm) {
   SETUP();
-  ALLOW_ASM();
 
   START();
   __ Mov(x1, 0x0123456789abcdef);
@@ -9390,7 +9602,6 @@
   __ Mov(x10, 0x8888888888888888);
   __ Mov(x11, 0x8888888888888888);
 
-  // There are no macro instruction for ubfm.
   __ Ubfm(x10, x1, 16, 31);
   __ Ubfm(x11, x1, 32, 15);
   __ Ubfm(x12, x1, 32, 47);
@@ -9706,9 +9917,13 @@
 }
 
 
-static void FmaddFmsubHelper(double n, double m, double a,
-                             double fmadd, double fmsub,
-                             double fnmadd, double fnmsub) {
+static void FmaddFmsubHelper(double n,
+                             double m,
+                             double a,
+                             double fmadd,
+                             double fmsub,
+                             double fnmadd,
+                             double fnmsub) {
   SETUP();
   START();
 
@@ -9742,28 +9957,40 @@
 
   // Check the sign of exact zeroes.
   //               n     m     a     fmadd  fmsub  fnmadd fnmsub
-  FmaddFmsubHelper(-0.0, +0.0, -0.0, -0.0,  +0.0,  +0.0,  +0.0);
-  FmaddFmsubHelper(+0.0, +0.0, -0.0, +0.0,  -0.0,  +0.0,  +0.0);
-  FmaddFmsubHelper(+0.0, +0.0, +0.0, +0.0,  +0.0,  -0.0,  +0.0);
-  FmaddFmsubHelper(-0.0, +0.0, +0.0, +0.0,  +0.0,  +0.0,  -0.0);
-  FmaddFmsubHelper(+0.0, -0.0, -0.0, -0.0,  +0.0,  +0.0,  +0.0);
-  FmaddFmsubHelper(-0.0, -0.0, -0.0, +0.0,  -0.0,  +0.0,  +0.0);
-  FmaddFmsubHelper(-0.0, -0.0, +0.0, +0.0,  +0.0,  -0.0,  +0.0);
-  FmaddFmsubHelper(+0.0, -0.0, +0.0, +0.0,  +0.0,  +0.0,  -0.0);
+  FmaddFmsubHelper(-0.0, +0.0, -0.0, -0.0, +0.0, +0.0, +0.0);
+  FmaddFmsubHelper(+0.0, +0.0, -0.0, +0.0, -0.0, +0.0, +0.0);
+  FmaddFmsubHelper(+0.0, +0.0, +0.0, +0.0, +0.0, -0.0, +0.0);
+  FmaddFmsubHelper(-0.0, +0.0, +0.0, +0.0, +0.0, +0.0, -0.0);
+  FmaddFmsubHelper(+0.0, -0.0, -0.0, -0.0, +0.0, +0.0, +0.0);
+  FmaddFmsubHelper(-0.0, -0.0, -0.0, +0.0, -0.0, +0.0, +0.0);
+  FmaddFmsubHelper(-0.0, -0.0, +0.0, +0.0, +0.0, -0.0, +0.0);
+  FmaddFmsubHelper(+0.0, -0.0, +0.0, +0.0, +0.0, +0.0, -0.0);
 
   // Check NaN generation.
-  FmaddFmsubHelper(kFP64PositiveInfinity, 0.0, 42.0,
-                   kFP64DefaultNaN, kFP64DefaultNaN,
-                   kFP64DefaultNaN, kFP64DefaultNaN);
-  FmaddFmsubHelper(0.0, kFP64PositiveInfinity, 42.0,
-                   kFP64DefaultNaN, kFP64DefaultNaN,
-                   kFP64DefaultNaN, kFP64DefaultNaN);
-  FmaddFmsubHelper(kFP64PositiveInfinity, 1.0, kFP64PositiveInfinity,
-                   kFP64PositiveInfinity,   //  inf + ( inf * 1) = inf
-                   kFP64DefaultNaN,         //  inf + (-inf * 1) = NaN
-                   kFP64NegativeInfinity,   // -inf + (-inf * 1) = -inf
-                   kFP64DefaultNaN);        // -inf + ( inf * 1) = NaN
-  FmaddFmsubHelper(kFP64NegativeInfinity, 1.0, kFP64PositiveInfinity,
+  FmaddFmsubHelper(kFP64PositiveInfinity,
+                   0.0,
+                   42.0,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN);
+  FmaddFmsubHelper(0.0,
+                   kFP64PositiveInfinity,
+                   42.0,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN);
+  FmaddFmsubHelper(kFP64PositiveInfinity,
+                   1.0,
+                   kFP64PositiveInfinity,
+                   kFP64PositiveInfinity,  //  inf + ( inf * 1) = inf
+                   kFP64DefaultNaN,        //  inf + (-inf * 1) = NaN
+                   kFP64NegativeInfinity,  // -inf + (-inf * 1) = -inf
+                   kFP64DefaultNaN);       // -inf + ( inf * 1) = NaN
+  FmaddFmsubHelper(kFP64NegativeInfinity,
+                   1.0,
+                   kFP64PositiveInfinity,
                    kFP64DefaultNaN,         //  inf + (-inf * 1) = NaN
                    kFP64PositiveInfinity,   //  inf + ( inf * 1) = inf
                    kFP64DefaultNaN,         // -inf + ( inf * 1) = NaN
@@ -9771,9 +9998,13 @@
 }
 
 
-static void FmaddFmsubHelper(float n, float m, float a,
-                             float fmadd, float fmsub,
-                             float fnmadd, float fnmsub) {
+static void FmaddFmsubHelper(float n,
+                             float m,
+                             float a,
+                             float fmadd,
+                             float fmsub,
+                             float fnmadd,
+                             float fnmsub) {
   SETUP();
   START();
 
@@ -9817,18 +10048,30 @@
   FmaddFmsubHelper(+0.0f, -0.0f, +0.0f, +0.0f, +0.0f, +0.0f, -0.0f);
 
   // Check NaN generation.
-  FmaddFmsubHelper(kFP32PositiveInfinity, 0.0f, 42.0f,
-                   kFP32DefaultNaN, kFP32DefaultNaN,
-                   kFP32DefaultNaN, kFP32DefaultNaN);
-  FmaddFmsubHelper(0.0f, kFP32PositiveInfinity, 42.0f,
-                   kFP32DefaultNaN, kFP32DefaultNaN,
-                   kFP32DefaultNaN, kFP32DefaultNaN);
-  FmaddFmsubHelper(kFP32PositiveInfinity, 1.0f, kFP32PositiveInfinity,
-                   kFP32PositiveInfinity,   //  inf + ( inf * 1) = inf
-                   kFP32DefaultNaN,         //  inf + (-inf * 1) = NaN
-                   kFP32NegativeInfinity,   // -inf + (-inf * 1) = -inf
-                   kFP32DefaultNaN);        // -inf + ( inf * 1) = NaN
-  FmaddFmsubHelper(kFP32NegativeInfinity, 1.0f, kFP32PositiveInfinity,
+  FmaddFmsubHelper(kFP32PositiveInfinity,
+                   0.0f,
+                   42.0f,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN);
+  FmaddFmsubHelper(0.0f,
+                   kFP32PositiveInfinity,
+                   42.0f,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN);
+  FmaddFmsubHelper(kFP32PositiveInfinity,
+                   1.0f,
+                   kFP32PositiveInfinity,
+                   kFP32PositiveInfinity,  //  inf + ( inf * 1) = inf
+                   kFP32DefaultNaN,        //  inf + (-inf * 1) = NaN
+                   kFP32NegativeInfinity,  // -inf + (-inf * 1) = -inf
+                   kFP32DefaultNaN);       // -inf + ( inf * 1) = NaN
+  FmaddFmsubHelper(kFP32NegativeInfinity,
+                   1.0f,
+                   kFP32PositiveInfinity,
                    kFP32DefaultNaN,         //  inf + (-inf * 1) = NaN
                    kFP32PositiveInfinity,   //  inf + ( inf * 1) = inf
                    kFP32DefaultNaN,         // -inf + ( inf * 1) = NaN
@@ -9903,18 +10146,34 @@
   FmaddFmsubHelper(s1, s2, sa, sa_proc, sa_proc, sa_proc_neg, sa_proc_neg);
 
   // A NaN generated by the intermediate op1 * op2 overrides a quiet NaN in a.
-  FmaddFmsubHelper(0, kFP64PositiveInfinity, qa,
-                   kFP64DefaultNaN, kFP64DefaultNaN,
-                   kFP64DefaultNaN, kFP64DefaultNaN);
-  FmaddFmsubHelper(kFP64PositiveInfinity, 0, qa,
-                   kFP64DefaultNaN, kFP64DefaultNaN,
-                   kFP64DefaultNaN, kFP64DefaultNaN);
-  FmaddFmsubHelper(0, kFP64NegativeInfinity, qa,
-                   kFP64DefaultNaN, kFP64DefaultNaN,
-                   kFP64DefaultNaN, kFP64DefaultNaN);
-  FmaddFmsubHelper(kFP64NegativeInfinity, 0, qa,
-                   kFP64DefaultNaN, kFP64DefaultNaN,
-                   kFP64DefaultNaN, kFP64DefaultNaN);
+  FmaddFmsubHelper(0,
+                   kFP64PositiveInfinity,
+                   qa,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN);
+  FmaddFmsubHelper(kFP64PositiveInfinity,
+                   0,
+                   qa,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN);
+  FmaddFmsubHelper(0,
+                   kFP64NegativeInfinity,
+                   qa,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN);
+  FmaddFmsubHelper(kFP64NegativeInfinity,
+                   0,
+                   qa,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN,
+                   kFP64DefaultNaN);
 }
 
 
@@ -9985,18 +10244,34 @@
   FmaddFmsubHelper(s1, s2, sa, sa_proc, sa_proc, sa_proc_neg, sa_proc_neg);
 
   // A NaN generated by the intermediate op1 * op2 overrides a quiet NaN in a.
-  FmaddFmsubHelper(0, kFP32PositiveInfinity, qa,
-                   kFP32DefaultNaN, kFP32DefaultNaN,
-                   kFP32DefaultNaN, kFP32DefaultNaN);
-  FmaddFmsubHelper(kFP32PositiveInfinity, 0, qa,
-                   kFP32DefaultNaN, kFP32DefaultNaN,
-                   kFP32DefaultNaN, kFP32DefaultNaN);
-  FmaddFmsubHelper(0, kFP32NegativeInfinity, qa,
-                   kFP32DefaultNaN, kFP32DefaultNaN,
-                   kFP32DefaultNaN, kFP32DefaultNaN);
-  FmaddFmsubHelper(kFP32NegativeInfinity, 0, qa,
-                   kFP32DefaultNaN, kFP32DefaultNaN,
-                   kFP32DefaultNaN, kFP32DefaultNaN);
+  FmaddFmsubHelper(0,
+                   kFP32PositiveInfinity,
+                   qa,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN);
+  FmaddFmsubHelper(kFP32PositiveInfinity,
+                   0,
+                   qa,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN);
+  FmaddFmsubHelper(0,
+                   kFP32NegativeInfinity,
+                   qa,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN);
+  FmaddFmsubHelper(kFP32NegativeInfinity,
+                   0,
+                   qa,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN,
+                   kFP32DefaultNaN);
 }
 
 
@@ -10090,8 +10365,7 @@
     }
   }
 
-  if ((n == 0.0) && (m == 0.0) &&
-      (copysign(1.0, n) != copysign(1.0, m))) {
+  if ((n == 0.0) && (m == 0.0) && (copysign(1.0, n) != copysign(1.0, m))) {
     return min ? -0.0 : 0.0;
   }
 
@@ -10132,8 +10406,7 @@
     }
   }
 
-  if ((n == 0.0) && (m == 0.0) &&
-      (copysign(1.0, n) != copysign(1.0, m))) {
+  if ((n == 0.0) && (m == 0.0) && (copysign(1.0, n) != copysign(1.0, m))) {
     return min ? -0.0 : 0.0;
   }
 
@@ -10141,8 +10414,8 @@
 }
 
 
-static void FminFmaxDoubleHelper(double n, double m, double min, double max,
-                                 double minnm, double maxnm) {
+static void FminFmaxDoubleHelper(
+    double n, double m, double min, double max, double minnm, double maxnm) {
   SETUP();
 
   START();
@@ -10181,33 +10454,52 @@
   // Bootstrap tests.
   FminFmaxDoubleHelper(0, 0, 0, 0, 0, 0);
   FminFmaxDoubleHelper(0, 1, 0, 1, 0, 1);
-  FminFmaxDoubleHelper(kFP64PositiveInfinity, kFP64NegativeInfinity,
-                       kFP64NegativeInfinity, kFP64PositiveInfinity,
-                       kFP64NegativeInfinity, kFP64PositiveInfinity);
-  FminFmaxDoubleHelper(snan, 0,
-                       snan_processed, snan_processed,
-                       snan_processed, snan_processed);
-  FminFmaxDoubleHelper(0, snan,
-                       snan_processed, snan_processed,
-                       snan_processed, snan_processed);
-  FminFmaxDoubleHelper(qnan, 0,
-                       qnan_processed, qnan_processed,
-                       0, 0);
-  FminFmaxDoubleHelper(0, qnan,
-                       qnan_processed, qnan_processed,
-                       0, 0);
-  FminFmaxDoubleHelper(qnan, snan,
-                       snan_processed, snan_processed,
-                       snan_processed, snan_processed);
-  FminFmaxDoubleHelper(snan, qnan,
-                       snan_processed, snan_processed,
-                       snan_processed, snan_processed);
+  FminFmaxDoubleHelper(kFP64PositiveInfinity,
+                       kFP64NegativeInfinity,
+                       kFP64NegativeInfinity,
+                       kFP64PositiveInfinity,
+                       kFP64NegativeInfinity,
+                       kFP64PositiveInfinity);
+  FminFmaxDoubleHelper(snan,
+                       0,
+                       snan_processed,
+                       snan_processed,
+                       snan_processed,
+                       snan_processed);
+  FminFmaxDoubleHelper(0,
+                       snan,
+                       snan_processed,
+                       snan_processed,
+                       snan_processed,
+                       snan_processed);
+  FminFmaxDoubleHelper(qnan, 0, qnan_processed, qnan_processed, 0, 0);
+  FminFmaxDoubleHelper(0, qnan, qnan_processed, qnan_processed, 0, 0);
+  FminFmaxDoubleHelper(qnan,
+                       snan,
+                       snan_processed,
+                       snan_processed,
+                       snan_processed,
+                       snan_processed);
+  FminFmaxDoubleHelper(snan,
+                       qnan,
+                       snan_processed,
+                       snan_processed,
+                       snan_processed,
+                       snan_processed);
 
   // Iterate over all combinations of inputs.
-  double inputs[] = { DBL_MAX, DBL_MIN, 1.0, 0.0,
-                      -DBL_MAX, -DBL_MIN, -1.0, -0.0,
-                      kFP64PositiveInfinity, kFP64NegativeInfinity,
-                      kFP64QuietNaN, kFP64SignallingNaN };
+  double inputs[] = {DBL_MAX,
+                     DBL_MIN,
+                     1.0,
+                     0.0,
+                     -DBL_MAX,
+                     -DBL_MIN,
+                     -1.0,
+                     -0.0,
+                     kFP64PositiveInfinity,
+                     kFP64NegativeInfinity,
+                     kFP64QuietNaN,
+                     kFP64SignallingNaN};
 
   const int count = sizeof(inputs) / sizeof(inputs[0]);
 
@@ -10215,7 +10507,8 @@
     double n = inputs[in];
     for (int im = 0; im < count; im++) {
       double m = inputs[im];
-      FminFmaxDoubleHelper(n, m,
+      FminFmaxDoubleHelper(n,
+                           m,
                            MinMaxHelper(n, m, true),
                            MinMaxHelper(n, m, false),
                            MinMaxHelper(n, m, true, kFP64PositiveInfinity),
@@ -10225,8 +10518,8 @@
 }
 
 
-static void FminFmaxFloatHelper(float n, float m, float min, float max,
-                                float minnm, float maxnm) {
+static void FminFmaxFloatHelper(
+    float n, float m, float min, float max, float minnm, float maxnm) {
   SETUP();
 
   START();
@@ -10265,33 +10558,52 @@
   // Bootstrap tests.
   FminFmaxFloatHelper(0, 0, 0, 0, 0, 0);
   FminFmaxFloatHelper(0, 1, 0, 1, 0, 1);
-  FminFmaxFloatHelper(kFP32PositiveInfinity, kFP32NegativeInfinity,
-                      kFP32NegativeInfinity, kFP32PositiveInfinity,
-                      kFP32NegativeInfinity, kFP32PositiveInfinity);
-  FminFmaxFloatHelper(snan, 0,
-                      snan_processed, snan_processed,
-                      snan_processed, snan_processed);
-  FminFmaxFloatHelper(0, snan,
-                      snan_processed, snan_processed,
-                      snan_processed, snan_processed);
-  FminFmaxFloatHelper(qnan, 0,
-                      qnan_processed, qnan_processed,
-                      0, 0);
-  FminFmaxFloatHelper(0, qnan,
-                      qnan_processed, qnan_processed,
-                      0, 0);
-  FminFmaxFloatHelper(qnan, snan,
-                      snan_processed, snan_processed,
-                      snan_processed, snan_processed);
-  FminFmaxFloatHelper(snan, qnan,
-                      snan_processed, snan_processed,
-                      snan_processed, snan_processed);
+  FminFmaxFloatHelper(kFP32PositiveInfinity,
+                      kFP32NegativeInfinity,
+                      kFP32NegativeInfinity,
+                      kFP32PositiveInfinity,
+                      kFP32NegativeInfinity,
+                      kFP32PositiveInfinity);
+  FminFmaxFloatHelper(snan,
+                      0,
+                      snan_processed,
+                      snan_processed,
+                      snan_processed,
+                      snan_processed);
+  FminFmaxFloatHelper(0,
+                      snan,
+                      snan_processed,
+                      snan_processed,
+                      snan_processed,
+                      snan_processed);
+  FminFmaxFloatHelper(qnan, 0, qnan_processed, qnan_processed, 0, 0);
+  FminFmaxFloatHelper(0, qnan, qnan_processed, qnan_processed, 0, 0);
+  FminFmaxFloatHelper(qnan,
+                      snan,
+                      snan_processed,
+                      snan_processed,
+                      snan_processed,
+                      snan_processed);
+  FminFmaxFloatHelper(snan,
+                      qnan,
+                      snan_processed,
+                      snan_processed,
+                      snan_processed,
+                      snan_processed);
 
   // Iterate over all combinations of inputs.
-  float inputs[] = { FLT_MAX, FLT_MIN, 1.0, 0.0,
-                     -FLT_MAX, -FLT_MIN, -1.0, -0.0,
-                     kFP32PositiveInfinity, kFP32NegativeInfinity,
-                     kFP32QuietNaN, kFP32SignallingNaN };
+  float inputs[] = {FLT_MAX,
+                    FLT_MIN,
+                    1.0,
+                    0.0,
+                    -FLT_MAX,
+                    -FLT_MIN,
+                    -1.0,
+                    -0.0,
+                    kFP32PositiveInfinity,
+                    kFP32NegativeInfinity,
+                    kFP32QuietNaN,
+                    kFP32SignallingNaN};
 
   const int count = sizeof(inputs) / sizeof(inputs[0]);
 
@@ -10299,7 +10611,8 @@
     float n = inputs[in];
     for (int im = 0; im < count; im++) {
       float m = inputs[im];
-      FminFmaxFloatHelper(n, m,
+      FminFmaxFloatHelper(n,
+                          m,
                           MinMaxHelper(n, m, true),
                           MinMaxHelper(n, m, false),
                           MinMaxHelper(n, m, true, kFP32PositiveInfinity),
@@ -10311,7 +10624,6 @@
 
 TEST(fccmp) {
   SETUP();
-  ALLOW_ASM();
 
   START();
   __ Fmov(s16, 0.0);
@@ -10357,10 +10669,16 @@
   __ Mrs(x7, NZCV);
 
   // The Macro Assembler does not allow al or nv as condition.
-  __ fccmp(s16, s16, NFlag, al);
+  {
+    ExactAssemblyScope scope(&masm, kInstructionSize);
+    __ fccmp(s16, s16, NFlag, al);
+  }
   __ Mrs(x8, NZCV);
 
-  __ fccmp(d18, d18, NFlag, nv);
+  {
+    ExactAssemblyScope scope(&masm, kInstructionSize);
+    __ fccmp(d18, d18, NFlag, nv);
+  }
   __ Mrs(x9, NZCV);
 
   __ Cmp(x20, 0);
@@ -10502,7 +10820,6 @@
 
 TEST(fcsel) {
   SETUP();
-  ALLOW_ASM();
 
   START();
   __ Mov(x16, 0);
@@ -10517,8 +10834,11 @@
   __ Fcsel(d2, d18, d19, eq);
   __ Fcsel(d3, d18, d19, ne);
   // The Macro Assembler does not allow al or nv as condition.
-  __ fcsel(s4, s16, s17, al);
-  __ fcsel(d5, d18, d19, nv);
+  {
+    ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+    __ fcsel(s4, s16, s17, al);
+    __ fcsel(d5, d18, d19, nv);
+  }
   END();
 
   RUN();
@@ -11301,8 +11621,8 @@
   __ Fmov(s26, -0.0);
   __ Fmov(s27, FLT_MAX);
   __ Fmov(s28, FLT_MIN);
-  __ Fmov(s29, RawbitsToFloat(0x7fc12345));   // Quiet NaN.
-  __ Fmov(s30, RawbitsToFloat(0x7f812345));   // Signalling NaN.
+  __ Fmov(s29, RawbitsToFloat(0x7fc12345));  // Quiet NaN.
+  __ Fmov(s30, RawbitsToFloat(0x7f812345));  // Signalling NaN.
 
   __ Fcvt(d0, s16);
   __ Fcvt(d1, s17);
@@ -11370,8 +11690,8 @@
   __ Fmov(d26, -0.0);
   __ Fmov(d27, FLT_MAX);
   __ Fmov(d28, FLT_MIN);
-  __ Fmov(d29, RawbitsToDouble(0x7ff82468a0000000));   // Quiet NaN.
-  __ Fmov(d30, RawbitsToDouble(0x7ff02468a0000000));   // Signalling NaN.
+  __ Fmov(d29, RawbitsToDouble(0x7ff82468a0000000));  // Quiet NaN.
+  __ Fmov(d30, RawbitsToDouble(0x7ff02468a0000000));  // Signalling NaN.
 
   __ Fcvt(s0, d16);
   __ Fcvt(s1, d17);
@@ -11548,15 +11868,15 @@
   __ Fmov(s19, -2.5);
   __ Fmov(s20, kFP32PositiveInfinity);
   __ Fmov(s21, kFP32NegativeInfinity);
-  __ Fmov(s22, 0x7fffff8000000000);     // Largest float < INT64_MAX.
-  __ Fneg(s23, s22);                    // Smallest float > INT64_MIN.
+  __ Fmov(s22, 0x7fffff8000000000);  // Largest float < INT64_MAX.
+  __ Fneg(s23, s22);                 // Smallest float > INT64_MIN.
   __ Fmov(d24, 1.1);
   __ Fmov(d25, 2.5);
   __ Fmov(d26, -2.5);
   __ Fmov(d27, kFP64PositiveInfinity);
   __ Fmov(d28, kFP64NegativeInfinity);
-  __ Fmov(d29, 0x7ffffffffffffc00);     // Largest double < INT64_MAX.
-  __ Fneg(d30, d29);                    // Smallest double > INT64_MIN.
+  __ Fmov(d29, 0x7ffffffffffffc00);  // Largest double < INT64_MAX.
+  __ Fneg(d30, d29);                 // Smallest double > INT64_MIN.
 
   __ Fcvtas(w0, s0);
   __ Fcvtas(w1, s1);
@@ -11736,8 +12056,8 @@
   __ Fmov(s3, -1.5);
   __ Fmov(s4, kFP32PositiveInfinity);
   __ Fmov(s5, kFP32NegativeInfinity);
-  __ Fmov(s6, 0x7fffff80);                    // Largest float < INT32_MAX.
-  __ Fneg(s7, s6);                            // Smallest float > INT32_MIN.
+  __ Fmov(s6, 0x7fffff80);  // Largest float < INT32_MAX.
+  __ Fneg(s7, s6);          // Smallest float > INT32_MIN.
   __ Fmov(d8, 1.0);
   __ Fmov(d9, 1.1);
   __ Fmov(d10, 1.5);
@@ -11751,15 +12071,15 @@
   __ Fmov(s19, -1.5);
   __ Fmov(s20, kFP32PositiveInfinity);
   __ Fmov(s21, kFP32NegativeInfinity);
-  __ Fmov(s22, 0x7fffff8000000000);           // Largest float < INT64_MAX.
-  __ Fneg(s23, s22);                          // Smallest float > INT64_MIN.
+  __ Fmov(s22, 0x7fffff8000000000);  // Largest float < INT64_MAX.
+  __ Fneg(s23, s22);                 // Smallest float > INT64_MIN.
   __ Fmov(d24, 1.1);
   __ Fmov(d25, 1.5);
   __ Fmov(d26, -1.5);
   __ Fmov(d27, kFP64PositiveInfinity);
   __ Fmov(d28, kFP64NegativeInfinity);
-  __ Fmov(d29, 0x7ffffffffffffc00);           // Largest double < INT64_MAX.
-  __ Fneg(d30, d29);                          // Smallest double > INT64_MIN.
+  __ Fmov(d29, 0x7ffffffffffffc00);  // Largest double < INT64_MAX.
+  __ Fneg(d30, d29);                 // Smallest double > INT64_MIN.
 
   __ Fcvtms(w0, s0);
   __ Fcvtms(w1, s1);
@@ -11840,8 +12160,8 @@
   __ Fmov(s3, -1.5);
   __ Fmov(s4, kFP32PositiveInfinity);
   __ Fmov(s5, kFP32NegativeInfinity);
-  __ Fmov(s6, 0x7fffff80);                    // Largest float < INT32_MAX.
-  __ Fneg(s7, s6);                            // Smallest float > INT32_MIN.
+  __ Fmov(s6, 0x7fffff80);  // Largest float < INT32_MAX.
+  __ Fneg(s7, s6);          // Smallest float > INT32_MIN.
   __ Fmov(d8, 1.0);
   __ Fmov(d9, 1.1);
   __ Fmov(d10, 1.5);
@@ -11855,15 +12175,15 @@
   __ Fmov(s19, -1.5);
   __ Fmov(s20, kFP32PositiveInfinity);
   __ Fmov(s21, kFP32NegativeInfinity);
-  __ Fmov(s22, 0x7fffff8000000000);           // Largest float < INT64_MAX.
-  __ Fneg(s23, s22);                          // Smallest float > INT64_MIN.
+  __ Fmov(s22, 0x7fffff8000000000);  // Largest float < INT64_MAX.
+  __ Fneg(s23, s22);                 // Smallest float > INT64_MIN.
   __ Fmov(d24, 1.1);
   __ Fmov(d25, 1.5);
   __ Fmov(d26, -1.5);
   __ Fmov(d27, kFP64PositiveInfinity);
   __ Fmov(d28, kFP64NegativeInfinity);
-  __ Fmov(d29, 0x7ffffffffffffc00);           // Largest double < INT64_MAX.
-  __ Fneg(d30, d29);                          // Smallest double > INT64_MIN.
+  __ Fmov(d29, 0x7ffffffffffffc00);  // Largest double < INT64_MAX.
+  __ Fneg(d30, d29);                 // Smallest double > INT64_MIN.
 
   __ Fcvtmu(w0, s0);
   __ Fcvtmu(w1, s1);
@@ -11942,8 +12262,8 @@
   __ Fmov(s3, -1.5);
   __ Fmov(s4, kFP32PositiveInfinity);
   __ Fmov(s5, kFP32NegativeInfinity);
-  __ Fmov(s6, 0x7fffff80);                    // Largest float < INT32_MAX.
-  __ Fneg(s7, s6);                            // Smallest float > INT32_MIN.
+  __ Fmov(s6, 0x7fffff80);  // Largest float < INT32_MAX.
+  __ Fneg(s7, s6);          // Smallest float > INT32_MIN.
   __ Fmov(d8, 1.0);
   __ Fmov(d9, 1.1);
   __ Fmov(d10, 1.5);
@@ -11957,15 +12277,15 @@
   __ Fmov(s19, -1.5);
   __ Fmov(s20, kFP32PositiveInfinity);
   __ Fmov(s21, kFP32NegativeInfinity);
-  __ Fmov(s22, 0x7fffff8000000000);           // Largest float < INT64_MAX.
-  __ Fneg(s23, s22);                          // Smallest float > INT64_MIN.
+  __ Fmov(s22, 0x7fffff8000000000);  // Largest float < INT64_MAX.
+  __ Fneg(s23, s22);                 // Smallest float > INT64_MIN.
   __ Fmov(d24, 1.1);
   __ Fmov(d25, 1.5);
   __ Fmov(d26, -1.5);
   __ Fmov(d27, kFP64PositiveInfinity);
   __ Fmov(d28, kFP64NegativeInfinity);
-  __ Fmov(d29, 0x7ffffffffffffc00);           // Largest double < INT64_MAX.
-  __ Fneg(d30, d29);                          // Smallest double > INT64_MIN.
+  __ Fmov(d29, 0x7ffffffffffffc00);  // Largest double < INT64_MAX.
+  __ Fneg(d30, d29);                 // Smallest double > INT64_MIN.
 
   __ Fcvtns(w0, s0);
   __ Fcvtns(w1, s1);
@@ -12145,8 +12465,8 @@
   __ Fmov(s3, -1.5);
   __ Fmov(s4, kFP32PositiveInfinity);
   __ Fmov(s5, kFP32NegativeInfinity);
-  __ Fmov(s6, 0x7fffff80);                    // Largest float < INT32_MAX.
-  __ Fneg(s7, s6);                            // Smallest float > INT32_MIN.
+  __ Fmov(s6, 0x7fffff80);  // Largest float < INT32_MAX.
+  __ Fneg(s7, s6);          // Smallest float > INT32_MIN.
   __ Fmov(d8, 1.0);
   __ Fmov(d9, 1.1);
   __ Fmov(d10, 1.5);
@@ -12160,15 +12480,15 @@
   __ Fmov(s19, -1.5);
   __ Fmov(s20, kFP32PositiveInfinity);
   __ Fmov(s21, kFP32NegativeInfinity);
-  __ Fmov(s22, 0x7fffff8000000000);           // Largest float < INT64_MAX.
-  __ Fneg(s23, s22);                          // Smallest float > INT64_MIN.
+  __ Fmov(s22, 0x7fffff8000000000);  // Largest float < INT64_MAX.
+  __ Fneg(s23, s22);                 // Smallest float > INT64_MIN.
   __ Fmov(d24, 1.1);
   __ Fmov(d25, 1.5);
   __ Fmov(d26, -1.5);
   __ Fmov(d27, kFP64PositiveInfinity);
   __ Fmov(d28, kFP64NegativeInfinity);
-  __ Fmov(d29, 0x7ffffffffffffc00);           // Largest double < INT64_MAX.
-  __ Fneg(d30, d29);                          // Smallest double > INT64_MIN.
+  __ Fmov(d29, 0x7ffffffffffffc00);  // Largest double < INT64_MAX.
+  __ Fneg(d30, d29);                 // Smallest double > INT64_MIN.
 
   __ Fcvtzs(w0, s0);
   __ Fcvtzs(w1, s1);
@@ -12248,8 +12568,8 @@
   __ Fmov(s3, -1.5);
   __ Fmov(s4, kFP32PositiveInfinity);
   __ Fmov(s5, kFP32NegativeInfinity);
-  __ Fmov(s6, 0x7fffff80);                    // Largest float < INT32_MAX.
-  __ Fneg(s7, s6);                            // Smallest float > INT32_MIN.
+  __ Fmov(s6, 0x7fffff80);  // Largest float < INT32_MAX.
+  __ Fneg(s7, s6);          // Smallest float > INT32_MIN.
   __ Fmov(d8, 1.0);
   __ Fmov(d9, 1.1);
   __ Fmov(d10, 1.5);
@@ -12263,15 +12583,15 @@
   __ Fmov(s19, -1.5);
   __ Fmov(s20, kFP32PositiveInfinity);
   __ Fmov(s21, kFP32NegativeInfinity);
-  __ Fmov(s22, 0x7fffff8000000000);           // Largest float < INT64_MAX.
-  __ Fneg(s23, s22);                          // Smallest float > INT64_MIN.
+  __ Fmov(s22, 0x7fffff8000000000);  // Largest float < INT64_MAX.
+  __ Fneg(s23, s22);                 // Smallest float > INT64_MIN.
   __ Fmov(d24, 1.1);
   __ Fmov(d25, 1.5);
   __ Fmov(d26, -1.5);
   __ Fmov(d27, kFP64PositiveInfinity);
   __ Fmov(d28, kFP64NegativeInfinity);
-  __ Fmov(d29, 0x7ffffffffffffc00);           // Largest double < INT64_MAX.
-  __ Fneg(d30, d29);                          // Smallest double > INT64_MIN.
+  __ Fmov(d29, 0x7ffffffffffffc00);  // Largest double < INT64_MAX.
+  __ Fneg(d30, d29);                 // Smallest double > INT64_MIN.
 
   __ Fcvtzu(w0, s0);
   __ Fcvtzu(w1, s1);
@@ -12903,7 +13223,6 @@
 
 TEST(zero_dest) {
   SETUP();
-  ALLOW_ASM();
   RegisterDump before;
 
   START();
@@ -12914,39 +13233,42 @@
   __ Mov(x0, 0);
   __ Mov(x1, literal_base);
   for (unsigned i = 2; i < x30.GetCode(); i++) {
-    __ Add(Register::GetXRegFromCode(i), Register::GetXRegFromCode(i-1), x1);
+    __ Add(Register::GetXRegFromCode(i), Register::GetXRegFromCode(i - 1), x1);
   }
   before.Dump(&masm);
 
   // All of these instructions should be NOPs in these forms, but have
   // alternate forms which can write into the stack pointer.
-  __ add(xzr, x0, x1);
-  __ add(xzr, x1, xzr);
-  __ add(xzr, xzr, x1);
+  {
+    ExactAssemblyScope scope(&masm, 3 * 7 * kInstructionSize);
+    __ add(xzr, x0, x1);
+    __ add(xzr, x1, xzr);
+    __ add(xzr, xzr, x1);
 
-  __ and_(xzr, x0, x2);
-  __ and_(xzr, x2, xzr);
-  __ and_(xzr, xzr, x2);
+    __ and_(xzr, x0, x2);
+    __ and_(xzr, x2, xzr);
+    __ and_(xzr, xzr, x2);
 
-  __ bic(xzr, x0, x3);
-  __ bic(xzr, x3, xzr);
-  __ bic(xzr, xzr, x3);
+    __ bic(xzr, x0, x3);
+    __ bic(xzr, x3, xzr);
+    __ bic(xzr, xzr, x3);
 
-  __ eon(xzr, x0, x4);
-  __ eon(xzr, x4, xzr);
-  __ eon(xzr, xzr, x4);
+    __ eon(xzr, x0, x4);
+    __ eon(xzr, x4, xzr);
+    __ eon(xzr, xzr, x4);
 
-  __ eor(xzr, x0, x5);
-  __ eor(xzr, x5, xzr);
-  __ eor(xzr, xzr, x5);
+    __ eor(xzr, x0, x5);
+    __ eor(xzr, x5, xzr);
+    __ eor(xzr, xzr, x5);
 
-  __ orr(xzr, x0, x6);
-  __ orr(xzr, x6, xzr);
-  __ orr(xzr, xzr, x6);
+    __ orr(xzr, x0, x6);
+    __ orr(xzr, x6, xzr);
+    __ orr(xzr, xzr, x6);
 
-  __ sub(xzr, x0, x7);
-  __ sub(xzr, x7, xzr);
-  __ sub(xzr, xzr, x7);
+    __ sub(xzr, x0, x7);
+    __ sub(xzr, x7, xzr);
+    __ sub(xzr, xzr, x7);
+  }
 
   // Swap the saved stack pointer with the real one. If sp was written
   // during the test, it will show up in x30. This is done because the test
@@ -12970,7 +13292,6 @@
 
 TEST(zero_dest_setflags) {
   SETUP();
-  ALLOW_ASM();
   RegisterDump before;
 
   START();
@@ -12981,37 +13302,49 @@
   __ Mov(x0, 0);
   __ Mov(x1, literal_base);
   for (int i = 2; i < 30; i++) {
-    __ Add(Register::GetXRegFromCode(i), Register::GetXRegFromCode(i-1), x1);
+    __ Add(Register::GetXRegFromCode(i), Register::GetXRegFromCode(i - 1), x1);
   }
   before.Dump(&masm);
 
   // All of these instructions should only write to the flags in these forms,
   // but have alternate forms which can write into the stack pointer.
-  __ adds(xzr, x0, Operand(x1, UXTX));
-  __ adds(xzr, x1, Operand(xzr, UXTX));
-  __ adds(xzr, x1, 1234);
-  __ adds(xzr, x0, x1);
-  __ adds(xzr, x1, xzr);
-  __ adds(xzr, xzr, x1);
+  {
+    ExactAssemblyScope scope(&masm, 6 * kInstructionSize);
+    __ adds(xzr, x0, Operand(x1, UXTX));
+    __ adds(xzr, x1, Operand(xzr, UXTX));
+    __ adds(xzr, x1, 1234);
+    __ adds(xzr, x0, x1);
+    __ adds(xzr, x1, xzr);
+    __ adds(xzr, xzr, x1);
+  }
 
-  __ ands(xzr, x2, ~0xf);
-  __ ands(xzr, xzr, ~0xf);
-  __ ands(xzr, x0, x2);
-  __ ands(xzr, x2, xzr);
-  __ ands(xzr, xzr, x2);
+  {
+    ExactAssemblyScope scope(&masm, 5 * kInstructionSize);
+    __ ands(xzr, x2, ~0xf);
+    __ ands(xzr, xzr, ~0xf);
+    __ ands(xzr, x0, x2);
+    __ ands(xzr, x2, xzr);
+    __ ands(xzr, xzr, x2);
+  }
 
-  __ bics(xzr, x3, ~0xf);
-  __ bics(xzr, xzr, ~0xf);
-  __ bics(xzr, x0, x3);
-  __ bics(xzr, x3, xzr);
-  __ bics(xzr, xzr, x3);
+  {
+    ExactAssemblyScope scope(&masm, 5 * kInstructionSize);
+    __ bics(xzr, x3, ~0xf);
+    __ bics(xzr, xzr, ~0xf);
+    __ bics(xzr, x0, x3);
+    __ bics(xzr, x3, xzr);
+    __ bics(xzr, xzr, x3);
+  }
 
-  __ subs(xzr, x0, Operand(x3, UXTX));
-  __ subs(xzr, x3, Operand(xzr, UXTX));
-  __ subs(xzr, x3, 1234);
-  __ subs(xzr, x0, x3);
-  __ subs(xzr, x3, xzr);
-  __ subs(xzr, xzr, x3);
+  {
+    ExactAssemblyScope scope(&masm, 6 * kInstructionSize);
+    __ subs(xzr, x0, Operand(x3, UXTX));
+    __ subs(xzr, x3, Operand(xzr, UXTX));
+    __ subs(xzr, x3, 1234);
+    __ subs(xzr, x0, x3);
+    __ subs(xzr, x3, xzr);
+    __ subs(xzr, xzr, x3);
+  }
 
   // Swap the saved stack pointer with the real one. If sp was written
   // during the test, it will show up in x30. This is done because the test
@@ -13264,8 +13597,8 @@
   uint64_t x0_expected = literal_base * 1;
   uint64_t x1_expected = literal_base * 2;
   uint64_t x4_expected = (x0_expected << 32) | (x0_expected >> 32);
-  uint64_t x5_expected = ((x1_expected << 16) & 0xffff0000) |
-                         ((x1_expected >> 16) & 0x0000ffff);
+  uint64_t x5_expected =
+      ((x1_expected << 16) & 0xffff0000) | ((x1_expected >> 16) & 0x0000ffff);
 
   ASSERT_EQUAL_64(x0_expected, x0);
   ASSERT_EQUAL_64(x1_expected, x1);
@@ -13311,13 +13644,13 @@
     __ Mov(x4, __ StackPointer());
     __ SetStackPointer(x4);
 
-    __ Poke(wzr, 0);    // Clobber the space we're about to drop.
+    __ Poke(wzr, 0);  // Clobber the space we're about to drop.
     __ Drop(4);
     __ Peek(x6, 0);
     __ Claim(8);
     __ Peek(w7, 10);
     __ Poke(x3, 28);
-    __ Poke(xzr, 0);    // Clobber the space we're about to drop.
+    __ Poke(xzr, 0);  // Clobber the space we're about to drop.
     __ Drop(8);
     __ Poke(x2, 12);
     __ Push(w0);
@@ -13336,8 +13669,8 @@
   uint64_t x2_expected = literal_base * 3;
   uint64_t x3_expected = literal_base * 4;
   uint64_t x6_expected = (x1_expected << 32) | (x0_expected >> 32);
-  uint64_t x7_expected = ((x1_expected << 16) & 0xffff0000) |
-                         ((x0_expected >> 48) & 0x0000ffff);
+  uint64_t x7_expected =
+      ((x1_expected << 16) & 0xffff0000) | ((x0_expected >> 48) & 0x0000ffff);
 
   ASSERT_EQUAL_64(x0_expected, x0);
   ASSERT_EQUAL_64(x1_expected, x1);
@@ -13429,9 +13762,9 @@
   ASSERT_EQUAL_FP64(RawbitsToDouble(4 * base_d), d12);
   ASSERT_EQUAL_FP64(RawbitsToDouble(1 * base_d), d13);
   ASSERT_EQUAL_FP64(RawbitsToDouble(2 * base_d), d14);
-  ASSERT_EQUAL_FP64(
-      RawbitsToDouble((base_d >> kSRegSize) | ((2 * base_d) << kSRegSize)),
-      d15);
+  ASSERT_EQUAL_FP64(RawbitsToDouble((base_d >> kSRegSize) |
+                                    ((2 * base_d) << kSRegSize)),
+                    d15);
   ASSERT_EQUAL_FP64(RawbitsToDouble(2 * base_d), d14);
   ASSERT_EQUAL_FP32(RawbitsToFloat((4 * base_d) & kSRegMask), s16);
   ASSERT_EQUAL_FP32(RawbitsToFloat((4 * base_d) >> kSRegSize), s17);
@@ -13450,7 +13783,7 @@
   //  * The value is not formed from repeating fixed-size smaller values, so it
   //    can be used to detect endianness-related errors.
   uint64_t high_base = UINT32_C(0x01000010);
-  uint64_t low_base =  UINT32_C(0x00100101);
+  uint64_t low_base = UINT32_C(0x00100101);
   uint64_t base = (high_base << 32) | low_base;
   uint64_t array[21];
   memset(array, 0, sizeof(array));
@@ -13597,8 +13930,8 @@
   // Work out which registers to use, based on reg_size.
   Register r[kNumberOfRegisters];
   Register x[kNumberOfRegisters];
-  RegList list = PopulateRegisterArray(NULL, x, r, reg_size, reg_count,
-                                       allowed);
+  RegList list =
+      PopulateRegisterArray(NULL, x, r, reg_size, reg_count, allowed);
 
   // Acquire all temps from the MacroAssembler. They are used arbitrarily below.
   UseScratchRegisterScope temps(&masm);
@@ -13632,14 +13965,22 @@
       case PushPopByFour:
         // Push high-numbered registers first (to the highest addresses).
         for (i = reg_count; i >= 4; i -= 4) {
-          __ Push(r[i-1], r[i-2], r[i-3], r[i-4]);
+          __ Push(r[i - 1], r[i - 2], r[i - 3], r[i - 4]);
         }
         // Finish off the leftovers.
         switch (i) {
-          case 3:  __ Push(r[2], r[1], r[0]); break;
-          case 2:  __ Push(r[1], r[0]);       break;
-          case 1:  __ Push(r[0]);             break;
-          default: VIXL_ASSERT(i == 0);            break;
+          case 3:
+            __ Push(r[2], r[1], r[0]);
+            break;
+          case 2:
+            __ Push(r[1], r[0]);
+            break;
+          case 1:
+            __ Push(r[0]);
+            break;
+          default:
+            VIXL_ASSERT(i == 0);
+            break;
         }
         break;
       case PushPopRegList:
@@ -13653,15 +13994,23 @@
     switch (pop_method) {
       case PushPopByFour:
         // Pop low-numbered registers first (from the lowest addresses).
-        for (i = 0; i <= (reg_count-4); i += 4) {
-          __ Pop(r[i], r[i+1], r[i+2], r[i+3]);
+        for (i = 0; i <= (reg_count - 4); i += 4) {
+          __ Pop(r[i], r[i + 1], r[i + 2], r[i + 3]);
         }
         // Finish off the leftovers.
         switch (reg_count - i) {
-          case 3:  __ Pop(r[i], r[i+1], r[i+2]); break;
-          case 2:  __ Pop(r[i], r[i+1]);         break;
-          case 1:  __ Pop(r[i]);                 break;
-          default: VIXL_ASSERT(i == reg_count);       break;
+          case 3:
+            __ Pop(r[i], r[i + 1], r[i + 2]);
+            break;
+          case 2:
+            __ Pop(r[i], r[i + 1]);
+            break;
+          case 1:
+            __ Pop(r[i]);
+            break;
+          default:
+            VIXL_ASSERT(i == reg_count);
+            break;
         }
         break;
       case PushPopRegList:
@@ -13683,7 +14032,7 @@
   // Check that the register contents were preserved.
   // Always use ASSERT_EQUAL_64, even when testing W registers, so we can test
   // that the upper word was properly cleared by Pop.
-  literal_base &= (0xffffffffffffffff >> (64-reg_size));
+  literal_base &= (0xffffffffffffffff >> (64 - reg_size));
   for (int i = 0; i < reg_count; i++) {
     if (x[i].Is(xzr)) {
       ASSERT_EQUAL_64(0, x[i]);
@@ -13699,24 +14048,48 @@
 TEST(push_pop_xreg_simple_32) {
   for (int claim = 0; claim <= 8; claim++) {
     for (int count = 0; count <= 8; count++) {
-      PushPopXRegSimpleHelper(count, claim, kWRegSize,
-                              PushPopByFour, PushPopByFour);
-      PushPopXRegSimpleHelper(count, claim, kWRegSize,
-                              PushPopByFour, PushPopRegList);
-      PushPopXRegSimpleHelper(count, claim, kWRegSize,
-                              PushPopRegList, PushPopByFour);
-      PushPopXRegSimpleHelper(count, claim, kWRegSize,
-                              PushPopRegList, PushPopRegList);
+      PushPopXRegSimpleHelper(count,
+                              claim,
+                              kWRegSize,
+                              PushPopByFour,
+                              PushPopByFour);
+      PushPopXRegSimpleHelper(count,
+                              claim,
+                              kWRegSize,
+                              PushPopByFour,
+                              PushPopRegList);
+      PushPopXRegSimpleHelper(count,
+                              claim,
+                              kWRegSize,
+                              PushPopRegList,
+                              PushPopByFour);
+      PushPopXRegSimpleHelper(count,
+                              claim,
+                              kWRegSize,
+                              PushPopRegList,
+                              PushPopRegList);
     }
     // Test with the maximum number of registers.
     PushPopXRegSimpleHelper(kPushPopXRegMaxRegCount,
-                            claim, kWRegSize, PushPopByFour, PushPopByFour);
+                            claim,
+                            kWRegSize,
+                            PushPopByFour,
+                            PushPopByFour);
     PushPopXRegSimpleHelper(kPushPopXRegMaxRegCount,
-                            claim, kWRegSize, PushPopByFour, PushPopRegList);
+                            claim,
+                            kWRegSize,
+                            PushPopByFour,
+                            PushPopRegList);
     PushPopXRegSimpleHelper(kPushPopXRegMaxRegCount,
-                            claim, kWRegSize, PushPopRegList, PushPopByFour);
+                            claim,
+                            kWRegSize,
+                            PushPopRegList,
+                            PushPopByFour);
     PushPopXRegSimpleHelper(kPushPopXRegMaxRegCount,
-                            claim, kWRegSize, PushPopRegList, PushPopRegList);
+                            claim,
+                            kWRegSize,
+                            PushPopRegList,
+                            PushPopRegList);
   }
 }
 
@@ -13724,24 +14097,48 @@
 TEST(push_pop_xreg_simple_64) {
   for (int claim = 0; claim <= 8; claim++) {
     for (int count = 0; count <= 8; count++) {
-      PushPopXRegSimpleHelper(count, claim, kXRegSize,
-                              PushPopByFour, PushPopByFour);
-      PushPopXRegSimpleHelper(count, claim, kXRegSize,
-                              PushPopByFour, PushPopRegList);
-      PushPopXRegSimpleHelper(count, claim, kXRegSize,
-                              PushPopRegList, PushPopByFour);
-      PushPopXRegSimpleHelper(count, claim, kXRegSize,
-                              PushPopRegList, PushPopRegList);
+      PushPopXRegSimpleHelper(count,
+                              claim,
+                              kXRegSize,
+                              PushPopByFour,
+                              PushPopByFour);
+      PushPopXRegSimpleHelper(count,
+                              claim,
+                              kXRegSize,
+                              PushPopByFour,
+                              PushPopRegList);
+      PushPopXRegSimpleHelper(count,
+                              claim,
+                              kXRegSize,
+                              PushPopRegList,
+                              PushPopByFour);
+      PushPopXRegSimpleHelper(count,
+                              claim,
+                              kXRegSize,
+                              PushPopRegList,
+                              PushPopRegList);
     }
     // Test with the maximum number of registers.
     PushPopXRegSimpleHelper(kPushPopXRegMaxRegCount,
-                            claim, kXRegSize, PushPopByFour, PushPopByFour);
+                            claim,
+                            kXRegSize,
+                            PushPopByFour,
+                            PushPopByFour);
     PushPopXRegSimpleHelper(kPushPopXRegMaxRegCount,
-                            claim, kXRegSize, PushPopByFour, PushPopRegList);
+                            claim,
+                            kXRegSize,
+                            PushPopByFour,
+                            PushPopRegList);
     PushPopXRegSimpleHelper(kPushPopXRegMaxRegCount,
-                            claim, kXRegSize, PushPopRegList, PushPopByFour);
+                            claim,
+                            kXRegSize,
+                            PushPopRegList,
+                            PushPopByFour);
     PushPopXRegSimpleHelper(kPushPopXRegMaxRegCount,
-                            claim, kXRegSize, PushPopRegList, PushPopRegList);
+                            claim,
+                            kXRegSize,
+                            PushPopRegList,
+                            PushPopRegList);
   }
 }
 
@@ -13777,8 +14174,8 @@
   // Work out which registers to use, based on reg_size.
   FPRegister v[kNumberOfRegisters];
   FPRegister d[kNumberOfRegisters];
-  RegList list = PopulateFPRegisterArray(NULL, d, v, reg_size, reg_count,
-                                         allowed);
+  RegList list =
+      PopulateFPRegisterArray(NULL, d, v, reg_size, reg_count, allowed);
 
   // Arbitrarily pick a register to use as a stack pointer.
   const Register& stack_pointer = x10;
@@ -13821,14 +14218,22 @@
       case PushPopByFour:
         // Push high-numbered registers first (to the highest addresses).
         for (i = reg_count; i >= 4; i -= 4) {
-          __ Push(v[i-1], v[i-2], v[i-3], v[i-4]);
+          __ Push(v[i - 1], v[i - 2], v[i - 3], v[i - 4]);
         }
         // Finish off the leftovers.
         switch (i) {
-          case 3:  __ Push(v[2], v[1], v[0]); break;
-          case 2:  __ Push(v[1], v[0]);       break;
-          case 1:  __ Push(v[0]);             break;
-          default: VIXL_ASSERT(i == 0);            break;
+          case 3:
+            __ Push(v[2], v[1], v[0]);
+            break;
+          case 2:
+            __ Push(v[1], v[0]);
+            break;
+          case 1:
+            __ Push(v[0]);
+            break;
+          default:
+            VIXL_ASSERT(i == 0);
+            break;
         }
         break;
       case PushPopRegList:
@@ -13842,15 +14247,23 @@
     switch (pop_method) {
       case PushPopByFour:
         // Pop low-numbered registers first (from the lowest addresses).
-        for (i = 0; i <= (reg_count-4); i += 4) {
-          __ Pop(v[i], v[i+1], v[i+2], v[i+3]);
+        for (i = 0; i <= (reg_count - 4); i += 4) {
+          __ Pop(v[i], v[i + 1], v[i + 2], v[i + 3]);
         }
         // Finish off the leftovers.
         switch (reg_count - i) {
-          case 3:  __ Pop(v[i], v[i+1], v[i+2]); break;
-          case 2:  __ Pop(v[i], v[i+1]);         break;
-          case 1:  __ Pop(v[i]);                 break;
-          default: VIXL_ASSERT(i == reg_count);       break;
+          case 3:
+            __ Pop(v[i], v[i + 1], v[i + 2]);
+            break;
+          case 2:
+            __ Pop(v[i], v[i + 1]);
+            break;
+          case 1:
+            __ Pop(v[i]);
+            break;
+          default:
+            VIXL_ASSERT(i == reg_count);
+            break;
         }
         break;
       case PushPopRegList:
@@ -13872,7 +14285,7 @@
   // Check that the register contents were preserved.
   // Always use ASSERT_EQUAL_FP64, even when testing S registers, so we can
   // test that the upper word was properly cleared by Pop.
-  literal_base &= (0xffffffffffffffff >> (64-reg_size));
+  literal_base &= (0xffffffffffffffff >> (64 - reg_size));
   for (int i = 0; i < reg_count; i++) {
     uint64_t literal = literal_base * i;
     double expected;
@@ -13887,24 +14300,48 @@
 TEST(push_pop_fp_xreg_simple_32) {
   for (int claim = 0; claim <= 8; claim++) {
     for (int count = 0; count <= 8; count++) {
-      PushPopFPXRegSimpleHelper(count, claim, kSRegSize,
-                                PushPopByFour, PushPopByFour);
-      PushPopFPXRegSimpleHelper(count, claim, kSRegSize,
-                                PushPopByFour, PushPopRegList);
-      PushPopFPXRegSimpleHelper(count, claim, kSRegSize,
-                                PushPopRegList, PushPopByFour);
-      PushPopFPXRegSimpleHelper(count, claim, kSRegSize,
-                                PushPopRegList, PushPopRegList);
+      PushPopFPXRegSimpleHelper(count,
+                                claim,
+                                kSRegSize,
+                                PushPopByFour,
+                                PushPopByFour);
+      PushPopFPXRegSimpleHelper(count,
+                                claim,
+                                kSRegSize,
+                                PushPopByFour,
+                                PushPopRegList);
+      PushPopFPXRegSimpleHelper(count,
+                                claim,
+                                kSRegSize,
+                                PushPopRegList,
+                                PushPopByFour);
+      PushPopFPXRegSimpleHelper(count,
+                                claim,
+                                kSRegSize,
+                                PushPopRegList,
+                                PushPopRegList);
     }
     // Test with the maximum number of registers.
-    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount, claim, kSRegSize,
-                              PushPopByFour, PushPopByFour);
-    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount, claim, kSRegSize,
-                              PushPopByFour, PushPopRegList);
-    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount, claim, kSRegSize,
-                              PushPopRegList, PushPopByFour);
-    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount, claim, kSRegSize,
-                              PushPopRegList, PushPopRegList);
+    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount,
+                              claim,
+                              kSRegSize,
+                              PushPopByFour,
+                              PushPopByFour);
+    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount,
+                              claim,
+                              kSRegSize,
+                              PushPopByFour,
+                              PushPopRegList);
+    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount,
+                              claim,
+                              kSRegSize,
+                              PushPopRegList,
+                              PushPopByFour);
+    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount,
+                              claim,
+                              kSRegSize,
+                              PushPopRegList,
+                              PushPopRegList);
   }
 }
 
@@ -13912,24 +14349,48 @@
 TEST(push_pop_fp_xreg_simple_64) {
   for (int claim = 0; claim <= 8; claim++) {
     for (int count = 0; count <= 8; count++) {
-      PushPopFPXRegSimpleHelper(count, claim, kDRegSize,
-                                PushPopByFour, PushPopByFour);
-      PushPopFPXRegSimpleHelper(count, claim, kDRegSize,
-                                PushPopByFour, PushPopRegList);
-      PushPopFPXRegSimpleHelper(count, claim, kDRegSize,
-                                PushPopRegList, PushPopByFour);
-      PushPopFPXRegSimpleHelper(count, claim, kDRegSize,
-                                PushPopRegList, PushPopRegList);
+      PushPopFPXRegSimpleHelper(count,
+                                claim,
+                                kDRegSize,
+                                PushPopByFour,
+                                PushPopByFour);
+      PushPopFPXRegSimpleHelper(count,
+                                claim,
+                                kDRegSize,
+                                PushPopByFour,
+                                PushPopRegList);
+      PushPopFPXRegSimpleHelper(count,
+                                claim,
+                                kDRegSize,
+                                PushPopRegList,
+                                PushPopByFour);
+      PushPopFPXRegSimpleHelper(count,
+                                claim,
+                                kDRegSize,
+                                PushPopRegList,
+                                PushPopRegList);
     }
     // Test with the maximum number of registers.
-    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount, claim, kDRegSize,
-                              PushPopByFour, PushPopByFour);
-    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount, claim, kDRegSize,
-                              PushPopByFour, PushPopRegList);
-    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount, claim, kDRegSize,
-                              PushPopRegList, PushPopByFour);
-    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount, claim, kDRegSize,
-                              PushPopRegList, PushPopRegList);
+    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount,
+                              claim,
+                              kDRegSize,
+                              PushPopByFour,
+                              PushPopByFour);
+    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount,
+                              claim,
+                              kDRegSize,
+                              PushPopByFour,
+                              PushPopRegList);
+    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount,
+                              claim,
+                              kDRegSize,
+                              PushPopRegList,
+                              PushPopByFour);
+    PushPopFPXRegSimpleHelper(kPushPopFPXRegMaxRegCount,
+                              claim,
+                              kDRegSize,
+                              PushPopRegList,
+                              PushPopRegList);
   }
 }
 
@@ -14012,7 +14473,7 @@
 
   // Always use ASSERT_EQUAL_64, even when testing W registers, so we can test
   // that the upper word was properly cleared by Pop.
-  literal_base &= (0xffffffffffffffff >> (64-reg_size));
+  literal_base &= (0xffffffffffffffff >> (64 - reg_size));
 
   ASSERT_EQUAL_64(literal_base * 3, x[9]);
   ASSERT_EQUAL_64(literal_base * 2, x[8]);
@@ -14178,7 +14639,7 @@
     // If popping an even number of registers, the first one will be X-sized.
     // Otherwise, the first one will be W-sized.
     bool next_is_64 = !(reg_count & 1);
-    for (int i = reg_count-1; i >= 0; i--) {
+    for (int i = reg_count - 1; i >= 0; i--) {
       if (next_is_64) {
         __ Pop(x[i]);
         active_w_slots -= 2;
@@ -14491,8 +14952,8 @@
   SETUP();
   START();
 
-  char const * test_plain_string = "Printf with no arguments.\n";
-  char const * test_substring = "'This is a substring.'";
+  char const* test_plain_string = "Printf with no arguments.\n";
+  char const* test_substring = "'This is a substring.'";
   RegisterDump before;
 
   // Initialize x29 to the value of the stack pointer. We will use x29 as a
@@ -14535,14 +14996,18 @@
   // Check that we don't clobber any registers.
   before.Dump(&masm);
 
-  __ Printf(test_plain_string);   // NOLINT(runtime/printf)
+  __ Printf(test_plain_string);  // NOLINT(runtime/printf)
   __ Printf("x0: %" PRId64 ", x1: 0x%08" PRIx64 "\n", x0, x1);
-  __ Printf("w5: %" PRId32 ", x5: %" PRId64"\n", w5, x5);
+  __ Printf("w5: %" PRId32 ", x5: %" PRId64 "\n", w5, x5);
   __ Printf("d0: %f\n", d0);
   __ Printf("Test %%s: %s\n", x2);
-  __ Printf("w3(uint32): %" PRIu32 "\nw4(int32): %" PRId32 "\n"
+  __ Printf("w3(uint32): %" PRIu32 "\nw4(int32): %" PRId32
+            "\n"
             "x5(uint64): %" PRIu64 "\nx6(int64): %" PRId64 "\n",
-            w3, w4, x5, x6);
+            w3,
+            w4,
+            x5,
+            x6);
   __ Printf("%%f: %f\n%%g: %g\n%%e: %e\n%%E: %E\n", s1, s2, d3, d4);
   __ Printf("0x%" PRIx32 ", 0x%" PRIx64 "\n", w28, x28);
   __ Printf("%g\n", d10);
@@ -14550,7 +15015,8 @@
 
   // Print the stack pointer (sp).
   __ Printf("StackPointer(sp): 0x%016" PRIx64 ", 0x%08" PRIx32 "\n",
-            __ StackPointer(), __ StackPointer().W());
+            __ StackPointer(),
+            __ StackPointer().W());
 
   // Test with a different stack pointer.
   const Register old_stack_pointer = __ StackPointer();
@@ -14558,7 +15024,8 @@
   __ SetStackPointer(x29);
   // Print the stack pointer (not sp).
   __ Printf("StackPointer(not sp): 0x%016" PRIx64 ", 0x%08" PRIx32 "\n",
-            __ StackPointer(), __ StackPointer().W());
+            __ StackPointer(),
+            __ StackPointer().W());
   __ Mov(old_stack_pointer, __ StackPointer());
   __ SetStackPointer(old_stack_pointer);
 
@@ -14567,9 +15034,15 @@
 
   // Mixed argument types.
   __ Printf("w3: %" PRIu32 ", s1: %f, x5: %" PRIu64 ", d3: %f\n",
-            w3, s1, x5, d3);
+            w3,
+            s1,
+            x5,
+            d3);
   __ Printf("s1: %f, d3: %f, w3: %" PRId32 ", x5: %" PRId64 "\n",
-            s1, d3, w3, x5);
+            s1,
+            d3,
+            w3,
+            x5);
 
   END();
   RUN();
@@ -14588,8 +15061,8 @@
   SETUP();
   START();
 
-  char const * test_plain_string = "Printf with no arguments.\n";
-  char const * test_substring = "'This is a substring.'";
+  char const* test_plain_string = "Printf with no arguments.\n";
+  char const* test_substring = "'This is a substring.'";
 
   __ PrintfNoPreserve(test_plain_string);
   __ Mov(x19, x0);
@@ -14597,7 +15070,7 @@
   // Test simple integer arguments.
   __ Mov(x0, 1234);
   __ Mov(x1, 0x1234);
-  __ PrintfNoPreserve("x0: %" PRId64", x1: 0x%08" PRIx64 "\n", x0, x1);
+  __ PrintfNoPreserve("x0: %" PRId64 ", x1: 0x%08" PRIx64 "\n", x0, x1);
   __ Mov(x20, x0);
 
   // Test simple floating-point arguments.
@@ -14615,9 +15088,13 @@
   __ Mov(w4, 0xffffffff);
   __ Mov(x5, 0xffffffffffffffff);
   __ Mov(x6, 0xffffffffffffffff);
-  __ PrintfNoPreserve("w3(uint32): %" PRIu32 "\nw4(int32): %" PRId32 "\n"
+  __ PrintfNoPreserve("w3(uint32): %" PRIu32 "\nw4(int32): %" PRId32
+                      "\n"
                       "x5(uint64): %" PRIu64 "\nx6(int64): %" PRId64 "\n",
-                      w3, w4, x5, x6);
+                      w3,
+                      w4,
+                      x5,
+                      x6);
   __ Mov(x23, x0);
 
   __ Fmov(s1, 1.234);
@@ -14641,9 +15118,10 @@
   __ Mov(x29, old_stack_pointer);
   __ SetStackPointer(x29);
   // Print the stack pointer (not sp).
-  __ PrintfNoPreserve(
-      "StackPointer(not sp): 0x%016" PRIx64 ", 0x%08" PRIx32 "\n",
-      __ StackPointer(), __ StackPointer().W());
+  __ PrintfNoPreserve("StackPointer(not sp): 0x%016" PRIx64 ", 0x%08" PRIx32
+                      "\n",
+                      __ StackPointer(),
+                      __ StackPointer().W());
   __ Mov(x27, x0);
   __ Mov(old_stack_pointer, __ StackPointer());
   __ SetStackPointer(old_stack_pointer);
@@ -14661,7 +15139,10 @@
   __ Mov(x5, 0xffffffffffffffff);
   __ Fmov(d3, 3.456);
   __ PrintfNoPreserve("w3: %" PRIu32 ", s1: %f, x5: %" PRIu64 ", d3: %f\n",
-                      w3, s1, x5, d3);
+                      w3,
+                      s1,
+                      x5,
+                      d3);
   __ Mov(x29, x0);
 
   END();
@@ -15439,12 +15920,12 @@
 
   // As above, but get suitably-aligned values for ldxp and stxp.
   uint32_t wp_data[] = {0, 0, 0, 0, 0};
-  uint32_t * wp = AlignUp(wp_data + 1, kWRegSizeInBytes * 2) - 1;
-  wp[1] = 0x12345678;           // wp[1] is 64-bit-aligned.
+  uint32_t* wp = AlignUp(wp_data + 1, kWRegSizeInBytes * 2) - 1;
+  wp[1] = 0x12345678;  // wp[1] is 64-bit-aligned.
   wp[2] = 0x87654321;
   uint64_t xp_data[] = {0, 0, 0, 0, 0};
-  uint64_t * xp = AlignUp(xp_data + 1, kXRegSizeInBytes * 2) - 1;
-  xp[1] = 0x123456789abcdef0;   // xp[1] is 128-bit-aligned.
+  uint64_t* xp = AlignUp(xp_data + 1, kXRegSizeInBytes * 2) - 1;
+  xp[1] = 0x123456789abcdef0;  // xp[1] is 128-bit-aligned.
   xp[2] = 0x0fedcba987654321;
 
   SETUP();
@@ -15540,12 +16021,12 @@
 
   // As above, but get suitably-aligned values for ldxp and stxp.
   uint32_t wp_data[] = {0, 0, 0, 0, 0};
-  uint32_t * wp = AlignUp(wp_data + 1, kWRegSizeInBytes * 2) - 1;
-  wp[1] = 0x12345678;           // wp[1] is 64-bit-aligned.
+  uint32_t* wp = AlignUp(wp_data + 1, kWRegSizeInBytes * 2) - 1;
+  wp[1] = 0x12345678;  // wp[1] is 64-bit-aligned.
   wp[2] = 0x87654321;
   uint64_t xp_data[] = {0, 0, 0, 0, 0};
-  uint64_t * xp = AlignUp(xp_data + 1, kXRegSizeInBytes * 2) - 1;
-  xp[1] = 0x123456789abcdef0;   // xp[1] is 128-bit-aligned.
+  uint64_t* xp = AlignUp(xp_data + 1, kXRegSizeInBytes * 2) - 1;
+  xp[1] = 0x123456789abcdef0;  // xp[1] is 128-bit-aligned.
   xp[2] = 0x0fedcba987654321;
 
   SETUP();
@@ -15634,7 +16115,7 @@
 TEST(clrex) {
   // This data should never be written.
   uint64_t data[] = {0, 0, 0};
-  uint64_t * data_aligned = AlignUp(data, kXRegSizeInBytes * 2);
+  uint64_t* data_aligned = AlignUp(data, kXRegSizeInBytes * 2);
 
   SETUP();
   START();
@@ -15738,7 +16219,7 @@
 // Check that the simulator occasionally makes store-exclusive fail.
 TEST(ldxr_stxr_fail) {
   uint64_t data[] = {0, 0, 0};
-  uint64_t * data_aligned = AlignUp(data, kXRegSizeInBytes * 2);
+  uint64_t* data_aligned = AlignUp(data, kXRegSizeInBytes * 2);
 
   // Impose a hard limit on the number of attempts, so the test cannot hang.
   static const uint64_t kWatchdog = 10000;
@@ -15822,7 +16303,7 @@
 // Check that the simulator occasionally makes store-exclusive fail.
 TEST(ldaxr_stlxr_fail) {
   uint64_t data[] = {0, 0, 0};
-  uint64_t * data_aligned = AlignUp(data, kXRegSizeInBytes * 2);
+  uint64_t* data_aligned = AlignUp(data, kXRegSizeInBytes * 2);
 
   // Impose a hard limit on the number of attempts, so the test cannot hang.
   static const uint64_t kWatchdog = 10000;
@@ -15903,7 +16384,7 @@
 
 
 TEST(load_store_tagged_immediate_offset) {
-  uint64_t tags[] = { 0x00, 0x1, 0x55, 0xff };
+  uint64_t tags[] = {0x00, 0x1, 0x55, 0xff};
   int tag_count = sizeof(tags) / sizeof(tags[0]);
 
   const int kMaxDataLength = 160;
@@ -15927,7 +16408,6 @@
       memset(dst, 0, kMaxDataLength);
 
       SETUP();
-      ALLOW_ASM();
       START();
 
       __ Mov(x0, src_tagged);
@@ -15936,94 +16416,160 @@
       int offset = 0;
 
       // Scaled-immediate offsets.
-      __ ldp(q0, q1, MemOperand(x0, offset));
-      __ stp(q0, q1, MemOperand(x1, offset));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(q0, q1, MemOperand(x0, offset));
+        __ stp(q0, q1, MemOperand(x1, offset));
+      }
       offset += 2 * kQRegSizeInBytes;
 
-      __ ldp(x2, x3, MemOperand(x0, offset));
-      __ stp(x2, x3, MemOperand(x1, offset));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(x2, x3, MemOperand(x0, offset));
+        __ stp(x2, x3, MemOperand(x1, offset));
+      }
       offset += 2 * kXRegSizeInBytes;
 
-      __ ldpsw(x2, x3, MemOperand(x0, offset));
-      __ stp(w2, w3, MemOperand(x1, offset));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldpsw(x2, x3, MemOperand(x0, offset));
+        __ stp(w2, w3, MemOperand(x1, offset));
+      }
       offset += 2 * kWRegSizeInBytes;
 
-      __ ldp(d0, d1, MemOperand(x0, offset));
-      __ stp(d0, d1, MemOperand(x1, offset));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(d0, d1, MemOperand(x0, offset));
+        __ stp(d0, d1, MemOperand(x1, offset));
+      }
       offset += 2 * kDRegSizeInBytes;
 
-      __ ldp(w2, w3, MemOperand(x0, offset));
-      __ stp(w2, w3, MemOperand(x1, offset));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(w2, w3, MemOperand(x0, offset));
+        __ stp(w2, w3, MemOperand(x1, offset));
+      }
       offset += 2 * kWRegSizeInBytes;
 
-      __ ldp(s0, s1, MemOperand(x0, offset));
-      __ stp(s0, s1, MemOperand(x1, offset));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(s0, s1, MemOperand(x0, offset));
+        __ stp(s0, s1, MemOperand(x1, offset));
+      }
       offset += 2 * kSRegSizeInBytes;
 
-      __ ldr(x2, MemOperand(x0, offset), RequireScaledOffset);
-      __ str(x2, MemOperand(x1, offset), RequireScaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldr(x2, MemOperand(x0, offset), RequireScaledOffset);
+        __ str(x2, MemOperand(x1, offset), RequireScaledOffset);
+      }
       offset += kXRegSizeInBytes;
 
-      __ ldr(d0, MemOperand(x0, offset), RequireScaledOffset);
-      __ str(d0, MemOperand(x1, offset), RequireScaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldr(d0, MemOperand(x0, offset), RequireScaledOffset);
+        __ str(d0, MemOperand(x1, offset), RequireScaledOffset);
+      }
       offset += kDRegSizeInBytes;
 
-      __ ldr(w2, MemOperand(x0, offset), RequireScaledOffset);
-      __ str(w2, MemOperand(x1, offset), RequireScaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldr(w2, MemOperand(x0, offset), RequireScaledOffset);
+        __ str(w2, MemOperand(x1, offset), RequireScaledOffset);
+      }
       offset += kWRegSizeInBytes;
 
-      __ ldr(s0, MemOperand(x0, offset), RequireScaledOffset);
-      __ str(s0, MemOperand(x1, offset), RequireScaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldr(s0, MemOperand(x0, offset), RequireScaledOffset);
+        __ str(s0, MemOperand(x1, offset), RequireScaledOffset);
+      }
       offset += kSRegSizeInBytes;
 
-      __ ldrh(w2, MemOperand(x0, offset), RequireScaledOffset);
-      __ strh(w2, MemOperand(x1, offset), RequireScaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldrh(w2, MemOperand(x0, offset), RequireScaledOffset);
+        __ strh(w2, MemOperand(x1, offset), RequireScaledOffset);
+      }
       offset += 2;
 
-      __ ldrsh(w2, MemOperand(x0, offset), RequireScaledOffset);
-      __ strh(w2, MemOperand(x1, offset), RequireScaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldrsh(w2, MemOperand(x0, offset), RequireScaledOffset);
+        __ strh(w2, MemOperand(x1, offset), RequireScaledOffset);
+      }
       offset += 2;
 
-      __ ldrb(w2, MemOperand(x0, offset), RequireScaledOffset);
-      __ strb(w2, MemOperand(x1, offset), RequireScaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldrb(w2, MemOperand(x0, offset), RequireScaledOffset);
+        __ strb(w2, MemOperand(x1, offset), RequireScaledOffset);
+      }
       offset += 1;
 
-      __ ldrsb(w2, MemOperand(x0, offset), RequireScaledOffset);
-      __ strb(w2, MemOperand(x1, offset), RequireScaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldrsb(w2, MemOperand(x0, offset), RequireScaledOffset);
+        __ strb(w2, MemOperand(x1, offset), RequireScaledOffset);
+      }
       offset += 1;
 
       // Unscaled-immediate offsets.
 
-      __ ldur(x2, MemOperand(x0, offset), RequireUnscaledOffset);
-      __ stur(x2, MemOperand(x1, offset), RequireUnscaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldur(x2, MemOperand(x0, offset), RequireUnscaledOffset);
+        __ stur(x2, MemOperand(x1, offset), RequireUnscaledOffset);
+      }
       offset += kXRegSizeInBytes;
 
-      __ ldur(d0, MemOperand(x0, offset), RequireUnscaledOffset);
-      __ stur(d0, MemOperand(x1, offset), RequireUnscaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldur(d0, MemOperand(x0, offset), RequireUnscaledOffset);
+        __ stur(d0, MemOperand(x1, offset), RequireUnscaledOffset);
+      }
       offset += kDRegSizeInBytes;
 
-      __ ldur(w2, MemOperand(x0, offset), RequireUnscaledOffset);
-      __ stur(w2, MemOperand(x1, offset), RequireUnscaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldur(w2, MemOperand(x0, offset), RequireUnscaledOffset);
+        __ stur(w2, MemOperand(x1, offset), RequireUnscaledOffset);
+      }
       offset += kWRegSizeInBytes;
 
-      __ ldur(s0, MemOperand(x0, offset), RequireUnscaledOffset);
-      __ stur(s0, MemOperand(x1, offset), RequireUnscaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldur(s0, MemOperand(x0, offset), RequireUnscaledOffset);
+        __ stur(s0, MemOperand(x1, offset), RequireUnscaledOffset);
+      }
       offset += kSRegSizeInBytes;
 
-      __ ldurh(w2, MemOperand(x0, offset), RequireUnscaledOffset);
-      __ sturh(w2, MemOperand(x1, offset), RequireUnscaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldurh(w2, MemOperand(x0, offset), RequireUnscaledOffset);
+        __ sturh(w2, MemOperand(x1, offset), RequireUnscaledOffset);
+      }
       offset += 2;
 
-      __ ldursh(w2, MemOperand(x0, offset), RequireUnscaledOffset);
-      __ sturh(w2, MemOperand(x1, offset), RequireUnscaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldursh(w2, MemOperand(x0, offset), RequireUnscaledOffset);
+        __ sturh(w2, MemOperand(x1, offset), RequireUnscaledOffset);
+      }
       offset += 2;
 
-      __ ldurb(w2, MemOperand(x0, offset), RequireUnscaledOffset);
-      __ sturb(w2, MemOperand(x1, offset), RequireUnscaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldurb(w2, MemOperand(x0, offset), RequireUnscaledOffset);
+        __ sturb(w2, MemOperand(x1, offset), RequireUnscaledOffset);
+      }
       offset += 1;
 
-      __ ldursb(w2, MemOperand(x0, offset), RequireUnscaledOffset);
-      __ sturb(w2, MemOperand(x1, offset), RequireUnscaledOffset);
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldursb(w2, MemOperand(x0, offset), RequireUnscaledOffset);
+        __ sturb(w2, MemOperand(x1, offset), RequireUnscaledOffset);
+      }
       offset += 1;
 
       // Extract the tag (so we can test that it was preserved correctly).
@@ -16049,7 +16595,7 @@
 
 
 TEST(load_store_tagged_immediate_preindex) {
-  uint64_t tags[] = { 0x00, 0x1, 0x55, 0xff };
+  uint64_t tags[] = {0x00, 0x1, 0x55, 0xff};
   int tag_count = sizeof(tags) / sizeof(tags[0]);
 
   const int kMaxDataLength = 128;
@@ -16075,7 +16621,6 @@
       }
 
       SETUP();
-      ALLOW_ASM();
       START();
 
       // Each MemOperand must apply a pre-index equal to the size of the
@@ -16088,73 +16633,115 @@
       __ Mov(x0, src_tagged - preindex);
       __ Mov(x1, dst_tagged - preindex);
 
-      __ ldp(q0, q1, MemOperand(x0, preindex, PreIndex));
-      __ stp(q0, q1, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(q0, q1, MemOperand(x0, preindex, PreIndex));
+        __ stp(q0, q1, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = 2 * kQRegSizeInBytes;
       data_length = preindex;
 
-      __ ldp(x2, x3, MemOperand(x0, preindex, PreIndex));
-      __ stp(x2, x3, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(x2, x3, MemOperand(x0, preindex, PreIndex));
+        __ stp(x2, x3, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = 2 * kXRegSizeInBytes;
       data_length += preindex;
 
-      __ ldpsw(x2, x3, MemOperand(x0, preindex, PreIndex));
-      __ stp(w2, w3, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldpsw(x2, x3, MemOperand(x0, preindex, PreIndex));
+        __ stp(w2, w3, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = 2 * kWRegSizeInBytes;
       data_length += preindex;
 
-      __ ldp(d0, d1, MemOperand(x0, preindex, PreIndex));
-      __ stp(d0, d1, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(d0, d1, MemOperand(x0, preindex, PreIndex));
+        __ stp(d0, d1, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = 2 * kDRegSizeInBytes;
       data_length += preindex;
 
-      __ ldp(w2, w3, MemOperand(x0, preindex, PreIndex));
-      __ stp(w2, w3, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(w2, w3, MemOperand(x0, preindex, PreIndex));
+        __ stp(w2, w3, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = 2 * kWRegSizeInBytes;
       data_length += preindex;
 
-      __ ldp(s0, s1, MemOperand(x0, preindex, PreIndex));
-      __ stp(s0, s1, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(s0, s1, MemOperand(x0, preindex, PreIndex));
+        __ stp(s0, s1, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = 2 * kSRegSizeInBytes;
       data_length += preindex;
 
-      __ ldr(x2, MemOperand(x0, preindex, PreIndex));
-      __ str(x2, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldr(x2, MemOperand(x0, preindex, PreIndex));
+        __ str(x2, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = kXRegSizeInBytes;
       data_length += preindex;
 
-      __ ldr(d0, MemOperand(x0, preindex, PreIndex));
-      __ str(d0, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldr(d0, MemOperand(x0, preindex, PreIndex));
+        __ str(d0, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = kDRegSizeInBytes;
       data_length += preindex;
 
-      __ ldr(w2, MemOperand(x0, preindex, PreIndex));
-      __ str(w2, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldr(w2, MemOperand(x0, preindex, PreIndex));
+        __ str(w2, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = kWRegSizeInBytes;
       data_length += preindex;
 
-      __ ldr(s0, MemOperand(x0, preindex, PreIndex));
-      __ str(s0, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldr(s0, MemOperand(x0, preindex, PreIndex));
+        __ str(s0, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = kSRegSizeInBytes;
       data_length += preindex;
 
-      __ ldrh(w2, MemOperand(x0, preindex, PreIndex));
-      __ strh(w2, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldrh(w2, MemOperand(x0, preindex, PreIndex));
+        __ strh(w2, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = 2;
       data_length += preindex;
 
-      __ ldrsh(w2, MemOperand(x0, preindex, PreIndex));
-      __ strh(w2, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldrsh(w2, MemOperand(x0, preindex, PreIndex));
+        __ strh(w2, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = 2;
       data_length += preindex;
 
-      __ ldrb(w2, MemOperand(x0, preindex, PreIndex));
-      __ strb(w2, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldrb(w2, MemOperand(x0, preindex, PreIndex));
+        __ strb(w2, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = 1;
       data_length += preindex;
 
-      __ ldrsb(w2, MemOperand(x0, preindex, PreIndex));
-      __ strb(w2, MemOperand(x1, preindex, PreIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldrsb(w2, MemOperand(x0, preindex, PreIndex));
+        __ strb(w2, MemOperand(x1, preindex, PreIndex));
+      }
       preindex = 1;
       data_length += preindex;
 
@@ -16179,7 +16766,7 @@
 
 
 TEST(load_store_tagged_immediate_postindex) {
-  uint64_t tags[] = { 0x00, 0x1, 0x55, 0xff };
+  uint64_t tags[] = {0x00, 0x1, 0x55, 0xff};
   int tag_count = sizeof(tags) / sizeof(tags[0]);
 
   const int kMaxDataLength = 128;
@@ -16205,7 +16792,6 @@
       }
 
       SETUP();
-      ALLOW_ASM();
       START();
 
       int postindex = 2 * kXRegSizeInBytes;
@@ -16214,73 +16800,115 @@
       __ Mov(x0, src_tagged);
       __ Mov(x1, dst_tagged);
 
-      __ ldp(x2, x3, MemOperand(x0, postindex, PostIndex));
-      __ stp(x2, x3, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(x2, x3, MemOperand(x0, postindex, PostIndex));
+        __ stp(x2, x3, MemOperand(x1, postindex, PostIndex));
+      }
       data_length = postindex;
 
       postindex = 2 * kQRegSizeInBytes;
-      __ ldp(q0, q1, MemOperand(x0, postindex, PostIndex));
-      __ stp(q0, q1, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(q0, q1, MemOperand(x0, postindex, PostIndex));
+        __ stp(q0, q1, MemOperand(x1, postindex, PostIndex));
+      }
       data_length += postindex;
 
       postindex = 2 * kWRegSizeInBytes;
-      __ ldpsw(x2, x3, MemOperand(x0, postindex, PostIndex));
-      __ stp(w2, w3, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldpsw(x2, x3, MemOperand(x0, postindex, PostIndex));
+        __ stp(w2, w3, MemOperand(x1, postindex, PostIndex));
+      }
       data_length += postindex;
 
       postindex = 2 * kDRegSizeInBytes;
-      __ ldp(d0, d1, MemOperand(x0, postindex, PostIndex));
-      __ stp(d0, d1, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(d0, d1, MemOperand(x0, postindex, PostIndex));
+        __ stp(d0, d1, MemOperand(x1, postindex, PostIndex));
+      }
       data_length += postindex;
 
       postindex = 2 * kWRegSizeInBytes;
-      __ ldp(w2, w3, MemOperand(x0, postindex, PostIndex));
-      __ stp(w2, w3, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(w2, w3, MemOperand(x0, postindex, PostIndex));
+        __ stp(w2, w3, MemOperand(x1, postindex, PostIndex));
+      }
       data_length += postindex;
 
       postindex = 2 * kSRegSizeInBytes;
-      __ ldp(s0, s1, MemOperand(x0, postindex, PostIndex));
-      __ stp(s0, s1, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldp(s0, s1, MemOperand(x0, postindex, PostIndex));
+        __ stp(s0, s1, MemOperand(x1, postindex, PostIndex));
+      }
       data_length += postindex;
 
       postindex = kXRegSizeInBytes;
-      __ ldr(x2, MemOperand(x0, postindex, PostIndex));
-      __ str(x2, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldr(x2, MemOperand(x0, postindex, PostIndex));
+        __ str(x2, MemOperand(x1, postindex, PostIndex));
+      }
       data_length += postindex;
 
       postindex = kDRegSizeInBytes;
-      __ ldr(d0, MemOperand(x0, postindex, PostIndex));
-      __ str(d0, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldr(d0, MemOperand(x0, postindex, PostIndex));
+        __ str(d0, MemOperand(x1, postindex, PostIndex));
+      }
       data_length += postindex;
 
       postindex = kWRegSizeInBytes;
-      __ ldr(w2, MemOperand(x0, postindex, PostIndex));
-      __ str(w2, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldr(w2, MemOperand(x0, postindex, PostIndex));
+        __ str(w2, MemOperand(x1, postindex, PostIndex));
+      }
       data_length += postindex;
 
       postindex = kSRegSizeInBytes;
-      __ ldr(s0, MemOperand(x0, postindex, PostIndex));
-      __ str(s0, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldr(s0, MemOperand(x0, postindex, PostIndex));
+        __ str(s0, MemOperand(x1, postindex, PostIndex));
+      }
       data_length += postindex;
 
       postindex = 2;
-      __ ldrh(w2, MemOperand(x0, postindex, PostIndex));
-      __ strh(w2, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldrh(w2, MemOperand(x0, postindex, PostIndex));
+        __ strh(w2, MemOperand(x1, postindex, PostIndex));
+      }
       data_length += postindex;
 
       postindex = 2;
-      __ ldrsh(w2, MemOperand(x0, postindex, PostIndex));
-      __ strh(w2, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldrsh(w2, MemOperand(x0, postindex, PostIndex));
+        __ strh(w2, MemOperand(x1, postindex, PostIndex));
+      }
       data_length += postindex;
 
       postindex = 1;
-      __ ldrb(w2, MemOperand(x0, postindex, PostIndex));
-      __ strb(w2, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldrb(w2, MemOperand(x0, postindex, PostIndex));
+        __ strb(w2, MemOperand(x1, postindex, PostIndex));
+      }
       data_length += postindex;
 
       postindex = 1;
-      __ ldrsb(w2, MemOperand(x0, postindex, PostIndex));
-      __ strb(w2, MemOperand(x1, postindex, PostIndex));
+      {
+        ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+        __ ldrsb(w2, MemOperand(x0, postindex, PostIndex));
+        __ strb(w2, MemOperand(x1, postindex, PostIndex));
+      }
       data_length += postindex;
 
       VIXL_ASSERT(kMaxDataLength >= data_length);
@@ -16304,7 +16932,7 @@
 
 
 TEST(load_store_tagged_register_offset) {
-  uint64_t tags[] = { 0x00, 0x1, 0x55, 0xff };
+  uint64_t tags[] = {0x00, 0x1, 0x55, 0xff};
   int tag_count = sizeof(tags) / sizeof(tags[0]);
 
   const int kMaxDataLength = 128;
@@ -16335,50 +16963,73 @@
         }
 
         SETUP();
-        ALLOW_ASM();
         START();
 
         __ Mov(x0, src_tagged);
         __ Mov(x1, dst_tagged);
 
         __ Mov(x10, offset_base + data_length);
-        __ ldr(x2, MemOperand(x0, x10));
-        __ str(x2, MemOperand(x1, x10));
+        {
+          ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+          __ ldr(x2, MemOperand(x0, x10));
+          __ str(x2, MemOperand(x1, x10));
+        }
         data_length += kXRegSizeInBytes;
 
         __ Mov(x10, offset_base + data_length);
-        __ ldr(d0, MemOperand(x0, x10));
-        __ str(d0, MemOperand(x1, x10));
+        {
+          ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+          __ ldr(d0, MemOperand(x0, x10));
+          __ str(d0, MemOperand(x1, x10));
+        }
         data_length += kDRegSizeInBytes;
 
         __ Mov(x10, offset_base + data_length);
-        __ ldr(w2, MemOperand(x0, x10));
-        __ str(w2, MemOperand(x1, x10));
+        {
+          ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+          __ ldr(w2, MemOperand(x0, x10));
+          __ str(w2, MemOperand(x1, x10));
+        }
         data_length += kWRegSizeInBytes;
 
         __ Mov(x10, offset_base + data_length);
-        __ ldr(s0, MemOperand(x0, x10));
-        __ str(s0, MemOperand(x1, x10));
+        {
+          ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+          __ ldr(s0, MemOperand(x0, x10));
+          __ str(s0, MemOperand(x1, x10));
+        }
         data_length += kSRegSizeInBytes;
 
         __ Mov(x10, offset_base + data_length);
-        __ ldrh(w2, MemOperand(x0, x10));
-        __ strh(w2, MemOperand(x1, x10));
+        {
+          ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+          __ ldrh(w2, MemOperand(x0, x10));
+          __ strh(w2, MemOperand(x1, x10));
+        }
         data_length += 2;
 
         __ Mov(x10, offset_base + data_length);
-        __ ldrsh(w2, MemOperand(x0, x10));
-        __ strh(w2, MemOperand(x1, x10));
+        {
+          ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+          __ ldrsh(w2, MemOperand(x0, x10));
+          __ strh(w2, MemOperand(x1, x10));
+        }
         data_length += 2;
 
         __ Mov(x10, offset_base + data_length);
-        __ ldrb(w2, MemOperand(x0, x10));
-        __ strb(w2, MemOperand(x1, x10));
+        {
+          ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+          __ ldrb(w2, MemOperand(x0, x10));
+          __ strb(w2, MemOperand(x1, x10));
+        }
         data_length += 1;
 
         __ Mov(x10, offset_base + data_length);
-        __ ldrsb(w2, MemOperand(x0, x10));
-        __ strb(w2, MemOperand(x1, x10));
+        {
+          ExactAssemblyScope scope(&masm, 2 * kInstructionSize);
+          __ ldrsb(w2, MemOperand(x0, x10));
+          __ strb(w2, MemOperand(x1, x10));
+        }
         data_length += 1;
 
         VIXL_ASSERT(kMaxDataLength >= data_length);
@@ -16404,8 +17055,8 @@
 
 
 TEST(load_store_tagged_register_postindex) {
-  uint64_t src[] = { 0x0706050403020100, 0x0f0e0d0c0b0a0908 };
-  uint64_t tags[] = { 0x00, 0x1, 0x55, 0xff };
+  uint64_t src[] = {0x0706050403020100, 0x0f0e0d0c0b0a0908};
+  uint64_t tags[] = {0x00, 0x1, 0x55, 0xff};
   int tag_count = sizeof(tags) / sizeof(tags[0]);
 
   for (int j = 0; j < tag_count; j++) {
@@ -16546,8 +17197,8 @@
 
   START();
 
-  __ Movi(v0.V2D(),  0xff00aa5500ff55aa, 0xff00aa5500ff55aa);
-  __ Movi(v1.V2D(),  0x000055aaff55ff00, 0xaa55ff55555500ff);
+  __ Movi(v0.V2D(), 0xff00aa5500ff55aa, 0xff00aa5500ff55aa);
+  __ Movi(v1.V2D(), 0x000055aaff55ff00, 0xaa55ff55555500ff);
   __ Addp(v16.V16B(), v0.V16B(), v1.V16B());
 
   END();
@@ -16763,8 +17414,8 @@
 
   START();
 
-  __ Movi(v0.V2D(),  0xff00aa5500ff55aa, 0xff00aa5500ff55aa);
-  __ Movi(v1.V2D(),  0x000055aaff55ff00, 0xaa55ff55555500ff);
+  __ Movi(v0.V2D(), 0xff00aa5500ff55aa, 0xff00aa5500ff55aa);
+  __ Movi(v1.V2D(), 0x000055aaff55ff00, 0xaa55ff55555500ff);
   __ Movi(v16.V2D(), 0x0102030405060708, 0x090a0b0c0d0e0f00);
   __ Movi(v17.V2D(), 0x0102030405060708, 0x090a0b0c0d0e0f00);
 
@@ -16782,14 +17433,13 @@
 }
 
 
-
 TEST(neon_3same_absdiff) {
   SETUP();
 
   START();
 
-  __ Movi(v0.V2D(),  0xff00aa5500ff55aa, 0xff00aa5500ff55aa);
-  __ Movi(v1.V2D(),  0x000055aaff55ff00, 0xaa55ff55555500ff);
+  __ Movi(v0.V2D(), 0xff00aa5500ff55aa, 0xff00aa5500ff55aa);
+  __ Movi(v1.V2D(), 0x000055aaff55ff00, 0xaa55ff55555500ff);
   __ Movi(v16.V2D(), 0x0102030405060708, 0x090a0b0c0d0e0f00);
   __ Movi(v17.V2D(), 0x0102030405060708, 0x090a0b0c0d0e0f00);
 
@@ -16814,8 +17464,8 @@
 
   START();
 
-  __ Movi(v0.V2D(),  0xff00aa5500ff55aa, 0xff00aa5500ff55aa);
-  __ Movi(v1.V2D(),  0x000155aaff55ff00, 0xaa55ff55555500ff);
+  __ Movi(v0.V2D(), 0xff00aa5500ff55aa, 0xff00aa5500ff55aa);
+  __ Movi(v1.V2D(), 0x000155aaff55ff00, 0xaa55ff55555500ff);
 
 
   __ Mul(v16.V4H(), v0.V4H(), v1.H(), 0);
@@ -16869,13 +17519,13 @@
 
   START();
 
-  __ Movi(v0.V2D(),  0xaa55ff55555500ff, 0xff00aa5500ff55aa);
-  __ Movi(v1.V2D(),  0x000155aaff55ff00, 0xaa55ff55555500ff);
+  __ Movi(v0.V2D(), 0xaa55ff55555500ff, 0xff00aa5500ff55aa);
+  __ Movi(v1.V2D(), 0x000155aaff55ff00, 0xaa55ff55555500ff);
 
 
-  __ Smull(v16.V4S(),  v0.V4H(), v1.H(), 7);
+  __ Smull(v16.V4S(), v0.V4H(), v1.H(), 7);
   __ Smull2(v17.V4S(), v0.V8H(), v1.H(), 0);
-  __ Umull(v18.V4S(),  v0.V4H(), v1.H(), 7);
+  __ Umull(v18.V4S(), v0.V4H(), v1.H(), 7);
   __ Umull2(v19.V4S(), v0.V8H(), v1.H(), 0);
 
   __ Movi(v20.V2D(), 0x0000000100000002, 0x0000000200000001);
@@ -16883,9 +17533,9 @@
   __ Movi(v22.V2D(), 0x0000000100000002, 0x0000000200000001);
   __ Movi(v23.V2D(), 0x0000000100000002, 0x0000000200000001);
 
-  __ Smlal(v20.V4S(),  v0.V4H(), v1.H(), 7);
+  __ Smlal(v20.V4S(), v0.V4H(), v1.H(), 7);
   __ Smlal2(v21.V4S(), v0.V8H(), v1.H(), 0);
-  __ Umlal(v22.V4S(),  v0.V4H(), v1.H(), 7);
+  __ Umlal(v22.V4S(), v0.V4H(), v1.H(), 7);
   __ Umlal2(v23.V4S(), v0.V8H(), v1.H(), 0);
 
   __ Movi(v24.V2D(), 0xffffff00ffffaa55, 0x000000ff000055aa);
@@ -16893,9 +17543,9 @@
   __ Movi(v26.V2D(), 0x0000ff000000aa55, 0x000000ff000055aa);
   __ Movi(v27.V2D(), 0x00a9aaab00fe55ab, 0x0054ffab0000fe01);
 
-  __ Smlsl(v24.V4S(),  v0.V4H(), v1.H(), 7);
+  __ Smlsl(v24.V4S(), v0.V4H(), v1.H(), 7);
   __ Smlsl2(v25.V4S(), v0.V8H(), v1.H(), 0);
-  __ Umlsl(v26.V4S(),  v0.V4H(), v1.H(), 7);
+  __ Umlsl(v26.V4S(), v0.V4H(), v1.H(), 7);
   __ Umlsl2(v27.V4S(), v0.V8H(), v1.H(), 0);
 
   END();
@@ -16974,8 +17624,8 @@
 
   START();
 
-  __ Movi(v0.V2D(),  0xff00aa5500ff55ab, 0xff00aa5500ff55aa);
-  __ Movi(v1.V2D(),  0x000055aaff55ff00, 0xaa55ff55555500ff);
+  __ Movi(v0.V2D(), 0xff00aa5500ff55ab, 0xff00aa5500ff55aa);
+  __ Movi(v1.V2D(), 0x000055aaff55ff00, 0xaa55ff55555500ff);
   __ Movi(v16.V2D(), 0x0102030405060708, 0x090a0b0c0d0e0f00);
   __ Movi(v17.V2D(), 0x0102030405060708, 0x090a0b0c0d0e0f00);
   __ Movi(v18.V2D(), 0x0102030405060708, 0x090a0b0c0d0e0f00);
@@ -17002,14 +17652,14 @@
 
   START();
 
-  __ Movi(v0.V2D(),  0x7fff7fff80008000, 0x80007fff7fff8000);
-  __ Movi(v1.V2D(),  0x80007fff7fff8000, 0x7fff7fff80008000);
-  __ Movi(v2.V2D(),  0x800000007fffffff, 0x7fffffff80000000);
-  __ Movi(v3.V2D(),  0x8000000080000000, 0x8000000080000000);
+  __ Movi(v0.V2D(), 0x7fff7fff80008000, 0x80007fff7fff8000);
+  __ Movi(v1.V2D(), 0x80007fff7fff8000, 0x7fff7fff80008000);
+  __ Movi(v2.V2D(), 0x800000007fffffff, 0x7fffffff80000000);
+  __ Movi(v3.V2D(), 0x8000000080000000, 0x8000000080000000);
 
-  __ Sqdmull(v16.V4S(),  v0.V4H(), v1.V4H());
+  __ Sqdmull(v16.V4S(), v0.V4H(), v1.V4H());
   __ Sqdmull2(v17.V4S(), v0.V8H(), v1.V8H());
-  __ Sqdmull(v18.V2D(),  v2.V2S(), v3.V2S());
+  __ Sqdmull(v18.V2D(), v2.V2S(), v3.V2S());
   __ Sqdmull2(v19.V2D(), v2.V4S(), v3.V4S());
   __ Sqdmull(s20, h0, h1);
   __ Sqdmull(d21, s2, s3);
@@ -17032,10 +17682,10 @@
 
   START();
 
-  __ Movi(v0.V2D(),  0x7fff7fff80008000, 0x80007fff7fff8000);
-  __ Movi(v1.V2D(),  0x80007fff7fff8000, 0x7fff7fff80008000);
-  __ Movi(v2.V2D(),  0x800000007fffffff, 0x7fffffff80000000);
-  __ Movi(v3.V2D(),  0x8000000080000000, 0x8000000080000000);
+  __ Movi(v0.V2D(), 0x7fff7fff80008000, 0x80007fff7fff8000);
+  __ Movi(v1.V2D(), 0x80007fff7fff8000, 0x7fff7fff80008000);
+  __ Movi(v2.V2D(), 0x800000007fffffff, 0x7fffffff80000000);
+  __ Movi(v3.V2D(), 0x8000000080000000, 0x8000000080000000);
 
   __ Movi(v16.V2D(), 0xffffffff00000001, 0x8fffffff00000001);
   __ Movi(v17.V2D(), 0x00000001ffffffff, 0x00000001ffffffff);
@@ -17044,9 +17694,9 @@
   __ Movi(v20.V2D(), 0, 0x00000001);
   __ Movi(v21.V2D(), 0, 0x00000001);
 
-  __ Sqdmlal(v16.V4S(),  v0.V4H(), v1.V4H());
+  __ Sqdmlal(v16.V4S(), v0.V4H(), v1.V4H());
   __ Sqdmlal2(v17.V4S(), v0.V8H(), v1.V8H());
-  __ Sqdmlal(v18.V2D(),  v2.V2S(), v3.V2S());
+  __ Sqdmlal(v18.V2D(), v2.V2S(), v3.V2S());
   __ Sqdmlal2(v19.V2D(), v2.V4S(), v3.V4S());
   __ Sqdmlal(s20, h0, h1);
   __ Sqdmlal(d21, s2, s3);
@@ -17069,10 +17719,10 @@
 
   START();
 
-  __ Movi(v0.V2D(),  0x7fff7fff80008000, 0x80007fff7fff8000);
-  __ Movi(v1.V2D(),  0x80007fff7fff8000, 0x7fff7fff80008000);
-  __ Movi(v2.V2D(),  0x800000007fffffff, 0x7fffffff80000000);
-  __ Movi(v3.V2D(),  0x8000000080000000, 0x8000000080000000);
+  __ Movi(v0.V2D(), 0x7fff7fff80008000, 0x80007fff7fff8000);
+  __ Movi(v1.V2D(), 0x80007fff7fff8000, 0x7fff7fff80008000);
+  __ Movi(v2.V2D(), 0x800000007fffffff, 0x7fffffff80000000);
+  __ Movi(v3.V2D(), 0x8000000080000000, 0x8000000080000000);
 
   __ Movi(v16.V2D(), 0xffffffff00000001, 0x7ffffffe80000001);
   __ Movi(v17.V2D(), 0x00000001ffffffff, 0x7ffffffe00000001);
@@ -17081,9 +17731,9 @@
   __ Movi(v20.V2D(), 0, 0x00000001);
   __ Movi(v21.V2D(), 0, 0x00000001);
 
-  __ Sqdmlsl(v16.V4S(),  v0.V4H(), v1.V4H());
+  __ Sqdmlsl(v16.V4S(), v0.V4H(), v1.V4H());
   __ Sqdmlsl2(v17.V4S(), v0.V8H(), v1.V8H());
-  __ Sqdmlsl(v18.V2D(),  v2.V2S(), v3.V2S());
+  __ Sqdmlsl(v18.V2D(), v2.V2S(), v3.V2S());
   __ Sqdmlsl2(v19.V2D(), v2.V4S(), v3.V4S());
   __ Sqdmlsl(s20, h0, h1);
   __ Sqdmlsl(d21, s2, s3);
@@ -17107,8 +17757,8 @@
 
   START();
 
-  __ Movi(v0.V2D(),  0xff00aa5500ff55ab, 0xff00aa5500ff55aa);
-  __ Movi(v1.V2D(),  0x000055aaff55ff00, 0xaa55ff55555500ff);
+  __ Movi(v0.V2D(), 0xff00aa5500ff55ab, 0xff00aa5500ff55aa);
+  __ Movi(v1.V2D(), 0x000055aaff55ff00, 0xaa55ff55555500ff);
   __ Movi(v16.V2D(), 0x0102030405060708, 0x090a0b0c0d0e0f00);
   __ Movi(v17.V2D(), 0x0102030405060708, 0x090a0b0c0d0e0f00);
   __ Movi(v18.V2D(), 0x0102030405060708, 0x090a0b0c0d0e0f00);
@@ -17135,8 +17785,8 @@
 
   START();
 
-  __ Movi(v0.V2D(),  0xff00aa5500ff55ab, 0xff00aa5500ff55aa);
-  __ Movi(v1.V2D(),  0x000055aaff55ff00, 0xaa55ff55555500ff);
+  __ Movi(v0.V2D(), 0xff00aa5500ff55ab, 0xff00aa5500ff55aa);
+  __ Movi(v1.V2D(), 0x000055aaff55ff00, 0xaa55ff55555500ff);
   __ Movi(v16.V2D(), 0x0102030405060708, 0x090a0b0c0d0e0f00);
   __ Movi(v17.V2D(), 0x0102030405060708, 0x090a0b0c0d0e0f00);
   __ Movi(v18.V2D(), 0x0102030405060708, 0x090a0b0c0d0e0f00);
@@ -17432,15 +18082,15 @@
   __ Movi(v0.V2D(), 0x0001000200030004, 0x0000000000000000);
   __ Movi(v1.V2D(), 0x000055aaff55ff00, 0x0000ff55555500ff);
 
-  __ Cmeq(v16.V8B(),  v1.V8B(),  0);
+  __ Cmeq(v16.V8B(), v1.V8B(), 0);
   __ Cmeq(v17.V16B(), v1.V16B(), 0);
-  __ Cmeq(v18.V4H(),  v1.V4H(),  0);
-  __ Cmeq(v19.V8H(),  v1.V8H(),  0);
-  __ Cmeq(v20.V2S(),  v0.V2S(),  0);
-  __ Cmeq(v21.V4S(),  v0.V4S(),  0);
-  __ Cmeq(d22,  d0,  0);
-  __ Cmeq(d23,  d1,  0);
-  __ Cmeq(v24.V2D(),  v0.V2D(),  0);
+  __ Cmeq(v18.V4H(), v1.V4H(), 0);
+  __ Cmeq(v19.V8H(), v1.V8H(), 0);
+  __ Cmeq(v20.V2S(), v0.V2S(), 0);
+  __ Cmeq(v21.V4S(), v0.V4S(), 0);
+  __ Cmeq(d22, d0, 0);
+  __ Cmeq(d23, d1, 0);
+  __ Cmeq(v24.V2D(), v0.V2D(), 0);
 
   END();
 
@@ -17466,15 +18116,15 @@
   __ Movi(v0.V2D(), 0xff01000200030004, 0x0000000000000000);
   __ Movi(v1.V2D(), 0x000055aaff55ff00, 0x0000ff55555500ff);
 
-  __ Cmge(v16.V8B(),  v1.V8B(),  0);
+  __ Cmge(v16.V8B(), v1.V8B(), 0);
   __ Cmge(v17.V16B(), v1.V16B(), 0);
-  __ Cmge(v18.V4H(),  v1.V4H(),  0);
-  __ Cmge(v19.V8H(),  v1.V8H(),  0);
-  __ Cmge(v20.V2S(),  v0.V2S(),  0);
-  __ Cmge(v21.V4S(),  v0.V4S(),  0);
-  __ Cmge(d22,  d0,  0);
-  __ Cmge(d23,  d1,  0);
-  __ Cmge(v24.V2D(),  v0.V2D(),  0);
+  __ Cmge(v18.V4H(), v1.V4H(), 0);
+  __ Cmge(v19.V8H(), v1.V8H(), 0);
+  __ Cmge(v20.V2S(), v0.V2S(), 0);
+  __ Cmge(v21.V4S(), v0.V4S(), 0);
+  __ Cmge(d22, d0, 0);
+  __ Cmge(d23, d1, 0);
+  __ Cmge(v24.V2D(), v0.V2D(), 0);
 
   END();
 
@@ -17500,15 +18150,15 @@
   __ Movi(v0.V2D(), 0x0001000200030004, 0xff00000000000000);
   __ Movi(v1.V2D(), 0x000055aaff55ff00, 0x0000ff55555500ff);
 
-  __ Cmlt(v16.V8B(),  v1.V8B(),  0);
+  __ Cmlt(v16.V8B(), v1.V8B(), 0);
   __ Cmlt(v17.V16B(), v1.V16B(), 0);
-  __ Cmlt(v18.V4H(),  v1.V4H(),  0);
-  __ Cmlt(v19.V8H(),  v1.V8H(),  0);
-  __ Cmlt(v20.V2S(),  v1.V2S(),  0);
-  __ Cmlt(v21.V4S(),  v1.V4S(),  0);
-  __ Cmlt(d22,  d0,  0);
-  __ Cmlt(d23,  d1,  0);
-  __ Cmlt(v24.V2D(),  v0.V2D(),  0);
+  __ Cmlt(v18.V4H(), v1.V4H(), 0);
+  __ Cmlt(v19.V8H(), v1.V8H(), 0);
+  __ Cmlt(v20.V2S(), v1.V2S(), 0);
+  __ Cmlt(v21.V4S(), v1.V4S(), 0);
+  __ Cmlt(d22, d0, 0);
+  __ Cmlt(d23, d1, 0);
+  __ Cmlt(v24.V2D(), v0.V2D(), 0);
 
   END();
 
@@ -17534,15 +18184,15 @@
   __ Movi(v0.V2D(), 0x0001000200030004, 0x0000000000000000);
   __ Movi(v1.V2D(), 0x000055aaff55ff00, 0x0000ff55555500ff);
 
-  __ Cmle(v16.V8B(),  v1.V8B(),  0);
+  __ Cmle(v16.V8B(), v1.V8B(), 0);
   __ Cmle(v17.V16B(), v1.V16B(), 0);
-  __ Cmle(v18.V4H(),  v1.V4H(),  0);
-  __ Cmle(v19.V8H(),  v1.V8H(),  0);
-  __ Cmle(v20.V2S(),  v1.V2S(),  0);
-  __ Cmle(v21.V4S(),  v1.V4S(),  0);
-  __ Cmle(d22,  d0,  0);
-  __ Cmle(d23,  d1,  0);
-  __ Cmle(v24.V2D(),  v0.V2D(),  0);
+  __ Cmle(v18.V4H(), v1.V4H(), 0);
+  __ Cmle(v19.V8H(), v1.V8H(), 0);
+  __ Cmle(v20.V2S(), v1.V2S(), 0);
+  __ Cmle(v21.V4S(), v1.V4S(), 0);
+  __ Cmle(d22, d0, 0);
+  __ Cmle(d23, d1, 0);
+  __ Cmle(v24.V2D(), v0.V2D(), 0);
 
   END();
 
@@ -17568,15 +18218,15 @@
   __ Movi(v0.V2D(), 0x0001000200030004, 0x0000000000000000);
   __ Movi(v1.V2D(), 0x000055aaff55ff00, 0x0000ff55555500ff);
 
-  __ Cmgt(v16.V8B(),  v1.V8B(),  0);
+  __ Cmgt(v16.V8B(), v1.V8B(), 0);
   __ Cmgt(v17.V16B(), v1.V16B(), 0);
-  __ Cmgt(v18.V4H(),  v1.V4H(),  0);
-  __ Cmgt(v19.V8H(),  v1.V8H(),  0);
-  __ Cmgt(v20.V2S(),  v0.V2S(),  0);
-  __ Cmgt(v21.V4S(),  v0.V4S(),  0);
-  __ Cmgt(d22,  d0,  0);
-  __ Cmgt(d23,  d1,  0);
-  __ Cmgt(v24.V2D(),  v0.V2D(),  0);
+  __ Cmgt(v18.V4H(), v1.V4H(), 0);
+  __ Cmgt(v19.V8H(), v1.V8H(), 0);
+  __ Cmgt(v20.V2S(), v0.V2S(), 0);
+  __ Cmgt(v21.V4S(), v0.V4S(), 0);
+  __ Cmgt(d22, d0, 0);
+  __ Cmgt(d23, d1, 0);
+  __ Cmgt(v24.V2D(), v0.V2D(), 0);
 
   END();
 
@@ -17605,15 +18255,15 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Neg(v16.V8B(),  v0.V8B());
+  __ Neg(v16.V8B(), v0.V8B());
   __ Neg(v17.V16B(), v0.V16B());
-  __ Neg(v18.V4H(),  v1.V4H());
-  __ Neg(v19.V8H(),  v1.V8H());
-  __ Neg(v20.V2S(),  v2.V2S());
-  __ Neg(v21.V4S(),  v2.V4S());
+  __ Neg(v18.V4H(), v1.V4H());
+  __ Neg(v19.V8H(), v1.V8H());
+  __ Neg(v20.V2S(), v2.V2S());
+  __ Neg(v21.V4S(), v2.V4S());
   __ Neg(d22, d3);
-  __ Neg(v23.V2D(),  v3.V2D());
-  __ Neg(v24.V2D(),  v4.V2D());
+  __ Neg(v23.V2D(), v3.V2D());
+  __ Neg(v24.V2D(), v4.V2D());
 
   END();
 
@@ -17643,14 +18293,14 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Sqneg(v16.V8B(),  v0.V8B());
+  __ Sqneg(v16.V8B(), v0.V8B());
   __ Sqneg(v17.V16B(), v0.V16B());
-  __ Sqneg(v18.V4H(),  v1.V4H());
-  __ Sqneg(v19.V8H(),  v1.V8H());
-  __ Sqneg(v20.V2S(),  v2.V2S());
-  __ Sqneg(v21.V4S(),  v2.V4S());
-  __ Sqneg(v22.V2D(),  v3.V2D());
-  __ Sqneg(v23.V2D(),  v4.V2D());
+  __ Sqneg(v18.V4H(), v1.V4H());
+  __ Sqneg(v19.V8H(), v1.V8H());
+  __ Sqneg(v20.V2S(), v2.V2S());
+  __ Sqneg(v21.V4S(), v2.V4S());
+  __ Sqneg(v22.V2D(), v3.V2D());
+  __ Sqneg(v23.V2D(), v4.V2D());
 
   __ Sqneg(b24, b0);
   __ Sqneg(h25, h1);
@@ -17689,15 +18339,15 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Abs(v16.V8B(),  v0.V8B());
+  __ Abs(v16.V8B(), v0.V8B());
   __ Abs(v17.V16B(), v0.V16B());
-  __ Abs(v18.V4H(),  v1.V4H());
-  __ Abs(v19.V8H(),  v1.V8H());
-  __ Abs(v20.V2S(),  v2.V2S());
-  __ Abs(v21.V4S(),  v2.V4S());
+  __ Abs(v18.V4H(), v1.V4H());
+  __ Abs(v19.V8H(), v1.V8H());
+  __ Abs(v20.V2S(), v2.V2S());
+  __ Abs(v21.V4S(), v2.V4S());
   __ Abs(d22, d3);
-  __ Abs(v23.V2D(),  v3.V2D());
-  __ Abs(v24.V2D(),  v4.V2D());
+  __ Abs(v23.V2D(), v3.V2D());
+  __ Abs(v24.V2D(), v4.V2D());
 
   END();
 
@@ -17727,14 +18377,14 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Sqabs(v16.V8B(),  v0.V8B());
+  __ Sqabs(v16.V8B(), v0.V8B());
   __ Sqabs(v17.V16B(), v0.V16B());
-  __ Sqabs(v18.V4H(),  v1.V4H());
-  __ Sqabs(v19.V8H(),  v1.V8H());
-  __ Sqabs(v20.V2S(),  v2.V2S());
-  __ Sqabs(v21.V4S(),  v2.V4S());
-  __ Sqabs(v22.V2D(),  v3.V2D());
-  __ Sqabs(v23.V2D(),  v4.V2D());
+  __ Sqabs(v18.V4H(), v1.V4H());
+  __ Sqabs(v19.V8H(), v1.V8H());
+  __ Sqabs(v20.V2S(), v2.V2S());
+  __ Sqabs(v21.V4S(), v2.V4S());
+  __ Sqabs(v22.V2D(), v3.V2D());
+  __ Sqabs(v23.V2D(), v4.V2D());
 
   __ Sqabs(b24, b0);
   __ Sqabs(h25, h1);
@@ -17955,12 +18605,12 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Xtn(v16.V8B(),   v0.V8H());
+  __ Xtn(v16.V8B(), v0.V8H());
   __ Xtn2(v16.V16B(), v1.V8H());
-  __ Xtn(v17.V4H(),   v1.V4S());
-  __ Xtn2(v17.V8H(),  v2.V4S());
-  __ Xtn(v18.V2S(),   v3.V2D());
-  __ Xtn2(v18.V4S(),  v4.V2D());
+  __ Xtn(v17.V4H(), v1.V4S());
+  __ Xtn2(v17.V8H(), v2.V4S());
+  __ Xtn(v18.V2S(), v3.V2D());
+  __ Xtn2(v18.V4S(), v4.V2D());
 
   END();
 
@@ -17983,15 +18633,15 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Sqxtn(v16.V8B(),   v0.V8H());
+  __ Sqxtn(v16.V8B(), v0.V8H());
   __ Sqxtn2(v16.V16B(), v1.V8H());
-  __ Sqxtn(v17.V4H(),   v1.V4S());
-  __ Sqxtn2(v17.V8H(),  v2.V4S());
-  __ Sqxtn(v18.V2S(),   v3.V2D());
-  __ Sqxtn2(v18.V4S(),  v4.V2D());
-  __ Sqxtn(b19,  h0);
-  __ Sqxtn(h20,  s0);
-  __ Sqxtn(s21,  d0);
+  __ Sqxtn(v17.V4H(), v1.V4S());
+  __ Sqxtn2(v17.V8H(), v2.V4S());
+  __ Sqxtn(v18.V2S(), v3.V2D());
+  __ Sqxtn2(v18.V4S(), v4.V2D());
+  __ Sqxtn(b19, h0);
+  __ Sqxtn(h20, s0);
+  __ Sqxtn(s21, d0);
 
   END();
 
@@ -18017,15 +18667,15 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Uqxtn(v16.V8B(),   v0.V8H());
+  __ Uqxtn(v16.V8B(), v0.V8H());
   __ Uqxtn2(v16.V16B(), v1.V8H());
-  __ Uqxtn(v17.V4H(),   v1.V4S());
-  __ Uqxtn2(v17.V8H(),  v2.V4S());
-  __ Uqxtn(v18.V2S(),   v3.V2D());
-  __ Uqxtn2(v18.V4S(),  v4.V2D());
-  __ Uqxtn(b19,  h0);
-  __ Uqxtn(h20,  s0);
-  __ Uqxtn(s21,  d0);
+  __ Uqxtn(v17.V4H(), v1.V4S());
+  __ Uqxtn2(v17.V8H(), v2.V4S());
+  __ Uqxtn(v18.V2S(), v3.V2D());
+  __ Uqxtn2(v18.V4S(), v4.V2D());
+  __ Uqxtn(b19, h0);
+  __ Uqxtn(h20, s0);
+  __ Uqxtn(s21, d0);
 
   END();
 
@@ -18051,15 +18701,15 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Sqxtun(v16.V8B(),   v0.V8H());
+  __ Sqxtun(v16.V8B(), v0.V8H());
   __ Sqxtun2(v16.V16B(), v1.V8H());
-  __ Sqxtun(v17.V4H(),   v1.V4S());
-  __ Sqxtun2(v17.V8H(),  v2.V4S());
-  __ Sqxtun(v18.V2S(),   v3.V2D());
-  __ Sqxtun2(v18.V4S(),  v4.V2D());
-  __ Sqxtun(b19,  h0);
-  __ Sqxtun(h20,  s0);
-  __ Sqxtun(s21,  d0);
+  __ Sqxtun(v17.V4H(), v1.V4S());
+  __ Sqxtun2(v17.V8H(), v2.V4S());
+  __ Sqxtun(v18.V2S(), v3.V2D());
+  __ Sqxtun2(v18.V4S(), v4.V2D());
+  __ Sqxtun(b19, h0);
+  __ Sqxtun(h20, s0);
+  __ Sqxtun(s21, d0);
 
   END();
 
@@ -18083,8 +18733,8 @@
 
   __ And(v16.V16B(), v0.V16B(), v0.V16B());  // self test
   __ And(v17.V16B(), v0.V16B(), v1.V16B());  // all combinations
-  __ And(v24.V8B(), v0.V8B(), v0.V8B());  // self test
-  __ And(v25.V8B(), v0.V8B(), v1.V8B());  // all combinations
+  __ And(v24.V8B(), v0.V8B(), v0.V8B());     // self test
+  __ And(v25.V8B(), v0.V8B(), v1.V8B());     // all combinations
   END();
 
   RUN();
@@ -18105,8 +18755,8 @@
 
   __ Bic(v16.V16B(), v0.V16B(), v0.V16B());  // self test
   __ Bic(v17.V16B(), v0.V16B(), v1.V16B());  // all combinations
-  __ Bic(v24.V8B(), v0.V8B(), v0.V8B());  // self test
-  __ Bic(v25.V8B(), v0.V8B(), v1.V8B());  // all combinations
+  __ Bic(v24.V8B(), v0.V8B(), v0.V8B());     // self test
+  __ Bic(v25.V8B(), v0.V8B(), v1.V8B());     // all combinations
   END();
 
   RUN();
@@ -18127,8 +18777,8 @@
 
   __ Orr(v16.V16B(), v0.V16B(), v0.V16B());  // self test
   __ Orr(v17.V16B(), v0.V16B(), v1.V16B());  // all combinations
-  __ Orr(v24.V8B(), v0.V8B(), v0.V8B());  // self test
-  __ Orr(v25.V8B(), v0.V8B(), v1.V8B());  // all combinations
+  __ Orr(v24.V8B(), v0.V8B(), v0.V8B());     // self test
+  __ Orr(v25.V8B(), v0.V8B(), v1.V8B());     // all combinations
   END();
 
   RUN();
@@ -18180,8 +18830,8 @@
 
   __ Orn(v16.V16B(), v0.V16B(), v0.V16B());  // self test
   __ Orn(v17.V16B(), v0.V16B(), v1.V16B());  // all combinations
-  __ Orn(v24.V8B(), v0.V8B(), v0.V8B());  // self test
-  __ Orn(v25.V8B(), v0.V8B(), v1.V8B());  // all combinations
+  __ Orn(v24.V8B(), v0.V8B(), v0.V8B());     // self test
+  __ Orn(v25.V8B(), v0.V8B(), v1.V8B());     // all combinations
   END();
 
   RUN();
@@ -18202,8 +18852,8 @@
 
   __ Eor(v16.V16B(), v0.V16B(), v0.V16B());  // self test
   __ Eor(v17.V16B(), v0.V16B(), v1.V16B());  // all combinations
-  __ Eor(v24.V8B(), v0.V8B(), v0.V8B());  // self test
-  __ Eor(v25.V8B(), v0.V8B(), v1.V8B());  // all combinations
+  __ Eor(v24.V8B(), v0.V8B(), v0.V8B());     // self test
+  __ Eor(v25.V8B(), v0.V8B(), v1.V8B());     // all combinations
   END();
 
   RUN();
@@ -18727,21 +19377,21 @@
   __ Movi(v0.V2D(), 0x0001020304050607, 0x08090a0b0c0d0e0f);
   __ Movi(v1.V2D(), 0xfedcba9876543210, 0x0123456789abcdef);
 
-  __ Cls(v16.V8B() , v1.V8B());
+  __ Cls(v16.V8B(), v1.V8B());
   __ Cls(v17.V16B(), v1.V16B());
-  __ Cls(v18.V4H() , v1.V4H());
-  __ Cls(v19.V8H() , v1.V8H());
-  __ Cls(v20.V2S() , v1.V2S());
-  __ Cls(v21.V4S() , v1.V4S());
+  __ Cls(v18.V4H(), v1.V4H());
+  __ Cls(v19.V8H(), v1.V8H());
+  __ Cls(v20.V2S(), v1.V2S());
+  __ Cls(v21.V4S(), v1.V4S());
 
-  __ Clz(v22.V8B() , v0.V8B());
+  __ Clz(v22.V8B(), v0.V8B());
   __ Clz(v23.V16B(), v0.V16B());
-  __ Clz(v24.V4H() , v0.V4H());
-  __ Clz(v25.V8H() , v0.V8H());
-  __ Clz(v26.V2S() , v0.V2S());
-  __ Clz(v27.V4S() , v0.V4S());
+  __ Clz(v24.V4H(), v0.V4H());
+  __ Clz(v25.V8H(), v0.V8H());
+  __ Clz(v26.V2S(), v0.V2S());
+  __ Clz(v27.V4S(), v0.V4S());
 
-  __ Cnt(v28.V8B() , v0.V8B());
+  __ Cnt(v28.V8B(), v0.V8B());
   __ Cnt(v29.V16B(), v1.V16B());
 
   END();
@@ -18776,22 +19426,22 @@
   __ Movi(v0.V2D(), 0x0001020304050607, 0x08090a0b0c0d0e0f);
   __ Movi(v1.V2D(), 0xfedcba9876543210, 0x0123456789abcdef);
 
-  __ Rev16(v16.V8B() , v0.V8B());
+  __ Rev16(v16.V8B(), v0.V8B());
   __ Rev16(v17.V16B(), v0.V16B());
 
-  __ Rev32(v18.V8B() , v0.V8B());
+  __ Rev32(v18.V8B(), v0.V8B());
   __ Rev32(v19.V16B(), v0.V16B());
-  __ Rev32(v20.V4H() , v0.V4H());
-  __ Rev32(v21.V8H() , v0.V8H());
+  __ Rev32(v20.V4H(), v0.V4H());
+  __ Rev32(v21.V8H(), v0.V8H());
 
-  __ Rev64(v22.V8B() , v0.V8B());
+  __ Rev64(v22.V8B(), v0.V8B());
   __ Rev64(v23.V16B(), v0.V16B());
-  __ Rev64(v24.V4H() , v0.V4H());
-  __ Rev64(v25.V8H() , v0.V8H());
-  __ Rev64(v26.V2S() , v0.V2S());
-  __ Rev64(v27.V4S() , v0.V4S());
+  __ Rev64(v24.V4H(), v0.V4H());
+  __ Rev64(v25.V8H(), v0.V8H());
+  __ Rev64(v26.V2S(), v0.V2S());
+  __ Rev64(v27.V4S(), v0.V4S());
 
-  __ Rbit(v28.V8B() , v1.V8B());
+  __ Rbit(v28.V8B(), v1.V8B());
   __ Rbit(v29.V16B(), v1.V16B());
 
   END();
@@ -18828,24 +19478,24 @@
   __ Movi(v0.V2D(), 0x0001020304050607, 0x08090a0b0c0d0e0f);
   __ Movi(v1.V2D(), 0xfedcba9876543210, 0x0123456789abcdef);
 
-  __ Mov(v16.V2D(),  v0.V2D());
-  __ Mov(v17.V2D(),  v0.V2D());
-  __ Mov(v18.V2D(),  v0.V2D());
-  __ Mov(v19.V2D(),  v0.V2D());
-  __ Mov(v20.V2D(),  v0.V2D());
-  __ Mov(v21.V2D(),  v0.V2D());
-  __ Mov(v22.V2D(),  v0.V2D());
-  __ Mov(v23.V2D(),  v0.V2D());
+  __ Mov(v16.V2D(), v0.V2D());
+  __ Mov(v17.V2D(), v0.V2D());
+  __ Mov(v18.V2D(), v0.V2D());
+  __ Mov(v19.V2D(), v0.V2D());
+  __ Mov(v20.V2D(), v0.V2D());
+  __ Mov(v21.V2D(), v0.V2D());
+  __ Mov(v22.V2D(), v0.V2D());
+  __ Mov(v23.V2D(), v0.V2D());
 
-  __ Sli(v16.V8B(),  v1.V8B(),  4);
+  __ Sli(v16.V8B(), v1.V8B(), 4);
   __ Sli(v17.V16B(), v1.V16B(), 7);
-  __ Sli(v18.V4H(),  v1.V4H(),  8);
-  __ Sli(v19.V8H(),  v1.V8H(), 15);
-  __ Sli(v20.V2S(),  v1.V2S(),  0);
-  __ Sli(v21.V4S(),  v1.V4S(), 31);
-  __ Sli(v22.V2D(),  v1.V2D(), 48);
+  __ Sli(v18.V4H(), v1.V4H(), 8);
+  __ Sli(v19.V8H(), v1.V8H(), 15);
+  __ Sli(v20.V2S(), v1.V2S(), 0);
+  __ Sli(v21.V4S(), v1.V4S(), 31);
+  __ Sli(v22.V2D(), v1.V2D(), 48);
 
-  __ Sli(d23,  d1, 48);
+  __ Sli(d23, d1, 48);
 
   END();
 
@@ -18874,24 +19524,24 @@
   __ Movi(v0.V2D(), 0x0001020304050607, 0x08090a0b0c0d0e0f);
   __ Movi(v1.V2D(), 0xfedcba9876543210, 0x0123456789abcdef);
 
-  __ Mov(v16.V2D(),  v0.V2D());
-  __ Mov(v17.V2D(),  v0.V2D());
-  __ Mov(v18.V2D(),  v0.V2D());
-  __ Mov(v19.V2D(),  v0.V2D());
-  __ Mov(v20.V2D(),  v0.V2D());
-  __ Mov(v21.V2D(),  v0.V2D());
-  __ Mov(v22.V2D(),  v0.V2D());
-  __ Mov(v23.V2D(),  v0.V2D());
+  __ Mov(v16.V2D(), v0.V2D());
+  __ Mov(v17.V2D(), v0.V2D());
+  __ Mov(v18.V2D(), v0.V2D());
+  __ Mov(v19.V2D(), v0.V2D());
+  __ Mov(v20.V2D(), v0.V2D());
+  __ Mov(v21.V2D(), v0.V2D());
+  __ Mov(v22.V2D(), v0.V2D());
+  __ Mov(v23.V2D(), v0.V2D());
 
-  __ Sri(v16.V8B(),  v1.V8B(),  4);
+  __ Sri(v16.V8B(), v1.V8B(), 4);
   __ Sri(v17.V16B(), v1.V16B(), 7);
-  __ Sri(v18.V4H(),  v1.V4H(),  8);
-  __ Sri(v19.V8H(),  v1.V8H(), 15);
-  __ Sri(v20.V2S(),  v1.V2S(),  1);
-  __ Sri(v21.V4S(),  v1.V4S(), 31);
-  __ Sri(v22.V2D(),  v1.V2D(), 48);
+  __ Sri(v18.V4H(), v1.V4H(), 8);
+  __ Sri(v19.V8H(), v1.V8H(), 15);
+  __ Sri(v20.V2S(), v1.V2S(), 1);
+  __ Sri(v21.V4S(), v1.V4S(), 31);
+  __ Sri(v22.V2D(), v1.V2D(), 48);
 
-  __ Sri(d23,  d1, 48);
+  __ Sri(d23, d1, 48);
 
   END();
 
@@ -18923,12 +19573,12 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Shrn(v16.V8B(),   v0.V8H(), 8);
+  __ Shrn(v16.V8B(), v0.V8H(), 8);
   __ Shrn2(v16.V16B(), v1.V8H(), 1);
-  __ Shrn(v17.V4H(),   v1.V4S(), 16);
-  __ Shrn2(v17.V8H(),  v2.V4S(), 1);
-  __ Shrn(v18.V2S(),   v3.V2D(), 32);
-  __ Shrn2(v18.V4S(),  v3.V2D(), 1);
+  __ Shrn(v17.V4H(), v1.V4S(), 16);
+  __ Shrn2(v17.V8H(), v2.V4S(), 1);
+  __ Shrn(v18.V2S(), v3.V2D(), 32);
+  __ Shrn2(v18.V4S(), v3.V2D(), 1);
 
   END();
 
@@ -18951,12 +19601,12 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Rshrn(v16.V8B(),   v0.V8H(), 8);
+  __ Rshrn(v16.V8B(), v0.V8H(), 8);
   __ Rshrn2(v16.V16B(), v1.V8H(), 1);
-  __ Rshrn(v17.V4H(),   v1.V4S(), 16);
-  __ Rshrn2(v17.V8H(),  v2.V4S(), 1);
-  __ Rshrn(v18.V2S(),   v3.V2D(), 32);
-  __ Rshrn2(v18.V4S(),  v3.V2D(), 1);
+  __ Rshrn(v17.V4H(), v1.V4S(), 16);
+  __ Rshrn2(v17.V8H(), v2.V4S(), 1);
+  __ Rshrn(v18.V2S(), v3.V2D(), 32);
+  __ Rshrn2(v18.V4S(), v3.V2D(), 1);
 
   END();
 
@@ -18979,12 +19629,12 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Uqshrn(v16.V8B(),   v0.V8H(), 8);
+  __ Uqshrn(v16.V8B(), v0.V8H(), 8);
   __ Uqshrn2(v16.V16B(), v1.V8H(), 1);
-  __ Uqshrn(v17.V4H(),   v1.V4S(), 16);
-  __ Uqshrn2(v17.V8H(),  v2.V4S(), 1);
-  __ Uqshrn(v18.V2S(),   v3.V2D(), 32);
-  __ Uqshrn2(v18.V4S(),  v3.V2D(), 1);
+  __ Uqshrn(v17.V4H(), v1.V4S(), 16);
+  __ Uqshrn2(v17.V8H(), v2.V4S(), 1);
+  __ Uqshrn(v18.V2S(), v3.V2D(), 32);
+  __ Uqshrn2(v18.V4S(), v3.V2D(), 1);
 
   __ Uqshrn(b19, h0, 8);
   __ Uqshrn(h20, s1, 16);
@@ -19014,12 +19664,12 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Uqrshrn(v16.V8B(),   v0.V8H(), 8);
+  __ Uqrshrn(v16.V8B(), v0.V8H(), 8);
   __ Uqrshrn2(v16.V16B(), v1.V8H(), 1);
-  __ Uqrshrn(v17.V4H(),   v1.V4S(), 16);
-  __ Uqrshrn2(v17.V8H(),  v2.V4S(), 1);
-  __ Uqrshrn(v18.V2S(),   v3.V2D(), 32);
-  __ Uqrshrn2(v18.V4S(),  v3.V2D(), 1);
+  __ Uqrshrn(v17.V4H(), v1.V4S(), 16);
+  __ Uqrshrn2(v17.V8H(), v2.V4S(), 1);
+  __ Uqrshrn(v18.V2S(), v3.V2D(), 32);
+  __ Uqrshrn2(v18.V4S(), v3.V2D(), 1);
 
   __ Uqrshrn(b19, h0, 8);
   __ Uqrshrn(h20, s1, 16);
@@ -19049,12 +19699,12 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Sqshrn(v16.V8B(),   v0.V8H(), 8);
+  __ Sqshrn(v16.V8B(), v0.V8H(), 8);
   __ Sqshrn2(v16.V16B(), v1.V8H(), 1);
-  __ Sqshrn(v17.V4H(),   v1.V4S(), 16);
-  __ Sqshrn2(v17.V8H(),  v2.V4S(), 1);
-  __ Sqshrn(v18.V2S(),   v3.V2D(), 32);
-  __ Sqshrn2(v18.V4S(),  v3.V2D(), 1);
+  __ Sqshrn(v17.V4H(), v1.V4S(), 16);
+  __ Sqshrn2(v17.V8H(), v2.V4S(), 1);
+  __ Sqshrn(v18.V2S(), v3.V2D(), 32);
+  __ Sqshrn2(v18.V4S(), v3.V2D(), 1);
 
   __ Sqshrn(b19, h0, 8);
   __ Sqshrn(h20, s1, 16);
@@ -19084,12 +19734,12 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Sqrshrn(v16.V8B(),   v0.V8H(), 8);
+  __ Sqrshrn(v16.V8B(), v0.V8H(), 8);
   __ Sqrshrn2(v16.V16B(), v1.V8H(), 1);
-  __ Sqrshrn(v17.V4H(),   v1.V4S(), 16);
-  __ Sqrshrn2(v17.V8H(),  v2.V4S(), 1);
-  __ Sqrshrn(v18.V2S(),   v3.V2D(), 32);
-  __ Sqrshrn2(v18.V4S(),  v3.V2D(), 1);
+  __ Sqrshrn(v17.V4H(), v1.V4S(), 16);
+  __ Sqrshrn2(v17.V8H(), v2.V4S(), 1);
+  __ Sqrshrn(v18.V2S(), v3.V2D(), 32);
+  __ Sqrshrn2(v18.V4S(), v3.V2D(), 1);
 
   __ Sqrshrn(b19, h0, 8);
   __ Sqrshrn(h20, s1, 16);
@@ -19119,12 +19769,12 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Sqshrun(v16.V8B(),   v0.V8H(), 8);
+  __ Sqshrun(v16.V8B(), v0.V8H(), 8);
   __ Sqshrun2(v16.V16B(), v1.V8H(), 1);
-  __ Sqshrun(v17.V4H(),   v1.V4S(), 16);
-  __ Sqshrun2(v17.V8H(),  v2.V4S(), 1);
-  __ Sqshrun(v18.V2S(),   v3.V2D(), 32);
-  __ Sqshrun2(v18.V4S(),  v3.V2D(), 1);
+  __ Sqshrun(v17.V4H(), v1.V4S(), 16);
+  __ Sqshrun2(v17.V8H(), v2.V4S(), 1);
+  __ Sqshrun(v18.V2S(), v3.V2D(), 32);
+  __ Sqshrun2(v18.V4S(), v3.V2D(), 1);
 
   __ Sqshrun(b19, h0, 8);
   __ Sqshrun(h20, s1, 16);
@@ -19154,12 +19804,12 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Sqrshrun(v16.V8B(),   v0.V8H(), 8);
+  __ Sqrshrun(v16.V8B(), v0.V8H(), 8);
   __ Sqrshrun2(v16.V16B(), v1.V8H(), 1);
-  __ Sqrshrun(v17.V4H(),   v1.V4S(), 16);
-  __ Sqrshrun2(v17.V8H(),  v2.V4S(), 1);
-  __ Sqrshrun(v18.V2S(),   v3.V2D(), 32);
-  __ Sqrshrun2(v18.V4S(),  v3.V2D(), 1);
+  __ Sqrshrun(v17.V4H(), v1.V4S(), 16);
+  __ Sqrshrun2(v17.V8H(), v2.V4S(), 1);
+  __ Sqrshrun(v18.V2S(), v3.V2D(), 32);
+  __ Sqrshrun2(v18.V4S(), v3.V2D(), 1);
 
   __ Sqrshrun(b19, h0, 8);
   __ Sqrshrun(h20, s1, 16);
@@ -19344,10 +19994,10 @@
 
   START();
 
-  __ Movi(v0.V8B(),  0xaa);
+  __ Movi(v0.V8B(), 0xaa);
   __ Movi(v1.V16B(), 0x55);
 
-  __ Movi(d2,       0x00ffff0000ffffff);
+  __ Movi(d2, 0x00ffff0000ffffff);
   __ Movi(v3.V2D(), 0x00ffff0000ffffff);
 
   __ Movi(v16.V4H(), 0x00, LSL, 0);
@@ -19614,9 +20264,9 @@
   __ Movi(v5.V2D(), 0x0011223344556677, 0x0123456789abcdef);
 
   __ Dup(v16.V16B(), v0.B(), 0);
-  __ Dup(v17.V8H(),  v1.H(), 7);
-  __ Dup(v18.V4S(),  v1.S(), 3);
-  __ Dup(v19.V2D(),  v0.D(), 0);
+  __ Dup(v17.V8H(), v1.H(), 7);
+  __ Dup(v18.V4S(), v1.S(), 3);
+  __ Dup(v19.V2D(), v0.D(), 0);
 
   __ Dup(v20.V8B(), v0.B(), 0);
   __ Dup(v21.V4H(), v1.H(), 7);
@@ -19628,9 +20278,9 @@
   __ Dup(v26.D(), v0.D(), 0);
 
   __ Dup(v2.V16B(), v2.B(), 0);
-  __ Dup(v3.V8H(),  v3.H(), 7);
-  __ Dup(v4.V4S(),  v4.S(), 0);
-  __ Dup(v5.V2D(),  v5.D(), 1);
+  __ Dup(v3.V8H(), v3.H(), 7);
+  __ Dup(v4.V4S(), v4.S(), 0);
+  __ Dup(v5.V2D(), v5.D(), 1);
 
   END();
 
@@ -19666,18 +20316,18 @@
   __ Mov(x0, 0x0011223344556677);
 
   __ Dup(v16.V16B(), w0);
-  __ Dup(v17.V8H(),  w0);
-  __ Dup(v18.V4S(),  w0);
-  __ Dup(v19.V2D(),  x0);
+  __ Dup(v17.V8H(), w0);
+  __ Dup(v18.V4S(), w0);
+  __ Dup(v19.V2D(), x0);
 
   __ Dup(v20.V8B(), w0);
   __ Dup(v21.V4H(), w0);
   __ Dup(v22.V2S(), w0);
 
   __ Dup(v2.V16B(), wzr);
-  __ Dup(v3.V8H(),  wzr);
-  __ Dup(v4.V4S(),  wzr);
-  __ Dup(v5.V2D(),  xzr);
+  __ Dup(v3.V8H(), wzr);
+  __ Dup(v4.V4S(), wzr);
+  __ Dup(v5.V2D(), xzr);
 
   END();
 
@@ -19705,8 +20355,8 @@
 
   START();
 
-  __ Movi(v0.V2D(),  0x0011223344556677, 0x8899aabbccddeeff);
-  __ Movi(v1.V2D(),  0xffeddccbbaae9988, 0x7766554433221100);
+  __ Movi(v0.V2D(), 0x0011223344556677, 0x8899aabbccddeeff);
+  __ Movi(v1.V2D(), 0xffeddccbbaae9988, 0x7766554433221100);
   __ Movi(v16.V2D(), 0x0123456789abcdef, 0xfedcba9876543210);
   __ Movi(v17.V2D(), 0xfedcba9876543210, 0x0123456789abcdef);
   __ Movi(v18.V2D(), 0x0011223344556677, 0x8899aabbccddeeff);
@@ -19718,14 +20368,14 @@
   __ Movi(v5.V2D(), 0, 0x0123456789abcdef);
 
   __ Ins(v16.V16B(), 15, v0.V16B(), 0);
-  __ Ins(v17.V8H(),  0,  v1.V8H(), 7);
-  __ Ins(v18.V4S(),  3,  v1.V4S(), 0);
-  __ Ins(v19.V2D(),  1,  v0.V2D(), 0);
+  __ Ins(v17.V8H(), 0, v1.V8H(), 7);
+  __ Ins(v18.V4S(), 3, v1.V4S(), 0);
+  __ Ins(v19.V2D(), 1, v0.V2D(), 0);
 
   __ Ins(v2.V16B(), 2, v2.V16B(), 0);
-  __ Ins(v3.V8H(),  0,  v3.V8H(), 7);
-  __ Ins(v4.V4S(),  3,  v4.V4S(), 0);
-  __ Ins(v5.V2D(),  0,  v5.V2D(), 1);
+  __ Ins(v3.V8H(), 0, v3.V8H(), 7);
+  __ Ins(v4.V4S(), 3, v4.V4S(), 0);
+  __ Ins(v5.V2D(), 0, v5.V2D(), 1);
 
   END();
 
@@ -19749,8 +20399,8 @@
 
   START();
 
-  __ Movi(v0.V2D(),  0x0011223344556677, 0x8899aabbccddeeff);
-  __ Movi(v1.V2D(),  0xffeddccbbaae9988, 0x7766554433221100);
+  __ Movi(v0.V2D(), 0x0011223344556677, 0x8899aabbccddeeff);
+  __ Movi(v1.V2D(), 0xffeddccbbaae9988, 0x7766554433221100);
   __ Movi(v16.V2D(), 0x0123456789abcdef, 0xfedcba9876543210);
   __ Movi(v17.V2D(), 0xfedcba9876543210, 0x0123456789abcdef);
   __ Movi(v18.V2D(), 0x0011223344556677, 0x8899aabbccddeeff);
@@ -19762,14 +20412,14 @@
   __ Movi(v5.V2D(), 0, 0x0123456789abcdef);
 
   __ Mov(v16.V16B(), 15, v0.V16B(), 0);
-  __ Mov(v17.V8H(),  0,  v1.V8H(), 7);
-  __ Mov(v18.V4S(),  3,  v1.V4S(), 0);
-  __ Mov(v19.V2D(),  1,  v0.V2D(), 0);
+  __ Mov(v17.V8H(), 0, v1.V8H(), 7);
+  __ Mov(v18.V4S(), 3, v1.V4S(), 0);
+  __ Mov(v19.V2D(), 1, v0.V2D(), 0);
 
   __ Mov(v2.V16B(), 2, v2.V16B(), 0);
-  __ Mov(v3.V8H(),  0,  v3.V8H(), 7);
-  __ Mov(v4.V4S(),  3,  v4.V4S(), 0);
-  __ Mov(v5.V2D(),  0,  v5.V2D(), 1);
+  __ Mov(v3.V8H(), 0, v3.V8H(), 7);
+  __ Mov(v4.V4S(), 3, v4.V4S(), 0);
+  __ Mov(v5.V2D(), 0, v5.V2D(), 1);
 
   END();
 
@@ -19795,20 +20445,20 @@
 
   __ Movi(v0.V2D(), 0x0123456789abcdef, 0xfedcba9876543210);
 
-  __ Smov(w0, v0.B(),  7);
+  __ Smov(w0, v0.B(), 7);
   __ Smov(w1, v0.B(), 15);
 
-  __ Smov(w2, v0.H(),  0);
-  __ Smov(w3, v0.H(),  3);
+  __ Smov(w2, v0.H(), 0);
+  __ Smov(w3, v0.H(), 3);
 
-  __ Smov(x4, v0.B(),  7);
-  __ Smov(x5, v0.B(),  15);
+  __ Smov(x4, v0.B(), 7);
+  __ Smov(x5, v0.B(), 15);
 
-  __ Smov(x6, v0.H(),  0);
-  __ Smov(x7, v0.H(),  3);
+  __ Smov(x6, v0.H(), 0);
+  __ Smov(x7, v0.H(), 3);
 
-  __ Smov(x16, v0.S(),  0);
-  __ Smov(x17, v0.S(),  1);
+  __ Smov(x16, v0.S(), 0);
+  __ Smov(x17, v0.S(), 1);
 
   END();
 
@@ -19837,12 +20487,12 @@
   __ Movi(v0.V2D(), 0x0123456789abcdef, 0xfedcba9876543210);
 
   __ Umov(w0, v0.B(), 15);
-  __ Umov(w1, v0.H(),  0);
-  __ Umov(w2, v0.S(),  3);
-  __ Umov(x3, v0.D(),  1);
+  __ Umov(w1, v0.H(), 0);
+  __ Umov(w2, v0.S(), 3);
+  __ Umov(x3, v0.D(), 1);
 
-  __ Mov(w4, v0.S(),  3);
-  __ Mov(x5, v0.D(),  1);
+  __ Mov(w4, v0.S(), 3);
+  __ Mov(x5, v0.D(), 1);
 
   END();
 
@@ -19876,14 +20526,14 @@
   __ Movi(v5.V2D(), 0, 0x0123456789abcdef);
 
   __ Ins(v16.V16B(), 15, w0);
-  __ Ins(v17.V8H(),  0,  w0);
-  __ Ins(v18.V4S(),  3,  w0);
-  __ Ins(v19.V2D(),  0,  x0);
+  __ Ins(v17.V8H(), 0, w0);
+  __ Ins(v18.V4S(), 3, w0);
+  __ Ins(v19.V2D(), 0, x0);
 
   __ Ins(v2.V16B(), 2, w0);
-  __ Ins(v3.V8H(),  0, w0);
-  __ Ins(v4.V4S(),  3, w0);
-  __ Ins(v5.V2D(),  1, x0);
+  __ Ins(v3.V8H(), 0, w0);
+  __ Ins(v4.V4S(), 3, w0);
+  __ Ins(v5.V2D(), 1, x0);
 
   END();
 
@@ -19920,8 +20570,8 @@
 
   __ Ext(v18.V8B(), v2.V8B(), v3.V8B(), 0);
   __ Ext(v19.V8B(), v2.V8B(), v3.V8B(), 7);
-  __ Ext(v2.V8B(), v2.V8B(), v3.V8B(), 4);     // Dest is same as one Src
-  __ Ext(v3.V8B(), v3.V8B(), v3.V8B(), 4);     // All reg are the same
+  __ Ext(v2.V8B(), v2.V8B(), v3.V8B(), 4);  // Dest is same as one Src
+  __ Ext(v3.V8B(), v3.V8B(), v3.V8B(), 4);  // All reg are the same
 
   END();
 
@@ -19994,13 +20644,13 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Addhn(v16.V8B(),   v0.V8H(), v1.V8H());
+  __ Addhn(v16.V8B(), v0.V8H(), v1.V8H());
   __ Addhn2(v16.V16B(), v2.V8H(), v3.V8H());
-  __ Raddhn(v17.V8B(),   v0.V8H(), v1.V8H());
+  __ Raddhn(v17.V8B(), v0.V8H(), v1.V8H());
   __ Raddhn2(v17.V16B(), v2.V8H(), v3.V8H());
-  __ Subhn(v18.V8B(),   v0.V8H(), v1.V8H());
+  __ Subhn(v18.V8B(), v0.V8H(), v1.V8H());
   __ Subhn2(v18.V16B(), v2.V8H(), v3.V8H());
-  __ Rsubhn(v19.V8B(),   v0.V8H(), v1.V8H());
+  __ Rsubhn(v19.V8B(), v0.V8H(), v1.V8H());
   __ Rsubhn2(v19.V16B(), v2.V8H(), v3.V8H());
 
   END();
@@ -20243,14 +20893,14 @@
   __ Movi(v1.V2D(), 0x80008001ffff0000, 0xffff000000017fff);
   __ Movi(v2.V2D(), 0x80000000ffffffff, 0x000000007fffffff);
 
-  __ Sshll(v16.V8H(), v0.V8B(),  4);
+  __ Sshll(v16.V8H(), v0.V8B(), 4);
   __ Sshll2(v17.V8H(), v0.V16B(), 4);
 
-  __ Sshll(v18.V4S(),  v1.V4H(), 8);
-  __ Sshll2(v19.V4S(),  v1.V8H(), 8);
+  __ Sshll(v18.V4S(), v1.V4H(), 8);
+  __ Sshll2(v19.V4S(), v1.V8H(), 8);
 
-  __ Sshll(v20.V2D(),  v2.V2S(), 16);
-  __ Sshll2(v21.V2D(),  v2.V4S(), 16);
+  __ Sshll(v20.V2D(), v2.V2S(), 16);
+  __ Sshll2(v21.V2D(), v2.V4S(), 16);
 
   END();
 
@@ -20274,14 +20924,14 @@
   __ Movi(v1.V2D(), 0x80008001ffff0000, 0xffff000000017fff);
   __ Movi(v2.V2D(), 0x80000000ffffffff, 0x000000007fffffff);
 
-  __ Shll(v16.V8H(), v0.V8B(),  8);
+  __ Shll(v16.V8H(), v0.V8B(), 8);
   __ Shll2(v17.V8H(), v0.V16B(), 8);
 
-  __ Shll(v18.V4S(),  v1.V4H(), 16);
-  __ Shll2(v19.V4S(),  v1.V8H(), 16);
+  __ Shll(v18.V4S(), v1.V4H(), 16);
+  __ Shll2(v19.V4S(), v1.V8H(), 16);
 
-  __ Shll(v20.V2D(),  v2.V2S(), 32);
-  __ Shll2(v21.V2D(),  v2.V4S(), 32);
+  __ Shll(v20.V2D(), v2.V2S(), 32);
+  __ Shll2(v21.V2D(), v2.V4S(), 32);
 
   END();
 
@@ -20305,14 +20955,14 @@
   __ Movi(v1.V2D(), 0x80008001ffff0000, 0xffff000000017fff);
   __ Movi(v2.V2D(), 0x80000000ffffffff, 0x000000007fffffff);
 
-  __ Ushll(v16.V8H(), v0.V8B(),  4);
+  __ Ushll(v16.V8H(), v0.V8B(), 4);
   __ Ushll2(v17.V8H(), v0.V16B(), 4);
 
-  __ Ushll(v18.V4S(),  v1.V4H(), 8);
-  __ Ushll2(v19.V4S(),  v1.V8H(), 8);
+  __ Ushll(v18.V4S(), v1.V4H(), 8);
+  __ Ushll2(v19.V4S(), v1.V8H(), 8);
 
-  __ Ushll(v20.V2D(),  v2.V2S(), 16);
-  __ Ushll2(v21.V2D(),  v2.V4S(), 16);
+  __ Ushll(v20.V2D(), v2.V2S(), 16);
+  __ Ushll2(v21.V2D(), v2.V4S(), 16);
 
   END();
 
@@ -20340,11 +20990,11 @@
   __ Sxtl(v16.V8H(), v0.V8B());
   __ Sxtl2(v17.V8H(), v0.V16B());
 
-  __ Sxtl(v18.V4S(),  v1.V4H());
-  __ Sxtl2(v19.V4S(),  v1.V8H());
+  __ Sxtl(v18.V4S(), v1.V4H());
+  __ Sxtl2(v19.V4S(), v1.V8H());
 
-  __ Sxtl(v20.V2D(),  v2.V2S());
-  __ Sxtl2(v21.V2D(),  v2.V4S());
+  __ Sxtl(v20.V2D(), v2.V2S());
+  __ Sxtl2(v21.V2D(), v2.V4S());
 
   END();
 
@@ -20372,11 +21022,11 @@
   __ Uxtl(v16.V8H(), v0.V8B());
   __ Uxtl2(v17.V8H(), v0.V16B());
 
-  __ Uxtl(v18.V4S(),  v1.V4H());
-  __ Uxtl2(v19.V4S(),  v1.V8H());
+  __ Uxtl(v18.V4S(), v1.V4H());
+  __ Uxtl2(v19.V4S(), v1.V8H());
 
-  __ Uxtl(v20.V2D(),  v2.V2S());
-  __ Uxtl2(v21.V2D(),  v2.V4S());
+  __ Uxtl(v20.V2D(), v2.V2S());
+  __ Uxtl2(v21.V2D(), v2.V4S());
 
   END();
 
@@ -20403,30 +21053,30 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Mov(v16.V2D(),   v0.V2D());
-  __ Mov(v17.V2D(),   v0.V2D());
-  __ Mov(v18.V2D(),   v1.V2D());
-  __ Mov(v19.V2D(),   v1.V2D());
-  __ Mov(v20.V2D(),   v2.V2D());
-  __ Mov(v21.V2D(),   v2.V2D());
-  __ Mov(v22.V2D(),   v3.V2D());
-  __ Mov(v23.V2D(),   v4.V2D());
-  __ Mov(v24.V2D(),   v3.V2D());
-  __ Mov(v25.V2D(),   v4.V2D());
+  __ Mov(v16.V2D(), v0.V2D());
+  __ Mov(v17.V2D(), v0.V2D());
+  __ Mov(v18.V2D(), v1.V2D());
+  __ Mov(v19.V2D(), v1.V2D());
+  __ Mov(v20.V2D(), v2.V2D());
+  __ Mov(v21.V2D(), v2.V2D());
+  __ Mov(v22.V2D(), v3.V2D());
+  __ Mov(v23.V2D(), v4.V2D());
+  __ Mov(v24.V2D(), v3.V2D());
+  __ Mov(v25.V2D(), v4.V2D());
 
-  __ Ssra(v16.V8B(),  v0.V8B(),  4);
+  __ Ssra(v16.V8B(), v0.V8B(), 4);
   __ Ssra(v17.V16B(), v0.V16B(), 4);
 
-  __ Ssra(v18.V4H(),  v1.V4H(), 8);
-  __ Ssra(v19.V8H(),  v1.V8H(), 8);
+  __ Ssra(v18.V4H(), v1.V4H(), 8);
+  __ Ssra(v19.V8H(), v1.V8H(), 8);
 
-  __ Ssra(v20.V2S(),  v2.V2S(), 16);
-  __ Ssra(v21.V4S(),  v2.V4S(), 16);
+  __ Ssra(v20.V2S(), v2.V2S(), 16);
+  __ Ssra(v21.V4S(), v2.V4S(), 16);
 
-  __ Ssra(v22.V2D(),  v3.V2D(), 32);
-  __ Ssra(v23.V2D(),  v4.V2D(), 32);
+  __ Ssra(v22.V2D(), v3.V2D(), 32);
+  __ Ssra(v23.V2D(), v4.V2D(), 32);
 
-  __ Ssra(d24,  d3, 48);
+  __ Ssra(d24, d3, 48);
 
   END();
 
@@ -20455,30 +21105,30 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Mov(v16.V2D(),   v0.V2D());
-  __ Mov(v17.V2D(),   v0.V2D());
-  __ Mov(v18.V2D(),   v1.V2D());
-  __ Mov(v19.V2D(),   v1.V2D());
-  __ Mov(v20.V2D(),   v2.V2D());
-  __ Mov(v21.V2D(),   v2.V2D());
-  __ Mov(v22.V2D(),   v3.V2D());
-  __ Mov(v23.V2D(),   v4.V2D());
-  __ Mov(v24.V2D(),   v3.V2D());
-  __ Mov(v25.V2D(),   v4.V2D());
+  __ Mov(v16.V2D(), v0.V2D());
+  __ Mov(v17.V2D(), v0.V2D());
+  __ Mov(v18.V2D(), v1.V2D());
+  __ Mov(v19.V2D(), v1.V2D());
+  __ Mov(v20.V2D(), v2.V2D());
+  __ Mov(v21.V2D(), v2.V2D());
+  __ Mov(v22.V2D(), v3.V2D());
+  __ Mov(v23.V2D(), v4.V2D());
+  __ Mov(v24.V2D(), v3.V2D());
+  __ Mov(v25.V2D(), v4.V2D());
 
-  __ Srsra(v16.V8B(),  v0.V8B(),  4);
+  __ Srsra(v16.V8B(), v0.V8B(), 4);
   __ Srsra(v17.V16B(), v0.V16B(), 4);
 
-  __ Srsra(v18.V4H(),  v1.V4H(), 8);
-  __ Srsra(v19.V8H(),  v1.V8H(), 8);
+  __ Srsra(v18.V4H(), v1.V4H(), 8);
+  __ Srsra(v19.V8H(), v1.V8H(), 8);
 
-  __ Srsra(v20.V2S(),  v2.V2S(), 16);
-  __ Srsra(v21.V4S(),  v2.V4S(), 16);
+  __ Srsra(v20.V2S(), v2.V2S(), 16);
+  __ Srsra(v21.V4S(), v2.V4S(), 16);
 
-  __ Srsra(v22.V2D(),  v3.V2D(), 32);
-  __ Srsra(v23.V2D(),  v4.V2D(), 32);
+  __ Srsra(v22.V2D(), v3.V2D(), 32);
+  __ Srsra(v23.V2D(), v4.V2D(), 32);
 
-  __ Srsra(d24,  d3, 48);
+  __ Srsra(d24, d3, 48);
 
   END();
 
@@ -20508,30 +21158,30 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Mov(v16.V2D(),   v0.V2D());
-  __ Mov(v17.V2D(),   v0.V2D());
-  __ Mov(v18.V2D(),   v1.V2D());
-  __ Mov(v19.V2D(),   v1.V2D());
-  __ Mov(v20.V2D(),   v2.V2D());
-  __ Mov(v21.V2D(),   v2.V2D());
-  __ Mov(v22.V2D(),   v3.V2D());
-  __ Mov(v23.V2D(),   v4.V2D());
-  __ Mov(v24.V2D(),   v3.V2D());
-  __ Mov(v25.V2D(),   v4.V2D());
+  __ Mov(v16.V2D(), v0.V2D());
+  __ Mov(v17.V2D(), v0.V2D());
+  __ Mov(v18.V2D(), v1.V2D());
+  __ Mov(v19.V2D(), v1.V2D());
+  __ Mov(v20.V2D(), v2.V2D());
+  __ Mov(v21.V2D(), v2.V2D());
+  __ Mov(v22.V2D(), v3.V2D());
+  __ Mov(v23.V2D(), v4.V2D());
+  __ Mov(v24.V2D(), v3.V2D());
+  __ Mov(v25.V2D(), v4.V2D());
 
-  __ Usra(v16.V8B(),  v0.V8B(),  4);
+  __ Usra(v16.V8B(), v0.V8B(), 4);
   __ Usra(v17.V16B(), v0.V16B(), 4);
 
-  __ Usra(v18.V4H(),  v1.V4H(), 8);
-  __ Usra(v19.V8H(),  v1.V8H(), 8);
+  __ Usra(v18.V4H(), v1.V4H(), 8);
+  __ Usra(v19.V8H(), v1.V8H(), 8);
 
-  __ Usra(v20.V2S(),  v2.V2S(), 16);
-  __ Usra(v21.V4S(),  v2.V4S(), 16);
+  __ Usra(v20.V2S(), v2.V2S(), 16);
+  __ Usra(v21.V4S(), v2.V4S(), 16);
 
-  __ Usra(v22.V2D(),  v3.V2D(), 32);
-  __ Usra(v23.V2D(),  v4.V2D(), 32);
+  __ Usra(v22.V2D(), v3.V2D(), 32);
+  __ Usra(v23.V2D(), v4.V2D(), 32);
 
-  __ Usra(d24,  d3, 48);
+  __ Usra(d24, d3, 48);
 
   END();
 
@@ -20561,30 +21211,30 @@
   __ Movi(v3.V2D(), 0x8000000000000001, 0x7fffffffffffffff);
   __ Movi(v4.V2D(), 0x8000000000000000, 0x0000000000000000);
 
-  __ Mov(v16.V2D(),   v0.V2D());
-  __ Mov(v17.V2D(),   v0.V2D());
-  __ Mov(v18.V2D(),   v1.V2D());
-  __ Mov(v19.V2D(),   v1.V2D());
-  __ Mov(v20.V2D(),   v2.V2D());
-  __ Mov(v21.V2D(),   v2.V2D());
-  __ Mov(v22.V2D(),   v3.V2D());
-  __ Mov(v23.V2D(),   v4.V2D());
-  __ Mov(v24.V2D(),   v3.V2D());
-  __ Mov(v25.V2D(),   v4.V2D());
+  __ Mov(v16.V2D(), v0.V2D());
+  __ Mov(v17.V2D(), v0.V2D());
+  __ Mov(v18.V2D(), v1.V2D());
+  __ Mov(v19.V2D(), v1.V2D());
+  __ Mov(v20.V2D(), v2.V2D());
+  __ Mov(v21.V2D(), v2.V2D());
+  __ Mov(v22.V2D(), v3.V2D());
+  __ Mov(v23.V2D(), v4.V2D());
+  __ Mov(v24.V2D(), v3.V2D());
+  __ Mov(v25.V2D(), v4.V2D());
 
-  __ Ursra(v16.V8B(),  v0.V8B(),  4);
+  __ Ursra(v16.V8B(), v0.V8B(), 4);
   __ Ursra(v17.V16B(), v0.V16B(), 4);
 
-  __ Ursra(v18.V4H(),  v1.V4H(), 8);
-  __ Ursra(v19.V8H(),  v1.V8H(), 8);
+  __ Ursra(v18.V4H(), v1.V4H(), 8);
+  __ Ursra(v19.V8H(), v1.V8H(), 8);
 
-  __ Ursra(v20.V2S(),  v2.V2S(), 16);
-  __ Ursra(v21.V4S(),  v2.V4S(), 16);
+  __ Ursra(v20.V2S(), v2.V2S(), 16);
+  __ Ursra(v21.V4S(), v2.V4S(), 16);
 
-  __ Ursra(v22.V2D(),  v3.V2D(), 32);
-  __ Ursra(v23.V2D(),  v4.V2D(), 32);
+  __ Ursra(v22.V2D(), v3.V2D(), 32);
+  __ Ursra(v23.V2D(), v4.V2D(), 32);
 
-  __ Ursra(d24,  d3, 48);
+  __ Ursra(d24, d3, 48);
 
   END();
 
@@ -21161,7 +21811,7 @@
   END();
   RUN();
 
-  ASSERT_EQUAL_64(0x0,        x10);
+  ASSERT_EQUAL_64(0x0, x10);
   ASSERT_EQUAL_64(0x5f058808, x11);
   ASSERT_EQUAL_64(0x5f058808, x12);
   ASSERT_EQUAL_64(0xedb88320, x13);
@@ -21203,7 +21853,7 @@
   END();
   RUN();
 
-  ASSERT_EQUAL_64(0x0,        x10);
+  ASSERT_EQUAL_64(0x0, x10);
   ASSERT_EQUAL_64(0x0e848dba, x11);
   ASSERT_EQUAL_64(0x0e848dba, x12);
   ASSERT_EQUAL_64(0x3b83984b, x13);
@@ -21241,7 +21891,7 @@
   END();
   RUN();
 
-  ASSERT_EQUAL_64(0x0,        x10);
+  ASSERT_EQUAL_64(0x0, x10);
   ASSERT_EQUAL_64(0x1d937b81, x11);
   ASSERT_EQUAL_64(0xed59b63b, x13);
   ASSERT_EQUAL_64(0x00be2612, x14);
@@ -21278,7 +21928,7 @@
   END();
   RUN();
 
-  ASSERT_EQUAL_64(0x0,        x10);
+  ASSERT_EQUAL_64(0x0, x10);
   ASSERT_EQUAL_64(0x40797b92, x11);
   ASSERT_EQUAL_64(0x533b85da, x13);
   ASSERT_EQUAL_64(0xbc962670, x14);
@@ -21319,7 +21969,7 @@
   END();
   RUN();
 
-  ASSERT_EQUAL_64(0x0,        x10);
+  ASSERT_EQUAL_64(0x0, x10);
   ASSERT_EQUAL_64(0x4851927d, x11);
   ASSERT_EQUAL_64(0x4851927d, x12);
   ASSERT_EQUAL_64(0x82f63b78, x13);
@@ -21361,7 +22011,7 @@
   END();
   RUN();
 
-  ASSERT_EQUAL_64(0x0,        x10);
+  ASSERT_EQUAL_64(0x0, x10);
   ASSERT_EQUAL_64(0xcef8494c, x11);
   ASSERT_EQUAL_64(0xcef8494c, x12);
   ASSERT_EQUAL_64(0xfbc3faf9, x13);
@@ -21399,7 +22049,7 @@
   END();
   RUN();
 
-  ASSERT_EQUAL_64(0x0,        x10);
+  ASSERT_EQUAL_64(0x0, x10);
   ASSERT_EQUAL_64(0xbcb79ece, x11);
   ASSERT_EQUAL_64(0x52a0c93f, x13);
   ASSERT_EQUAL_64(0x9f9b5c7a, x14);
@@ -21436,7 +22086,7 @@
   END();
   RUN();
 
-  ASSERT_EQUAL_64(0x0,        x10);
+  ASSERT_EQUAL_64(0x0, x10);
   ASSERT_EQUAL_64(0x7f320fcb, x11);
   ASSERT_EQUAL_64(0x34019664, x13);
   ASSERT_EQUAL_64(0x6cc27dd0, x14);
@@ -21801,10 +22451,12 @@
   // that are outside the immediate range of branch instructions.
   // Take into account that backward branches can reach one instruction further
   // than forward branches.
-  const int overflow_size = kInstructionSize +
-    std::max(Instruction::GetImmBranchForwardRange(TestBranchType),
-             std::max(Instruction::GetImmBranchForwardRange(CompareBranchType),
-                      Instruction::GetImmBranchForwardRange(CondBranchType)));
+  const int overflow_size =
+      kInstructionSize +
+      std::max(Instruction::GetImmBranchForwardRange(TestBranchType),
+               std::max(Instruction::GetImmBranchForwardRange(
+                            CompareBranchType),
+                        Instruction::GetImmBranchForwardRange(CondBranchType)));
 
   SETUP();
   START();
@@ -21917,9 +22569,10 @@
   // Test that the MacroAssembler correctly emits veneers for forward branches
   // to labels that are outside the immediate range of branch instructions.
   const int max_range =
-    std::max(Instruction::GetImmBranchForwardRange(TestBranchType),
-             std::max(Instruction::GetImmBranchForwardRange(CompareBranchType),
-                      Instruction::GetImmBranchForwardRange(CondBranchType)));
+      std::max(Instruction::GetImmBranchForwardRange(TestBranchType),
+               std::max(Instruction::GetImmBranchForwardRange(
+                            CompareBranchType),
+                        Instruction::GetImmBranchForwardRange(CondBranchType)));
 
   SETUP();
   START();
@@ -22084,7 +22737,7 @@
   // We use different labels to prevent the MacroAssembler from sharing veneers.
   Label labels[kNTotalBranches];
   for (int i = 0; i < kNTotalBranches; i++) {
-    new(&labels[i]) Label();
+    new (&labels[i]) Label();
   }
 
   for (int i = 0; i < n_bcond; i++) {
@@ -22202,10 +22855,7 @@
   Literal<int64_t> automatically_placed_literal(1, masm.GetLiteralPool());
   Literal<int64_t> manually_placed_literal(2);
   {
-    CodeBufferCheckScope scope(&masm,
-                               kInstructionSize + sizeof(int64_t),
-                               CodeBufferCheckScope::kReserveBufferSpace,
-                               CodeBufferCheckScope::kExactSize);
+    ExactAssemblyScope scope(&masm, kInstructionSize + sizeof(int64_t));
     Label over_literal;
     __ b(&over_literal);
     __ place(&manually_placed_literal);
@@ -22401,11 +23051,16 @@
 TEST(generic_operand) {
   SETUP();
 
-  int32_t data_32_array[5] = {
-    0xbadbeef, 0x11111111, 0xbadbeef, 0x33333333, 0xbadbeef };
-  int64_t data_64_array[5] = {
-    INT64_C(0xbadbadbadbeef), INT64_C(0x1111111111111111),
-    INT64_C(0xbadbadbadbeef), INT64_C(0x3333333333333333), INT64_C(0xbadbadbadbeef) };
+  int32_t data_32_array[5] = {0xbadbeef,
+                              0x11111111,
+                              0xbadbeef,
+                              0x33333333,
+                              0xbadbeef};
+  int64_t data_64_array[5] = {INT64_C(0xbadbadbadbeef),
+                              INT64_C(0x1111111111111111),
+                              INT64_C(0xbadbadbadbeef),
+                              INT64_C(0x3333333333333333),
+                              INT64_C(0xbadbadbadbeef)};
   size_t size_32 = sizeof(data_32_array[0]);
   size_t size_64 = sizeof(data_64_array[0]);
 
@@ -22478,9 +23133,7 @@
 }
 
 
-int32_t runtime_call_add_one(int32_t a) {
-  return a + 1;
-}
+int32_t runtime_call_add_one(int32_t a) { return a + 1; }
 
 double runtime_call_add_doubles(double a, double b, double c) {
   return a + b + c;
@@ -22511,9 +23164,7 @@
   return arg9 - arg10;
 }
 
-void runtime_call_store_at_address(int64_t* address) {
-  *address = 0xf00d;
-}
+void runtime_call_store_at_address(int64_t* address) { *address = 0xf00d; }
 
 // Test feature detection of calls to runtime functions.
 
@@ -22522,12 +23173,14 @@
 #if defined(VIXL_INCLUDE_SIMULATOR_AARCH64) && (__cplusplus >= 201103L) && \
     (defined(__clang__) || GCC_VERSION_OR_NEWER(4, 9, 1)) &&               \
     !defined(VIXL_HAS_SIMULATED_RUNTIME_CALL_SUPPORT)
-#error "C++11 should be sufficient to provide support for simulated runtime calls."
+#error \
+    "C++11 should be sufficient to provide support for simulated runtime calls."
 #endif  // #if defined(VIXL_INCLUDE_SIMULATOR_AARCH64) && ...
 
 #if (__cplusplus >= 201103L) && \
     !defined(VIXL_HAS_MACROASSEMBLER_RUNTIME_CALL_SUPPORT)
-#error "C++11 should be sufficient to provide support for `MacroAssembler::CallRuntime()`."
+#error \
+    "C++11 should be sufficient to provide support for `MacroAssembler::CallRuntime()`."
 #endif  // #if (__cplusplus >= 201103L) && ...
 
 #ifdef VIXL_HAS_MACROASSEMBLER_RUNTIME_CALL_SUPPORT
@@ -22624,5 +23277,44 @@
 }
 
 
+TEST(static_register_types) {
+  SETUP();
+  START();
+
+  // [WX]Register implicitly casts to Register.
+  XRegister x_x0(0);
+  WRegister w_w0(0);
+  Register r_x0 = x_x0;
+  Register r_w0 = w_w0;
+  VIXL_CHECK(r_x0.Is(x_x0));
+  VIXL_CHECK(x_x0.Is(r_x0));
+  VIXL_CHECK(r_w0.Is(w_w0));
+  VIXL_CHECK(w_w0.Is(r_w0));
+
+  // Register explicitly casts to [WX]Register.
+  Register r_x1(1, kXRegSize);
+  Register r_w1(1, kWRegSize);
+  XRegister x_x1(r_x1);
+  WRegister w_w1(r_w1);
+  VIXL_CHECK(r_x1.Is(x_x1));
+  VIXL_CHECK(x_x1.Is(r_x1));
+  VIXL_CHECK(r_w1.Is(w_w1));
+  VIXL_CHECK(w_w1.Is(r_w1));
+
+  // [WX]Register implicitly casts to CPURegister.
+  XRegister x_x2(2);
+  WRegister w_w2(2);
+  CPURegister cpu_x2 = x_x2;
+  CPURegister cpu_w2 = w_w2;
+  VIXL_CHECK(cpu_x2.Is(x_x2));
+  VIXL_CHECK(x_x2.Is(cpu_x2));
+  VIXL_CHECK(cpu_w2.Is(w_w2));
+  VIXL_CHECK(w_w2.Is(cpu_w2));
+
+  END();
+  TEARDOWN();
+}
+
+
 }  // namespace aarch64
 }  // namespace vixl
diff --git a/test/aarch64/test-disasm-aarch64.cc b/test/aarch64/test-disasm-aarch64.cc
index a5bfeb2..824eb1e 100644
--- a/test/aarch64/test-disasm-aarch64.cc
+++ b/test/aarch64/test-disasm-aarch64.cc
@@ -34,26 +34,24 @@
 #include "aarch64/disasm-aarch64.h"
 #include "aarch64/macro-assembler-aarch64.h"
 
-#define TEST(name)  TEST_(AARCH64_DISASM_##name)
+#define TEST(name) TEST_(AARCH64_DISASM_##name)
 
-#define SETUP_CLASS(ASMCLASS)                                                  \
-  uint32_t encoding = 0;                                                       \
-  ASMCLASS masm;                                                               \
-  Decoder decoder;                                                             \
-  Disassembler disasm;                                                         \
+#define SETUP_COMMON()   \
+  uint32_t encoding = 0; \
+  MacroAssembler masm;   \
+  Decoder decoder;       \
+  Disassembler disasm;   \
   decoder.AppendVisitor(&disasm)
 
-#define SETUP() SETUP_CLASS(Assembler)
-
 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
 // Run tests with the simulator.
-#define SETUP_MACRO()                                                          \
-  SETUP_CLASS(MacroAssembler);                                                 \
+#define SETUP()   \
+  SETUP_COMMON(); \
   masm.SetGenerateSimulatorCode(true)
 
 #else  // ifdef VIXL_INCLUDE_SIMULATOR_AARCH64.
-#define SETUP_MACRO()                                                          \
-  SETUP_CLASS(MacroAssembler);                                                 \
+#define SETUP()   \
+  SETUP_COMMON(); \
   masm.SetGenerateSimulatorCode(false)
 
 #endif  // ifdef VIXL_INCLUDE_SIMULATOR_AARCH64.
@@ -62,80 +60,88 @@
 // tests.
 #define MAX_SIZE_GENERATED 1024
 
-#define COMPARE(ASM, EXP)                                                      \
-  masm.Reset();                                                                \
-  {                                                                            \
-    CodeBufferCheckScope guard(&masm, MAX_SIZE_GENERATED);                     \
-    masm.ASM;                                                                  \
-  }                                                                            \
-  masm.FinalizeCode();                                                         \
-  decoder.Decode(masm.GetBuffer()->GetStartAddress<Instruction*>());           \
-  encoding = *masm.GetBuffer()->GetStartAddress<uint32_t*>();                  \
-  if (strcmp(disasm.GetOutput(), EXP) != 0) {                                  \
-    printf("\nEncoding: %08" PRIx32 "\nExpected: %s\nFound:    %s\n",          \
-           encoding, EXP, disasm.GetOutput());                                 \
-    abort();                                                                   \
-  }                                                                            \
-  if (Test::disassemble()) {                                                   \
-    printf("%08" PRIx32 "\t%s\n", encoding, disasm.GetOutput());               \
+#define COMPARE(ASM, EXP)                                             \
+  masm.Reset();                                                       \
+  {                                                                   \
+    ExactAssemblyScope guard(&masm,                                   \
+                             MAX_SIZE_GENERATED,                      \
+                             ExactAssemblyScope::kMaximumSize);       \
+    masm.ASM;                                                         \
+  }                                                                   \
+  masm.FinalizeCode();                                                \
+  decoder.Decode(masm.GetBuffer()->GetStartAddress<Instruction*>());  \
+  encoding = *masm.GetBuffer()->GetStartAddress<uint32_t*>();         \
+  if (strcmp(disasm.GetOutput(), EXP) != 0) {                         \
+    printf("\nEncoding: %08" PRIx32 "\nExpected: %s\nFound:    %s\n", \
+           encoding,                                                  \
+           EXP,                                                       \
+           disasm.GetOutput());                                       \
+    abort();                                                          \
+  }                                                                   \
+  if (Test::disassemble()) {                                          \
+    printf("%08" PRIx32 "\t%s\n", encoding, disasm.GetOutput());      \
   }
 
-#define COMPARE_PREFIX(ASM, EXP)                                               \
-  masm.Reset();                                                                \
-  {                                                                            \
-    CodeBufferCheckScope guard(&masm, MAX_SIZE_GENERATED);                     \
-    masm.ASM;                                                                  \
-  }                                                                            \
-  masm.FinalizeCode();                                                         \
-  decoder.Decode(masm.GetBuffer()->GetStartAddress<Instruction*>());           \
-  encoding = *masm.GetBuffer()->GetStartAddress<uint32_t*>();                  \
-  if (strncmp(disasm.GetOutput(), EXP, strlen(EXP)) != 0) {                    \
-    printf("\nEncoding: %08" PRIx32 "\nExpected: %s\nFound:    %s\n",          \
-           encoding, EXP, disasm.GetOutput());                                 \
-    abort();                                                                   \
-  }                                                                            \
-  if (Test::disassemble()) {                                                   \
-    printf("%08" PRIx32 "\t%s\n", encoding, disasm.GetOutput());               \
+#define COMPARE_PREFIX(ASM, EXP)                                      \
+  masm.Reset();                                                       \
+  {                                                                   \
+    ExactAssemblyScope guard(&masm,                                   \
+                             MAX_SIZE_GENERATED,                      \
+                             ExactAssemblyScope::kMaximumSize);       \
+    masm.ASM;                                                         \
+  }                                                                   \
+  masm.FinalizeCode();                                                \
+  decoder.Decode(masm.GetBuffer()->GetStartAddress<Instruction*>());  \
+  encoding = *masm.GetBuffer()->GetStartAddress<uint32_t*>();         \
+  if (strncmp(disasm.GetOutput(), EXP, strlen(EXP)) != 0) {           \
+    printf("\nEncoding: %08" PRIx32 "\nExpected: %s\nFound:    %s\n", \
+           encoding,                                                  \
+           EXP,                                                       \
+           disasm.GetOutput());                                       \
+    abort();                                                          \
+  }                                                                   \
+  if (Test::disassemble()) {                                          \
+    printf("%08" PRIx32 "\t%s\n", encoding, disasm.GetOutput());      \
   }
 
-#define COMPARE_MACRO_BASE(ASM, EXP)                                           \
-  masm.Reset();                                                                \
-  masm.ASM;                                                                    \
-  masm.FinalizeCode();                                                         \
-  std::string res;                                                             \
-                                                                               \
-  Instruction* instruction =                                                   \
-      masm.GetBuffer()->GetStartAddress<Instruction*>();                       \
-  Instruction* end = masm.GetCursorAddress<Instruction*>();                    \
-  while (instruction != end) {                                                 \
-    decoder.Decode(instruction);                                               \
-    res.append(disasm.GetOutput());                                            \
-    if (Test::disassemble()) {                                                 \
-      encoding = *reinterpret_cast<uint32_t*>(instruction);                    \
-      printf("%08" PRIx32 "\t%s\n", encoding, disasm.GetOutput());             \
-    }                                                                          \
-    instruction += kInstructionSize;                                           \
-    if (instruction != end) {                                                  \
-      res.append("\n");                                                        \
-    }                                                                          \
+#define COMPARE_MACRO_BASE(ASM, EXP)                               \
+  masm.Reset();                                                    \
+  masm.ASM;                                                        \
+  masm.FinalizeCode();                                             \
+  std::string res;                                                 \
+                                                                   \
+  Instruction* instruction =                                       \
+      masm.GetBuffer()->GetStartAddress<Instruction*>();           \
+  Instruction* end = masm.GetCursorAddress<Instruction*>();        \
+  while (instruction != end) {                                     \
+    decoder.Decode(instruction);                                   \
+    res.append(disasm.GetOutput());                                \
+    if (Test::disassemble()) {                                     \
+      encoding = *reinterpret_cast<uint32_t*>(instruction);        \
+      printf("%08" PRIx32 "\t%s\n", encoding, disasm.GetOutput()); \
+    }                                                              \
+    instruction += kInstructionSize;                               \
+    if (instruction != end) {                                      \
+      res.append("\n");                                            \
+    }                                                              \
   }
 
-#define COMPARE_MACRO(ASM, EXP)                                                \
-  {                                                                            \
-    COMPARE_MACRO_BASE(ASM, EXP)                                               \
-    if (strcmp(res.c_str(), EXP) != 0) {                                       \
-      printf("Expected: %s\nFound:    %s\n", EXP, res.c_str());                \
-      abort();                                                                 \
-    }                                                                          \
+#define COMPARE_MACRO(ASM, EXP)                                 \
+  {                                                             \
+    COMPARE_MACRO_BASE(ASM, EXP)                                \
+    if (strcmp(res.c_str(), EXP) != 0) {                        \
+      printf("Expected: %s\nFound:    %s\n", EXP, res.c_str()); \
+      abort();                                                  \
+    }                                                           \
   }
 
-#define COMPARE_MACRO_PREFIX(ASM, EXP)                                         \
-  {                                                                            \
-    COMPARE_MACRO_BASE(ASM, EXP)                                               \
-    if (strncmp(res.c_str(), EXP, strlen(EXP)) != 0) {                         \
-      printf("Expected (prefix): %s\nFound:    %s\n", EXP, res.c_str());       \
-      abort();                                                                 \
-    }                                                                          \
+#define COMPARE_MACRO_PREFIX(ASM, EXP)                                   \
+  {                                                                      \
+    COMPARE_MACRO_BASE(ASM, EXP)                                         \
+    if (strncmp(res.c_str(), EXP, strlen(EXP)) != 0) {                   \
+      printf("Expected (prefix): %s\nFound:    %s\n", EXP, res.c_str()); \
+      abort();                                                           \
+    }                                                                    \
   }
 
 #define CLEANUP()
@@ -174,25 +180,25 @@
 
 
 TEST(mov_mvn) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Mov(w0, Operand(0x1234)), "mov w0, #0x1234");
-  COMPARE(Mov(x1, Operand(0x1234)), "mov x1, #0x1234");
-  COMPARE(Mov(w2, Operand(w3)), "mov w2, w3");
-  COMPARE(Mov(x4, Operand(x5)), "mov x4, x5");
-  COMPARE(Mov(w6, Operand(w7, LSL, 5)), "lsl w6, w7, #5");
-  COMPARE(Mov(x8, Operand(x9, ASR, 42)), "asr x8, x9, #42");
-  COMPARE(Mov(w10, Operand(w11, UXTB)), "uxtb w10, w11");
-  COMPARE(Mov(x12, Operand(x13, UXTB, 1)), "ubfiz x12, x13, #1, #8");
-  COMPARE(Mov(w14, Operand(w15, SXTH, 2)), "sbfiz w14, w15, #2, #16");
-  COMPARE(Mov(x16, Operand(x17, SXTW, 3)), "sbfiz x16, x17, #3, #32");
+  COMPARE_MACRO(Mov(w0, Operand(0x1234)), "mov w0, #0x1234");
+  COMPARE_MACRO(Mov(x1, Operand(0x1234)), "mov x1, #0x1234");
+  COMPARE_MACRO(Mov(w2, Operand(w3)), "mov w2, w3");
+  COMPARE_MACRO(Mov(x4, Operand(x5)), "mov x4, x5");
+  COMPARE_MACRO(Mov(w6, Operand(w7, LSL, 5)), "lsl w6, w7, #5");
+  COMPARE_MACRO(Mov(x8, Operand(x9, ASR, 42)), "asr x8, x9, #42");
+  COMPARE_MACRO(Mov(w10, Operand(w11, UXTB)), "uxtb w10, w11");
+  COMPARE_MACRO(Mov(x12, Operand(x13, UXTB, 1)), "ubfiz x12, x13, #1, #8");
+  COMPARE_MACRO(Mov(w14, Operand(w15, SXTH, 2)), "sbfiz w14, w15, #2, #16");
+  COMPARE_MACRO(Mov(x16, Operand(x17, SXTW, 3)), "sbfiz x16, x17, #3, #32");
 
-  COMPARE(Mvn(w0, Operand(0x101)), "mov w0, #0xfffffefe");
-  COMPARE(Mvn(x1, Operand(0xfff1)), "mov x1, #0xffffffffffff000e");
-  COMPARE(Mvn(w2, Operand(w3)), "mvn w2, w3");
-  COMPARE(Mvn(x4, Operand(x5)), "mvn x4, x5");
-  COMPARE(Mvn(w6, Operand(w7, LSL, 12)), "mvn w6, w7, lsl #12");
-  COMPARE(Mvn(x8, Operand(x9, ASR, 63)), "mvn x8, x9, asr #63");
+  COMPARE_MACRO(Mvn(w0, Operand(0x101)), "mov w0, #0xfffffefe");
+  COMPARE_MACRO(Mvn(x1, Operand(0xfff1)), "mov x1, #0xffffffffffff000e");
+  COMPARE_MACRO(Mvn(w2, Operand(w3)), "mvn w2, w3");
+  COMPARE_MACRO(Mvn(x4, Operand(x5)), "mvn x4, x5");
+  COMPARE_MACRO(Mvn(w6, Operand(w7, LSL, 12)), "mvn w6, w7, lsl #12");
+  COMPARE_MACRO(Mvn(x8, Operand(x9, ASR, 63)), "mvn x8, x9, asr #63");
 
   CLEANUP();
 }
@@ -240,56 +246,56 @@
 
 
 TEST(move_immediate_2) {
-  SETUP_MACRO();
+  SETUP();
 
   // Move instructions expected for certain immediates. This is really a macro
   // assembler test, to ensure it generates immediates efficiently.
-  COMPARE(Mov(w0, 0), "mov w0, #0x0");
-  COMPARE(Mov(w0, 0x0000ffff), "mov w0, #0xffff");
-  COMPARE(Mov(w0, 0x00010000), "mov w0, #0x10000");
-  COMPARE(Mov(w0, 0xffff0000), "mov w0, #0xffff0000");
-  COMPARE(Mov(w0, 0x0001ffff), "mov w0, #0x1ffff");
-  COMPARE(Mov(w0, 0xffff8000), "mov w0, #0xffff8000");
-  COMPARE(Mov(w0, 0xfffffffe), "mov w0, #0xfffffffe");
-  COMPARE(Mov(w0, 0xffffffff), "mov w0, #0xffffffff");
-  COMPARE(Mov(w0, 0x00ffff00), "mov w0, #0xffff00");
-  COMPARE(Mov(w0, 0xfffe7fff), "mov w0, #0xfffe7fff");
-  COMPARE(Mov(w0, 0xfffeffff), "mov w0, #0xfffeffff");
-  COMPARE(Mov(w0, 0xffff7fff), "mov w0, #0xffff7fff");
+  COMPARE_MACRO(Mov(w0, 0), "mov w0, #0x0");
+  COMPARE_MACRO(Mov(w0, 0x0000ffff), "mov w0, #0xffff");
+  COMPARE_MACRO(Mov(w0, 0x00010000), "mov w0, #0x10000");
+  COMPARE_MACRO(Mov(w0, 0xffff0000), "mov w0, #0xffff0000");
+  COMPARE_MACRO(Mov(w0, 0x0001ffff), "mov w0, #0x1ffff");
+  COMPARE_MACRO(Mov(w0, 0xffff8000), "mov w0, #0xffff8000");
+  COMPARE_MACRO(Mov(w0, 0xfffffffe), "mov w0, #0xfffffffe");
+  COMPARE_MACRO(Mov(w0, 0xffffffff), "mov w0, #0xffffffff");
+  COMPARE_MACRO(Mov(w0, 0x00ffff00), "mov w0, #0xffff00");
+  COMPARE_MACRO(Mov(w0, 0xfffe7fff), "mov w0, #0xfffe7fff");
+  COMPARE_MACRO(Mov(w0, 0xfffeffff), "mov w0, #0xfffeffff");
+  COMPARE_MACRO(Mov(w0, 0xffff7fff), "mov w0, #0xffff7fff");
 
-  COMPARE(Mov(x0, 0), "mov x0, #0x0");
-  COMPARE(Mov(x0, 0x0000ffff), "mov x0, #0xffff");
-  COMPARE(Mov(x0, 0x00010000), "mov x0, #0x10000");
-  COMPARE(Mov(x0, 0xffff0000), "mov x0, #0xffff0000");
-  COMPARE(Mov(x0, 0x0001ffff), "mov x0, #0x1ffff");
-  COMPARE(Mov(x0, 0xffff8000), "mov x0, #0xffff8000");
-  COMPARE(Mov(x0, 0xfffffffe), "mov x0, #0xfffffffe");
-  COMPARE(Mov(x0, 0xffffffff), "mov x0, #0xffffffff");
-  COMPARE(Mov(x0, 0x00ffff00), "mov x0, #0xffff00");
-  COMPARE(Mov(x0, 0xffff000000000000), "mov x0, #0xffff000000000000");
-  COMPARE(Mov(x0, 0x0000ffff00000000), "mov x0, #0xffff00000000");
-  COMPARE(Mov(x0, 0x00000000ffff0000), "mov x0, #0xffff0000");
-  COMPARE(Mov(x0, 0xffffffffffff0000), "mov x0, #0xffffffffffff0000");
-  COMPARE(Mov(x0, 0xffffffff0000ffff), "mov x0, #0xffffffff0000ffff");
-  COMPARE(Mov(x0, 0xffff0000ffffffff), "mov x0, #0xffff0000ffffffff");
-  COMPARE(Mov(x0, 0x0000ffffffffffff), "mov x0, #0xffffffffffff");
-  COMPARE(Mov(x0, 0xfffe7fffffffffff), "mov x0, #0xfffe7fffffffffff");
-  COMPARE(Mov(x0, 0xfffeffffffffffff), "mov x0, #0xfffeffffffffffff");
-  COMPARE(Mov(x0, 0xffff7fffffffffff), "mov x0, #0xffff7fffffffffff");
-  COMPARE(Mov(x0, 0xfffffffe7fffffff), "mov x0, #0xfffffffe7fffffff");
-  COMPARE(Mov(x0, 0xfffffffeffffffff), "mov x0, #0xfffffffeffffffff");
-  COMPARE(Mov(x0, 0xffffffff7fffffff), "mov x0, #0xffffffff7fffffff");
-  COMPARE(Mov(x0, 0xfffffffffffe7fff), "mov x0, #0xfffffffffffe7fff");
-  COMPARE(Mov(x0, 0xfffffffffffeffff), "mov x0, #0xfffffffffffeffff");
-  COMPARE(Mov(x0, 0xffffffffffff7fff), "mov x0, #0xffffffffffff7fff");
-  COMPARE(Mov(x0, 0xffffffffffffffff), "mov x0, #0xffffffffffffffff");
+  COMPARE_MACRO(Mov(x0, 0), "mov x0, #0x0");
+  COMPARE_MACRO(Mov(x0, 0x0000ffff), "mov x0, #0xffff");
+  COMPARE_MACRO(Mov(x0, 0x00010000), "mov x0, #0x10000");
+  COMPARE_MACRO(Mov(x0, 0xffff0000), "mov x0, #0xffff0000");
+  COMPARE_MACRO(Mov(x0, 0x0001ffff), "mov x0, #0x1ffff");
+  COMPARE_MACRO(Mov(x0, 0xffff8000), "mov x0, #0xffff8000");
+  COMPARE_MACRO(Mov(x0, 0xfffffffe), "mov x0, #0xfffffffe");
+  COMPARE_MACRO(Mov(x0, 0xffffffff), "mov x0, #0xffffffff");
+  COMPARE_MACRO(Mov(x0, 0x00ffff00), "mov x0, #0xffff00");
+  COMPARE_MACRO(Mov(x0, 0xffff000000000000), "mov x0, #0xffff000000000000");
+  COMPARE_MACRO(Mov(x0, 0x0000ffff00000000), "mov x0, #0xffff00000000");
+  COMPARE_MACRO(Mov(x0, 0x00000000ffff0000), "mov x0, #0xffff0000");
+  COMPARE_MACRO(Mov(x0, 0xffffffffffff0000), "mov x0, #0xffffffffffff0000");
+  COMPARE_MACRO(Mov(x0, 0xffffffff0000ffff), "mov x0, #0xffffffff0000ffff");
+  COMPARE_MACRO(Mov(x0, 0xffff0000ffffffff), "mov x0, #0xffff0000ffffffff");
+  COMPARE_MACRO(Mov(x0, 0x0000ffffffffffff), "mov x0, #0xffffffffffff");
+  COMPARE_MACRO(Mov(x0, 0xfffe7fffffffffff), "mov x0, #0xfffe7fffffffffff");
+  COMPARE_MACRO(Mov(x0, 0xfffeffffffffffff), "mov x0, #0xfffeffffffffffff");
+  COMPARE_MACRO(Mov(x0, 0xffff7fffffffffff), "mov x0, #0xffff7fffffffffff");
+  COMPARE_MACRO(Mov(x0, 0xfffffffe7fffffff), "mov x0, #0xfffffffe7fffffff");
+  COMPARE_MACRO(Mov(x0, 0xfffffffeffffffff), "mov x0, #0xfffffffeffffffff");
+  COMPARE_MACRO(Mov(x0, 0xffffffff7fffffff), "mov x0, #0xffffffff7fffffff");
+  COMPARE_MACRO(Mov(x0, 0xfffffffffffe7fff), "mov x0, #0xfffffffffffe7fff");
+  COMPARE_MACRO(Mov(x0, 0xfffffffffffeffff), "mov x0, #0xfffffffffffeffff");
+  COMPARE_MACRO(Mov(x0, 0xffffffffffff7fff), "mov x0, #0xffffffffffff7fff");
+  COMPARE_MACRO(Mov(x0, 0xffffffffffffffff), "mov x0, #0xffffffffffffffff");
 
-  COMPARE(Movk(w0, 0x1234, 0), "movk w0, #0x1234");
-  COMPARE(Movk(x1, 0x2345, 0), "movk x1, #0x2345");
-  COMPARE(Movk(w2, 0x3456, 16), "movk w2, #0x3456, lsl #16");
-  COMPARE(Movk(x3, 0x4567, 16), "movk x3, #0x4567, lsl #16");
-  COMPARE(Movk(x4, 0x5678, 32), "movk x4, #0x5678, lsl #32");
-  COMPARE(Movk(x5, 0x6789, 48), "movk x5, #0x6789, lsl #48");
+  COMPARE_MACRO(Movk(w0, 0x1234, 0), "movk w0, #0x1234");
+  COMPARE_MACRO(Movk(x1, 0x2345, 0), "movk x1, #0x2345");
+  COMPARE_MACRO(Movk(w2, 0x3456, 16), "movk w2, #0x3456, lsl #16");
+  COMPARE_MACRO(Movk(x3, 0x4567, 16), "movk x3, #0x4567, lsl #16");
+  COMPARE_MACRO(Movk(x4, 0x5678, 32), "movk x4, #0x5678, lsl #32");
+  COMPARE_MACRO(Movk(x5, 0x6789, 48), "movk x5, #0x6789, lsl #48");
 
   CLEANUP();
 }
@@ -321,6 +327,11 @@
   COMPARE(cmn(sp, Operand(24)), "cmn sp, #0x18 (24)");
   COMPARE(adds(wzr, wsp, Operand(9)), "cmn wsp, #0x9 (9)");
 
+  // Instructions in the add/sub immediate space, but unallocated due to shift
+  // value out of range.
+  COMPARE(dci(0x11800400), "unallocated (Unallocated)");
+  COMPARE(dci(0x11c00400), "unallocated (Unallocated)");
+
   CLEANUP();
 }
 
@@ -706,7 +717,7 @@
 
 TEST(logical_immediate) {
   SETUP();
-  #define RESULT_SIZE (256)
+#define RESULT_SIZE (256)
 
   char result[RESULT_SIZE];
 
@@ -770,33 +781,25 @@
           "and w0, w0, #0x55555555");  // 2-bit pattern.
 
   // Test other instructions.
-  COMPARE(tst(w1, Operand(0x11111111)),
-          "tst w1, #0x11111111");
-  COMPARE(tst(x2, Operand(0x8888888888888888)),
-          "tst x2, #0x8888888888888888");
-  COMPARE(orr(w7, w8, Operand(0xaaaaaaaa)),
-          "orr w7, w8, #0xaaaaaaaa");
+  COMPARE(tst(w1, Operand(0x11111111)), "tst w1, #0x11111111");
+  COMPARE(tst(x2, Operand(0x8888888888888888)), "tst x2, #0x8888888888888888");
+  COMPARE(orr(w7, w8, Operand(0xaaaaaaaa)), "orr w7, w8, #0xaaaaaaaa");
   COMPARE(orr(x9, x10, Operand(0x5555555555555555)),
           "orr x9, x10, #0x5555555555555555");
-  COMPARE(eor(w15, w16, Operand(0x00000001)),
-          "eor w15, w16, #0x1");
-  COMPARE(eor(x17, x18, Operand(0x0000000000000003)),
-          "eor x17, x18, #0x3");
+  COMPARE(eor(w15, w16, Operand(0x00000001)), "eor w15, w16, #0x1");
+  COMPARE(eor(x17, x18, Operand(0x0000000000000003)), "eor x17, x18, #0x3");
   COMPARE(ands(w23, w24, Operand(0x0000000f)), "ands w23, w24, #0xf");
   COMPARE(ands(x25, x26, Operand(0x800000000000000f)),
           "ands x25, x26, #0x800000000000000f");
 
   // Test inverse.
-  COMPARE(bic(w3, w4, Operand(0x20202020)),
-          "and w3, w4, #0xdfdfdfdf");
+  COMPARE(bic(w3, w4, Operand(0x20202020)), "and w3, w4, #0xdfdfdfdf");
   COMPARE(bic(x5, x6, Operand(0x4040404040404040)),
           "and x5, x6, #0xbfbfbfbfbfbfbfbf");
-  COMPARE(orn(w11, w12, Operand(0x40004000)),
-          "orr w11, w12, #0xbfffbfff");
+  COMPARE(orn(w11, w12, Operand(0x40004000)), "orr w11, w12, #0xbfffbfff");
   COMPARE(orn(x13, x14, Operand(0x8181818181818181)),
           "orr x13, x14, #0x7e7e7e7e7e7e7e7e");
-  COMPARE(eon(w19, w20, Operand(0x80000001)),
-          "eor w19, w20, #0x7ffffffe");
+  COMPARE(eon(w19, w20, Operand(0x80000001)), "eor w19, w20, #0x7ffffffe");
   COMPARE(eon(x21, x22, Operand(0xc000000000000003)),
           "eor x21, x22, #0x3ffffffffffffffc");
   COMPARE(bics(w27, w28, Operand(0xfffffff7)), "ands w27, w28, #0x8");
@@ -951,7 +954,7 @@
 TEST(branch) {
   SETUP();
 
-  #define INST_OFF(x) (INT64_C(x) >> kInstructionSizeLog2)
+#define INST_OFF(x) (INT64_C(x) >> kInstructionSizeLog2)
   COMPARE_PREFIX(b(INST_OFF(0x4)), "b #+0x4");
   COMPARE_PREFIX(b(INST_OFF(-0x4)), "b #-0x4");
   COMPARE_PREFIX(b(INST_OFF(0x7fffffc)), "b #+0x7fffffc");
@@ -1516,12 +1519,10 @@
   SETUP();
 
   // Just like load_store_unscaled, but specify the scaling option explicitly.
-  LoadStoreScalingOption options[] = {
-    PreferUnscaledOffset,
-    RequireUnscaledOffset
-  };
+  LoadStoreScalingOption options[] = {PreferUnscaledOffset,
+                                      RequireUnscaledOffset};
 
-  for (size_t i = 0; i < sizeof(options)/sizeof(options[0]); i++) {
+  for (size_t i = 0; i < sizeof(options) / sizeof(options[0]); i++) {
     LoadStoreScalingOption option = options[i];
 
     // If an unscaled-offset instruction is requested, it is used, even if the
@@ -1748,8 +1749,7 @@
           "stp x18, x19, [sp, #-8]!");
   COMPARE(ldp(s30, s31, MemOperand(sp, 12, PostIndex)),
           "ldp s30, s31, [sp], #12");
-  COMPARE(stp(d30, d31, MemOperand(sp, -16)),
-          "stp d30, d31, [sp, #-16]");
+  COMPARE(stp(d30, d31, MemOperand(sp, -16)), "stp d30, d31, [sp, #-16]");
   COMPARE(ldp(q30, q31, MemOperand(sp, 32, PostIndex)),
           "ldp q30, q31, [sp], #32");
 
@@ -1885,18 +1885,18 @@
 
 
 TEST(load_literal_macro) {
-  SETUP_MACRO();
+  SETUP();
 
   // In each case, the literal will be placed at PC+8:
   //    ldr   x10, pc+8               // Test instruction.
   //    ldr   xzr, pc+12              // Pool marker.
   //    .word64 #0x1234567890abcdef   // Test literal.
 
-  COMPARE_PREFIX(Ldr(x10, 0x1234567890abcdef),  "ldr x10, pc+8");
-  COMPARE_PREFIX(Ldr(w20, 0xfedcba09),  "ldr w20, pc+8");
-  COMPARE_PREFIX(Ldr(d11, 1.234),  "ldr d11, pc+8");
-  COMPARE_PREFIX(Ldr(s22, 2.5f),  "ldr s22, pc+8");
-  COMPARE_PREFIX(Ldrsw(x21, 0x80000000), "ldrsw x21, pc+8");
+  COMPARE_MACRO_PREFIX(Ldr(x10, 0x1234567890abcdef), "ldr x10, pc+8");
+  COMPARE_MACRO_PREFIX(Ldr(w20, 0xfedcba09), "ldr w20, pc+8");
+  COMPARE_MACRO_PREFIX(Ldr(d11, 1.234), "ldr d11, pc+8");
+  COMPARE_MACRO_PREFIX(Ldr(s22, 2.5f), "ldr s22, pc+8");
+  COMPARE_MACRO_PREFIX(Ldrsw(x21, 0x80000000), "ldrsw x21, pc+8");
 
   CLEANUP();
 }
@@ -1940,38 +1940,17 @@
 
   // Test every encodable prefetch operation.
   const char* expected[] = {
-    "prfm pldl1keep, ",
-    "prfm pldl1strm, ",
-    "prfm pldl2keep, ",
-    "prfm pldl2strm, ",
-    "prfm pldl3keep, ",
-    "prfm pldl3strm, ",
-    "prfm #0b00110, ",
-    "prfm #0b00111, ",
-    "prfm plil1keep, ",
-    "prfm plil1strm, ",
-    "prfm plil2keep, ",
-    "prfm plil2strm, ",
-    "prfm plil3keep, ",
-    "prfm plil3strm, ",
-    "prfm #0b01110, ",
-    "prfm #0b01111, ",
-    "prfm pstl1keep, ",
-    "prfm pstl1strm, ",
-    "prfm pstl2keep, ",
-    "prfm pstl2strm, ",
-    "prfm pstl3keep, ",
-    "prfm pstl3strm, ",
-    "prfm #0b10110, ",
-    "prfm #0b10111, ",
-    "prfm #0b11000, ",
-    "prfm #0b11001, ",
-    "prfm #0b11010, ",
-    "prfm #0b11011, ",
-    "prfm #0b11100, ",
-    "prfm #0b11101, ",
-    "prfm #0b11110, ",
-    "prfm #0b11111, ",
+      "prfm pldl1keep, ", "prfm pldl1strm, ", "prfm pldl2keep, ",
+      "prfm pldl2strm, ", "prfm pldl3keep, ", "prfm pldl3strm, ",
+      "prfm #0b00110, ",  "prfm #0b00111, ",  "prfm plil1keep, ",
+      "prfm plil1strm, ", "prfm plil2keep, ", "prfm plil2strm, ",
+      "prfm plil3keep, ", "prfm plil3strm, ", "prfm #0b01110, ",
+      "prfm #0b01111, ",  "prfm pstl1keep, ", "prfm pstl1strm, ",
+      "prfm pstl2keep, ", "prfm pstl2strm, ", "prfm pstl3keep, ",
+      "prfm pstl3strm, ", "prfm #0b10110, ",  "prfm #0b10111, ",
+      "prfm #0b11000, ",  "prfm #0b11001, ",  "prfm #0b11010, ",
+      "prfm #0b11011, ",  "prfm #0b11100, ",  "prfm #0b11101, ",
+      "prfm #0b11110, ",  "prfm #0b11111, ",
   };
   const int expected_count = sizeof(expected) / sizeof(expected[0]);
   VIXL_STATIC_ASSERT((1 << ImmPrefetchOperation_width) == expected_count);
@@ -1992,38 +1971,17 @@
 
   // Test every encodable prefetch operation.
   const char* expected[] = {
-    "prfum pldl1keep, ",
-    "prfum pldl1strm, ",
-    "prfum pldl2keep, ",
-    "prfum pldl2strm, ",
-    "prfum pldl3keep, ",
-    "prfum pldl3strm, ",
-    "prfum #0b00110, ",
-    "prfum #0b00111, ",
-    "prfum plil1keep, ",
-    "prfum plil1strm, ",
-    "prfum plil2keep, ",
-    "prfum plil2strm, ",
-    "prfum plil3keep, ",
-    "prfum plil3strm, ",
-    "prfum #0b01110, ",
-    "prfum #0b01111, ",
-    "prfum pstl1keep, ",
-    "prfum pstl1strm, ",
-    "prfum pstl2keep, ",
-    "prfum pstl2strm, ",
-    "prfum pstl3keep, ",
-    "prfum pstl3strm, ",
-    "prfum #0b10110, ",
-    "prfum #0b10111, ",
-    "prfum #0b11000, ",
-    "prfum #0b11001, ",
-    "prfum #0b11010, ",
-    "prfum #0b11011, ",
-    "prfum #0b11100, ",
-    "prfum #0b11101, ",
-    "prfum #0b11110, ",
-    "prfum #0b11111, ",
+      "prfum pldl1keep, ", "prfum pldl1strm, ", "prfum pldl2keep, ",
+      "prfum pldl2strm, ", "prfum pldl3keep, ", "prfum pldl3strm, ",
+      "prfum #0b00110, ",  "prfum #0b00111, ",  "prfum plil1keep, ",
+      "prfum plil1strm, ", "prfum plil2keep, ", "prfum plil2strm, ",
+      "prfum plil3keep, ", "prfum plil3strm, ", "prfum #0b01110, ",
+      "prfum #0b01111, ",  "prfum pstl1keep, ", "prfum pstl1strm, ",
+      "prfum pstl2keep, ", "prfum pstl2strm, ", "prfum pstl3keep, ",
+      "prfum pstl3strm, ", "prfum #0b10110, ",  "prfum #0b10111, ",
+      "prfum #0b11000, ",  "prfum #0b11001, ",  "prfum #0b11010, ",
+      "prfum #0b11011, ",  "prfum #0b11100, ",  "prfum #0b11101, ",
+      "prfum #0b11110, ",  "prfum #0b11111, ",
   };
   const int expected_count = sizeof(expected) / sizeof(expected[0]);
   VIXL_STATIC_ASSERT((1 << ImmPrefetchOperation_width) == expected_count);
@@ -2224,7 +2182,7 @@
 
 
 TEST(cond_select_macro) {
-  SETUP_MACRO();
+  SETUP();
 
   // In the tests below we also test the `GetCselSynthesisInformation()` helper.
   // These tests are here (rather than in test-assembler-aarch64.cc) because the
@@ -2232,155 +2190,213 @@
   bool synthesises_left = false;
   bool synthesises_right = false;
 
-  COMPARE(Csel(w0, w1, -1, eq), "csinv w0, w1, wzr, eq");
-  MacroAssembler::GetCselSynthesisInformation(w0, w1, -1,
+  COMPARE_MACRO(Csel(w0, w1, -1, eq), "csinv w0, w1, wzr, eq");
+  MacroAssembler::GetCselSynthesisInformation(w0,
+                                              w1,
+                                              -1,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
-  COMPARE(Csel(w2, w3, 0, ne), "csel w2, w3, wzr, ne");
-  MacroAssembler::GetCselSynthesisInformation(w2, w3, wzr,
+  COMPARE_MACRO(Csel(w2, w3, 0, ne), "csel w2, w3, wzr, ne");
+  MacroAssembler::GetCselSynthesisInformation(w2,
+                                              w3,
+                                              wzr,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
-  COMPARE(Csel(w4, w5, 1, hs), "csinc w4, w5, wzr, hs");
-  MacroAssembler::GetCselSynthesisInformation(w4, w5, 1,
+  COMPARE_MACRO(Csel(w4, w5, 1, hs), "csinc w4, w5, wzr, hs");
+  MacroAssembler::GetCselSynthesisInformation(w4,
+                                              w5,
+                                              1,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
-  COMPARE(Csel(x6, x7, -1, lo), "csinv x6, x7, xzr, lo");
-  MacroAssembler::GetCselSynthesisInformation(x6, x7, xzr,
+  COMPARE_MACRO(Csel(x6, x7, -1, lo), "csinv x6, x7, xzr, lo");
+  MacroAssembler::GetCselSynthesisInformation(x6,
+                                              x7,
+                                              xzr,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
-  COMPARE(Csel(x8, x9, 0, mi), "csel x8, x9, xzr, mi");
-  MacroAssembler::GetCselSynthesisInformation(x8, x9, xzr,
+  COMPARE_MACRO(Csel(x8, x9, 0, mi), "csel x8, x9, xzr, mi");
+  MacroAssembler::GetCselSynthesisInformation(x8,
+                                              x9,
+                                              xzr,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
-  COMPARE(Csel(x10, x11, 1, pl), "csinc x10, x11, xzr, pl");
-  MacroAssembler::GetCselSynthesisInformation(x10, x11, xzr,
+  COMPARE_MACRO(Csel(x10, x11, 1, pl), "csinc x10, x11, xzr, pl");
+  MacroAssembler::GetCselSynthesisInformation(x10,
+                                              x11,
+                                              xzr,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
-  COMPARE_MACRO(Csel(x12,     0,     0, eq), "mov x12, #0x0");
-  MacroAssembler::GetCselSynthesisInformation(x12, 0, 0,
+  COMPARE_MACRO(Csel(x12, 0, 0, eq), "mov x12, #0x0");
+  MacroAssembler::GetCselSynthesisInformation(x12,
+                                              0,
+                                              0,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
-  COMPARE_MACRO(Csel(w13,     0,     1, eq), "cset w13, ne");
-  MacroAssembler::GetCselSynthesisInformation(w13, 0, 1,
+  COMPARE_MACRO(Csel(w13, 0, 1, eq), "cset w13, ne");
+  MacroAssembler::GetCselSynthesisInformation(w13,
+                                              0,
+                                              1,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
-  COMPARE_MACRO(Csel(x14,     1,     0, eq), "cset x14, eq");
-  MacroAssembler::GetCselSynthesisInformation(x14, 1, 0,
+  COMPARE_MACRO(Csel(x14, 1, 0, eq), "cset x14, eq");
+  MacroAssembler::GetCselSynthesisInformation(x14,
+                                              1,
+                                              0,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
-  COMPARE_MACRO(Csel(w15,     0,    -1, eq), "csetm w15, ne");
-  MacroAssembler::GetCselSynthesisInformation(w15, 0, -1,
+  COMPARE_MACRO(Csel(w15, 0, -1, eq), "csetm w15, ne");
+  MacroAssembler::GetCselSynthesisInformation(w15,
+                                              0,
+                                              -1,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
-  COMPARE_MACRO(Csel(x18,    -1,     0, eq), "csetm x18, eq");
-  MacroAssembler::GetCselSynthesisInformation(x18, -1, 0,
+  COMPARE_MACRO(Csel(x18, -1, 0, eq), "csetm x18, eq");
+  MacroAssembler::GetCselSynthesisInformation(x18,
+                                              -1,
+                                              0,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
-  COMPARE_MACRO(Csel(w19,    -1,     1, eq), "mov w19, #0x1\n"
-                                             "cneg w19, w19, eq");
-  MacroAssembler::GetCselSynthesisInformation(w19, -1, 1,
+  COMPARE_MACRO(Csel(w19, -1, 1, eq),
+                "mov w19, #0x1\n"
+                "cneg w19, w19, eq");
+  MacroAssembler::GetCselSynthesisInformation(w19,
+                                              -1,
+                                              1,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && synthesises_right);
 
-  COMPARE_MACRO(Csel(x20,     1,    -1, eq), "mov x20, #0xffffffffffffffff\n"
-                                             "cneg x20, x20, eq");
-  MacroAssembler::GetCselSynthesisInformation(x20, 1, -1,
+  COMPARE_MACRO(Csel(x20, 1, -1, eq),
+                "mov x20, #0xffffffffffffffff\n"
+                "cneg x20, x20, eq");
+  MacroAssembler::GetCselSynthesisInformation(x20,
+                                              1,
+                                              -1,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && synthesises_right);
 
-  COMPARE_MACRO(Csel(w21,  0xaa,  0xbb, eq), "mov w16, #0xaa\n"
-                                             "mov w17, #0xbb\n"
-                                             "csel w21, w16, w17, eq");
-  MacroAssembler::GetCselSynthesisInformation(w21, 0xaa, 0xbb,
+  COMPARE_MACRO(Csel(w21, 0xaa, 0xbb, eq),
+                "mov w16, #0xaa\n"
+                "mov w17, #0xbb\n"
+                "csel w21, w16, w17, eq");
+  MacroAssembler::GetCselSynthesisInformation(w21,
+                                              0xaa,
+                                              0xbb,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(synthesises_left && synthesises_right);
 
-  COMPARE_MACRO(Csel(x22,  0xaa, -0xbb, eq), "mov x16, #0xaa\n"
-                                             "mov x17, #0xffffffffffffff45\n"
-                                             "csel x22, x16, x17, eq");
-  MacroAssembler::GetCselSynthesisInformation(x22, 0xaa, -0xbb,
+  COMPARE_MACRO(Csel(x22, 0xaa, -0xbb, eq),
+                "mov x16, #0xaa\n"
+                "mov x17, #0xffffffffffffff45\n"
+                "csel x22, x16, x17, eq");
+  MacroAssembler::GetCselSynthesisInformation(x22,
+                                              0xaa,
+                                              -0xbb,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(synthesises_left && synthesises_right);
 
-  COMPARE_MACRO(Csel(w23,     0,  0xaa, eq), "mov w16, #0xaa\n"
-                                             "csel w23, w16, wzr, ne");
-  MacroAssembler::GetCselSynthesisInformation(w23, 0, 0xaa,
+  COMPARE_MACRO(Csel(w23, 0, 0xaa, eq),
+                "mov w16, #0xaa\n"
+                "csel w23, w16, wzr, ne");
+  MacroAssembler::GetCselSynthesisInformation(w23,
+                                              0,
+                                              0xaa,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && synthesises_right);
 
-  COMPARE_MACRO(Csel(x24, -0xaa,     0, eq), "mov x16, #0xffffffffffffff56\n"
-                                             "csel x24, x16, xzr, eq");
-  MacroAssembler::GetCselSynthesisInformation(x24, -0xaa, 0,
+  COMPARE_MACRO(Csel(x24, -0xaa, 0, eq),
+                "mov x16, #0xffffffffffffff56\n"
+                "csel x24, x16, xzr, eq");
+  MacroAssembler::GetCselSynthesisInformation(x24,
+                                              -0xaa,
+                                              0,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(synthesises_left && !synthesises_right);
 
-  COMPARE_MACRO(Csel(w25,  0xcc, -0xcc, eq), "mov w25, #0xffffff34\n"
-                                             "cneg w25, w25, eq");
-  MacroAssembler::GetCselSynthesisInformation(w25, 0xcc, -0xcc,
+  COMPARE_MACRO(Csel(w25, 0xcc, -0xcc, eq),
+                "mov w25, #0xffffff34\n"
+                "cneg w25, w25, eq");
+  MacroAssembler::GetCselSynthesisInformation(w25,
+                                              0xcc,
+                                              -0xcc,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && synthesises_right);
 
-  COMPARE_MACRO(Csel(x26, -0xcc,  0xcc, eq), "mov x26, #0xcc\n"
-                                             "cneg x26, x26, eq");
-  MacroAssembler::GetCselSynthesisInformation(w25, -0xcc, 0xcc,
+  COMPARE_MACRO(Csel(x26, -0xcc, 0xcc, eq),
+                "mov x26, #0xcc\n"
+                "cneg x26, x26, eq");
+  MacroAssembler::GetCselSynthesisInformation(w25,
+                                              -0xcc,
+                                              0xcc,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && synthesises_right);
 
   // Test with `Operand` inputs.
-  COMPARE_MACRO(Csel(x0, x1, Operand(x2, LSL, 3), eq), "lsl x16, x2, #3\n"
-                                                       "csel x0, x1, x16, eq");
-  MacroAssembler::GetCselSynthesisInformation(x0, x1,  Operand(x2, LSL, 3),
+  COMPARE_MACRO(Csel(x0, x1, Operand(x2, LSL, 3), eq),
+                "lsl x16, x2, #3\n"
+                "csel x0, x1, x16, eq");
+  MacroAssembler::GetCselSynthesisInformation(x0,
+                                              x1,
+                                              Operand(x2, LSL, 3),
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && synthesises_right);
 
-  COMPARE_MACRO(Csel(x3, x4, Operand(x5, SXTH), eq), "sxth x16, w5\n"
-                                                     "csel x3, x4, x16, eq");
-  MacroAssembler::GetCselSynthesisInformation(x3, x4,  Operand(x5, SXTH),
+  COMPARE_MACRO(Csel(x3, x4, Operand(x5, SXTH), eq),
+                "sxth x16, w5\n"
+                "csel x3, x4, x16, eq");
+  MacroAssembler::GetCselSynthesisInformation(x3,
+                                              x4,
+                                              Operand(x5, SXTH),
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && synthesises_right);
 
-  COMPARE_MACRO(Csel(x6, Operand(x7, LSL, 7), x8, eq), "lsl x16, x7, #7\n"
-                                                       "csel x6, x16, x8, eq");
-  MacroAssembler::GetCselSynthesisInformation(x6, Operand(x7, LSL, 7), x8,
+  COMPARE_MACRO(Csel(x6, Operand(x7, LSL, 7), x8, eq),
+                "lsl x16, x7, #7\n"
+                "csel x6, x16, x8, eq");
+  MacroAssembler::GetCselSynthesisInformation(x6,
+                                              Operand(x7, LSL, 7),
+                                              x8,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(synthesises_left && !synthesises_right);
 
-  COMPARE_MACRO(Csel(x9, Operand(x10, SXTH), x11, eq), "sxth x16, w10\n"
-                                                       "csel x9, x16, x11, eq");
-  MacroAssembler::GetCselSynthesisInformation(x9, Operand(x10, SXTH), x11,
+  COMPARE_MACRO(Csel(x9, Operand(x10, SXTH), x11, eq),
+                "sxth x16, w10\n"
+                "csel x9, x16, x11, eq");
+  MacroAssembler::GetCselSynthesisInformation(x9,
+                                              Operand(x10, SXTH),
+                                              x11,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(synthesises_left && !synthesises_right);
@@ -2399,38 +2415,50 @@
   COMPARE_MACRO(Csel(x15, 0, Operand(x18, LSR, 18), eq),
                 "lsr x16, x18, #18\n"
                 "csel x15, x16, xzr, ne");
-  MacroAssembler::GetCselSynthesisInformation(x15, 0, Operand(x18, LSR, 18),
+  MacroAssembler::GetCselSynthesisInformation(x15,
+                                              0,
+                                              Operand(x18, LSR, 18),
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && synthesises_right);
 
   // Test with the zero register.
   COMPARE_MACRO(Csel(w19, wzr, wzr, eq), "mov w19, #0x0");
-  MacroAssembler::GetCselSynthesisInformation(w19, wzr, wzr,
+  MacroAssembler::GetCselSynthesisInformation(w19,
+                                              wzr,
+                                              wzr,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
   COMPARE_MACRO(Csel(x20, x21, xzr, eq), "csel x20, x21, xzr, eq");
-  MacroAssembler::GetCselSynthesisInformation(x20, x21, xzr,
+  MacroAssembler::GetCselSynthesisInformation(x20,
+                                              x21,
+                                              xzr,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
   COMPARE_MACRO(Csel(w22, wzr, w23, eq), "csel w22, w23, wzr, ne");
-  MacroAssembler::GetCselSynthesisInformation(w22, wzr, w23,
+  MacroAssembler::GetCselSynthesisInformation(w22,
+                                              wzr,
+                                              w23,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
   COMPARE_MACRO(Csel(x24, xzr, 0, eq), "mov x24, #0x0");
-  MacroAssembler::GetCselSynthesisInformation(x24, xzr, 0,
+  MacroAssembler::GetCselSynthesisInformation(x24,
+                                              xzr,
+                                              0,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
 
   COMPARE_MACRO(Csel(w25, wzr, 1, eq), "cset w25, ne");
-  MacroAssembler::GetCselSynthesisInformation(w25, wzr, 1,
+  MacroAssembler::GetCselSynthesisInformation(w25,
+                                              wzr,
+                                              1,
                                               &synthesises_left,
                                               &synthesises_right);
   VIXL_CHECK(!synthesises_left && !synthesises_right);
@@ -2459,12 +2487,12 @@
 
 
 TEST(cond_cmp_macro) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Ccmp(w0, -1, VFlag, hi), "ccmn w0, #1, #nzcV, hi");
-  COMPARE(Ccmp(x1, -31, CFlag, ge), "ccmn x1, #31, #nzCv, ge");
-  COMPARE(Ccmn(w2, -1, CVFlag, gt), "ccmp w2, #1, #nzCV, gt");
-  COMPARE(Ccmn(x3, -31, ZCVFlag, ls), "ccmp x3, #31, #nZCV, ls");
+  COMPARE_MACRO(Ccmp(w0, -1, VFlag, hi), "ccmn w0, #1, #nzcV, hi");
+  COMPARE_MACRO(Ccmp(x1, -31, CFlag, ge), "ccmn x1, #31, #nzCv, ge");
+  COMPARE_MACRO(Ccmn(w2, -1, CVFlag, gt), "ccmp w2, #1, #nzCV, gt");
+  COMPARE_MACRO(Ccmn(x3, -31, ZCVFlag, ls), "ccmp x3, #31, #nZCV, ls");
 
   CLEANUP();
 }
@@ -2683,14 +2711,14 @@
   COMPARE(fcvtzu(w18, s19), "fcvtzu w18, s19");
   COMPARE(fcvtzs(x20, s21), "fcvtzs x20, s21");
   COMPARE(fcvtzs(w22, s23), "fcvtzs w22, s23");
-  COMPARE(fcvtzs(w2, d1, 1),  "fcvtzs w2, d1, #1");
-  COMPARE(fcvtzs(w2, s1, 1),  "fcvtzs w2, s1, #1");
+  COMPARE(fcvtzs(w2, d1, 1), "fcvtzs w2, d1, #1");
+  COMPARE(fcvtzs(w2, s1, 1), "fcvtzs w2, s1, #1");
   COMPARE(fcvtzs(x4, d3, 15), "fcvtzs x4, d3, #15");
   COMPARE(fcvtzs(x4, s3, 15), "fcvtzs x4, s3, #15");
   COMPARE(fcvtzs(w6, d5, 32), "fcvtzs w6, d5, #32");
   COMPARE(fcvtzs(w6, s5, 32), "fcvtzs w6, s5, #32");
-  COMPARE(fcvtzu(w2, d1, 1),  "fcvtzu w2, d1, #1");
-  COMPARE(fcvtzu(w2, s1, 1),  "fcvtzu w2, s1, #1");
+  COMPARE(fcvtzu(w2, d1, 1), "fcvtzu w2, d1, #1");
+  COMPARE(fcvtzu(w2, s1, 1), "fcvtzu w2, s1, #1");
   COMPARE(fcvtzu(x4, d3, 15), "fcvtzu x4, d3, #15");
   COMPARE(fcvtzu(x4, s3, 15), "fcvtzu x4, s3, #15");
   COMPARE(fcvtzu(w6, d5, 32), "fcvtzu w6, d5, #32");
@@ -2824,13 +2852,13 @@
 
 
 TEST(unreachable) {
-  SETUP_MACRO();
+  SETUP();
 
 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
   VIXL_ASSERT(kUnreachableOpcode == 0xdeb0);
-  COMPARE(Unreachable(), "hlt #0xdeb0");
+  COMPARE_MACRO(Unreachable(), "hlt #0xdeb0");
 #else
-  COMPARE(Unreachable(), "blr xzr");
+  COMPARE_MACRO(Unreachable(), "blr xzr");
 #endif
 
   CLEANUP();
@@ -2839,7 +2867,7 @@
 
 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
 TEST(trace) {
-  SETUP_MACRO();
+  SETUP();
 
   VIXL_ASSERT(kTraceOpcode == 0xdeb2);
 
@@ -2854,7 +2882,7 @@
 
 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
 TEST(log) {
-  SETUP_MACRO();
+  SETUP();
 
   VIXL_ASSERT(kLogOpcode == 0xdeb3);
 
@@ -2901,365 +2929,422 @@
 
 
 TEST(add_sub_negative) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Add(x10, x0, -42), "sub x10, x0, #0x2a (42)");
-  COMPARE(Add(x11, x1, -687), "sub x11, x1, #0x2af (687)");
-  COMPARE(Add(x12, x2, -0x88), "sub x12, x2, #0x88 (136)");
+  COMPARE_MACRO(Add(x10, x0, -42), "sub x10, x0, #0x2a (42)");
+  COMPARE_MACRO(Add(x11, x1, -687), "sub x11, x1, #0x2af (687)");
+  COMPARE_MACRO(Add(x12, x2, -0x88), "sub x12, x2, #0x88 (136)");
 
-  COMPARE(Sub(x13, x0, -600), "add x13, x0, #0x258 (600)");
-  COMPARE(Sub(x14, x1, -313), "add x14, x1, #0x139 (313)");
-  COMPARE(Sub(x15, x2, -0x555), "add x15, x2, #0x555 (1365)");
+  COMPARE_MACRO(Sub(x13, x0, -600), "add x13, x0, #0x258 (600)");
+  COMPARE_MACRO(Sub(x14, x1, -313), "add x14, x1, #0x139 (313)");
+  COMPARE_MACRO(Sub(x15, x2, -0x555), "add x15, x2, #0x555 (1365)");
 
-  COMPARE(Add(w19, w3, -0x344), "sub w19, w3, #0x344 (836)");
-  COMPARE(Add(w20, w4, -2000), "sub w20, w4, #0x7d0 (2000)");
+  COMPARE_MACRO(Add(w19, w3, -0x344), "sub w19, w3, #0x344 (836)");
+  COMPARE_MACRO(Add(w20, w4, -2000), "sub w20, w4, #0x7d0 (2000)");
 
-  COMPARE(Add(w0, w1, 5, LeaveFlags), "add w0, w1, #0x5 (5)");
-  COMPARE(Add(w1, w2, 15, SetFlags), "adds w1, w2, #0xf (15)");
+  COMPARE_MACRO(Add(w0, w1, 5, LeaveFlags), "add w0, w1, #0x5 (5)");
+  COMPARE_MACRO(Add(w1, w2, 15, SetFlags), "adds w1, w2, #0xf (15)");
 
-  COMPARE(Sub(w0, w1, 5, LeaveFlags), "sub w0, w1, #0x5 (5)");
-  COMPARE(Sub(w1, w2, 15, SetFlags), "subs w1, w2, #0xf (15)");
+  COMPARE_MACRO(Sub(w0, w1, 5, LeaveFlags), "sub w0, w1, #0x5 (5)");
+  COMPARE_MACRO(Sub(w1, w2, 15, SetFlags), "subs w1, w2, #0xf (15)");
 
-  COMPARE(Sub(w21, w3, -0xbc), "add w21, w3, #0xbc (188)");
-  COMPARE(Sub(w22, w4, -2000), "add w22, w4, #0x7d0 (2000)");
+  COMPARE_MACRO(Sub(w21, w3, -0xbc), "add w21, w3, #0xbc (188)");
+  COMPARE_MACRO(Sub(w22, w4, -2000), "add w22, w4, #0x7d0 (2000)");
 
-  COMPARE(Cmp(w0, -1), "cmn w0, #0x1 (1)");
-  COMPARE(Cmp(x1, -1), "cmn x1, #0x1 (1)");
-  COMPARE(Cmp(w2, -4095), "cmn w2, #0xfff (4095)");
-  COMPARE(Cmp(x3, -4095), "cmn x3, #0xfff (4095)");
+  COMPARE_MACRO(Cmp(w0, -1), "cmn w0, #0x1 (1)");
+  COMPARE_MACRO(Cmp(x1, -1), "cmn x1, #0x1 (1)");
+  COMPARE_MACRO(Cmp(w2, -4095), "cmn w2, #0xfff (4095)");
+  COMPARE_MACRO(Cmp(x3, -4095), "cmn x3, #0xfff (4095)");
 
-  COMPARE(Cmn(w0, -1), "cmp w0, #0x1 (1)");
-  COMPARE(Cmn(x1, -1), "cmp x1, #0x1 (1)");
-  COMPARE(Cmn(w2, -4095), "cmp w2, #0xfff (4095)");
-  COMPARE(Cmn(x3, -4095), "cmp x3, #0xfff (4095)");
+  COMPARE_MACRO(Cmn(w0, -1), "cmp w0, #0x1 (1)");
+  COMPARE_MACRO(Cmn(x1, -1), "cmp x1, #0x1 (1)");
+  COMPARE_MACRO(Cmn(w2, -4095), "cmp w2, #0xfff (4095)");
+  COMPARE_MACRO(Cmn(x3, -4095), "cmp x3, #0xfff (4095)");
 
   CLEANUP();
 }
 
 
 TEST(logical_immediate_move) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(And(w0, w1, 0), "mov w0, #0x0");
-  COMPARE(And(x0, x1, 0), "mov x0, #0x0");
-  COMPARE(Orr(w2, w3, 0), "mov w2, w3");
-  COMPARE(Orr(x2, x3, 0), "mov x2, x3");
-  COMPARE(Eor(w4, w5, 0), "mov w4, w5");
-  COMPARE(Eor(x4, x5, 0), "mov x4, x5");
-  COMPARE(Bic(w6, w7, 0), "mov w6, w7");
-  COMPARE(Bic(x6, x7, 0), "mov x6, x7");
-  COMPARE(Orn(w8, w9, 0), "mov w8, #0xffffffff");
-  COMPARE(Orn(x8, x9, 0), "mov x8, #0xffffffffffffffff");
-  COMPARE(Eon(w10, w11, 0), "mvn w10, w11");
-  COMPARE(Eon(x10, x11, 0), "mvn x10, x11");
+  COMPARE_MACRO(And(w0, w1, 0), "mov w0, #0x0");
+  COMPARE_MACRO(And(x0, x1, 0), "mov x0, #0x0");
+  COMPARE_MACRO(Orr(w2, w3, 0), "mov w2, w3");
+  COMPARE_MACRO(Orr(x2, x3, 0), "mov x2, x3");
+  COMPARE_MACRO(Eor(w4, w5, 0), "mov w4, w5");
+  COMPARE_MACRO(Eor(x4, x5, 0), "mov x4, x5");
+  COMPARE_MACRO(Bic(w6, w7, 0), "mov w6, w7");
+  COMPARE_MACRO(Bic(x6, x7, 0), "mov x6, x7");
+  COMPARE_MACRO(Orn(w8, w9, 0), "mov w8, #0xffffffff");
+  COMPARE_MACRO(Orn(x8, x9, 0), "mov x8, #0xffffffffffffffff");
+  COMPARE_MACRO(Eon(w10, w11, 0), "mvn w10, w11");
+  COMPARE_MACRO(Eon(x10, x11, 0), "mvn x10, x11");
 
-  COMPARE(And(w12, w13, 0xffffffff), "mov w12, w13");
-  COMPARE(And(x12, x13, 0xffffffff), "and x12, x13, #0xffffffff");
-  COMPARE(And(x12, x13, 0xffffffffffffffff), "mov x12, x13");
-  COMPARE(Orr(w14, w15, 0xffffffff), "mov w14, #0xffffffff");
-  COMPARE(Orr(x14, x15, 0xffffffff), "orr x14, x15, #0xffffffff");
-  COMPARE(Orr(x14, x15, 0xffffffffffffffff), "mov x14, #0xffffffffffffffff");
-  COMPARE(Eor(w16, w17, 0xffffffff), "mvn w16, w17");
-  COMPARE(Eor(x16, x17, 0xffffffff), "eor x16, x17, #0xffffffff");
-  COMPARE(Eor(x16, x17, 0xffffffffffffffff), "mvn x16, x17");
-  COMPARE(Bic(w18, w19, 0xffffffff), "mov w18, #0x0");
-  COMPARE(Bic(x18, x19, 0xffffffff), "and x18, x19, #0xffffffff00000000");
-  COMPARE(Bic(x18, x19, 0xffffffffffffffff), "mov x18, #0x0");
-  COMPARE(Orn(w20, w21, 0xffffffff), "mov w20, w21");
-  COMPARE(Orn(x20, x21, 0xffffffff), "orr x20, x21, #0xffffffff00000000");
-  COMPARE(Orn(x20, x21, 0xffffffffffffffff), "mov x20, x21");
-  COMPARE(Eon(w22, w23, 0xffffffff), "mov w22, w23");
-  COMPARE(Eon(x22, x23, 0xffffffff), "eor x22, x23, #0xffffffff00000000");
-  COMPARE(Eon(x22, x23, 0xffffffffffffffff), "mov x22, x23");
+  COMPARE_MACRO(And(w12, w13, 0xffffffff), "mov w12, w13");
+  COMPARE_MACRO(And(x12, x13, 0xffffffff), "and x12, x13, #0xffffffff");
+  COMPARE_MACRO(And(x12, x13, 0xffffffffffffffff), "mov x12, x13");
+  COMPARE_MACRO(Orr(w14, w15, 0xffffffff), "mov w14, #0xffffffff");
+  COMPARE_MACRO(Orr(x14, x15, 0xffffffff), "orr x14, x15, #0xffffffff");
+  COMPARE_MACRO(Orr(x14, x15, 0xffffffffffffffff),
+                "mov x14, #0xffffffffffffffff");
+  COMPARE_MACRO(Eor(w16, w17, 0xffffffff), "mvn w16, w17");
+  COMPARE_MACRO(Eor(x16, x17, 0xffffffff), "eor x16, x17, #0xffffffff");
+  COMPARE_MACRO(Eor(x16, x17, 0xffffffffffffffff), "mvn x16, x17");
+  COMPARE_MACRO(Bic(w18, w19, 0xffffffff), "mov w18, #0x0");
+  COMPARE_MACRO(Bic(x18, x19, 0xffffffff), "and x18, x19, #0xffffffff00000000");
+  COMPARE_MACRO(Bic(x18, x19, 0xffffffffffffffff), "mov x18, #0x0");
+  COMPARE_MACRO(Orn(w20, w21, 0xffffffff), "mov w20, w21");
+  COMPARE_MACRO(Orn(x20, x21, 0xffffffff), "orr x20, x21, #0xffffffff00000000");
+  COMPARE_MACRO(Orn(x20, x21, 0xffffffffffffffff), "mov x20, x21");
+  COMPARE_MACRO(Eon(w22, w23, 0xffffffff), "mov w22, w23");
+  COMPARE_MACRO(Eon(x22, x23, 0xffffffff), "eor x22, x23, #0xffffffff00000000");
+  COMPARE_MACRO(Eon(x22, x23, 0xffffffffffffffff), "mov x22, x23");
 
   CLEANUP();
 }
 
 
 TEST(barriers) {
-  SETUP_MACRO();
+  SETUP();
 
   // DMB
-  COMPARE(Dmb(FullSystem, BarrierAll), "dmb sy");
-  COMPARE(Dmb(FullSystem, BarrierReads), "dmb ld");
-  COMPARE(Dmb(FullSystem, BarrierWrites), "dmb st");
+  COMPARE_MACRO(Dmb(FullSystem, BarrierAll), "dmb sy");
+  COMPARE_MACRO(Dmb(FullSystem, BarrierReads), "dmb ld");
+  COMPARE_MACRO(Dmb(FullSystem, BarrierWrites), "dmb st");
 
-  COMPARE(Dmb(InnerShareable, BarrierAll), "dmb ish");
-  COMPARE(Dmb(InnerShareable, BarrierReads), "dmb ishld");
-  COMPARE(Dmb(InnerShareable, BarrierWrites), "dmb ishst");
+  COMPARE_MACRO(Dmb(InnerShareable, BarrierAll), "dmb ish");
+  COMPARE_MACRO(Dmb(InnerShareable, BarrierReads), "dmb ishld");
+  COMPARE_MACRO(Dmb(InnerShareable, BarrierWrites), "dmb ishst");
 
-  COMPARE(Dmb(NonShareable, BarrierAll), "dmb nsh");
-  COMPARE(Dmb(NonShareable, BarrierReads), "dmb nshld");
-  COMPARE(Dmb(NonShareable, BarrierWrites), "dmb nshst");
+  COMPARE_MACRO(Dmb(NonShareable, BarrierAll), "dmb nsh");
+  COMPARE_MACRO(Dmb(NonShareable, BarrierReads), "dmb nshld");
+  COMPARE_MACRO(Dmb(NonShareable, BarrierWrites), "dmb nshst");
 
-  COMPARE(Dmb(OuterShareable, BarrierAll), "dmb osh");
-  COMPARE(Dmb(OuterShareable, BarrierReads), "dmb oshld");
-  COMPARE(Dmb(OuterShareable, BarrierWrites), "dmb oshst");
+  COMPARE_MACRO(Dmb(OuterShareable, BarrierAll), "dmb osh");
+  COMPARE_MACRO(Dmb(OuterShareable, BarrierReads), "dmb oshld");
+  COMPARE_MACRO(Dmb(OuterShareable, BarrierWrites), "dmb oshst");
 
-  COMPARE(Dmb(FullSystem, BarrierOther), "dmb sy (0b1100)");
-  COMPARE(Dmb(InnerShareable, BarrierOther), "dmb sy (0b1000)");
-  COMPARE(Dmb(NonShareable, BarrierOther), "dmb sy (0b0100)");
-  COMPARE(Dmb(OuterShareable, BarrierOther), "dmb sy (0b0000)");
+  COMPARE_MACRO(Dmb(FullSystem, BarrierOther), "dmb sy (0b1100)");
+  COMPARE_MACRO(Dmb(InnerShareable, BarrierOther), "dmb sy (0b1000)");
+  COMPARE_MACRO(Dmb(NonShareable, BarrierOther), "dmb sy (0b0100)");
+  COMPARE_MACRO(Dmb(OuterShareable, BarrierOther), "dmb sy (0b0000)");
 
   // DSB
-  COMPARE(Dsb(FullSystem, BarrierAll), "dsb sy");
-  COMPARE(Dsb(FullSystem, BarrierReads), "dsb ld");
-  COMPARE(Dsb(FullSystem, BarrierWrites), "dsb st");
+  COMPARE_MACRO(Dsb(FullSystem, BarrierAll), "dsb sy");
+  COMPARE_MACRO(Dsb(FullSystem, BarrierReads), "dsb ld");
+  COMPARE_MACRO(Dsb(FullSystem, BarrierWrites), "dsb st");
 
-  COMPARE(Dsb(InnerShareable, BarrierAll), "dsb ish");
-  COMPARE(Dsb(InnerShareable, BarrierReads), "dsb ishld");
-  COMPARE(Dsb(InnerShareable, BarrierWrites), "dsb ishst");
+  COMPARE_MACRO(Dsb(InnerShareable, BarrierAll), "dsb ish");
+  COMPARE_MACRO(Dsb(InnerShareable, BarrierReads), "dsb ishld");
+  COMPARE_MACRO(Dsb(InnerShareable, BarrierWrites), "dsb ishst");
 
-  COMPARE(Dsb(NonShareable, BarrierAll), "dsb nsh");
-  COMPARE(Dsb(NonShareable, BarrierReads), "dsb nshld");
-  COMPARE(Dsb(NonShareable, BarrierWrites), "dsb nshst");
+  COMPARE_MACRO(Dsb(NonShareable, BarrierAll), "dsb nsh");
+  COMPARE_MACRO(Dsb(NonShareable, BarrierReads), "dsb nshld");
+  COMPARE_MACRO(Dsb(NonShareable, BarrierWrites), "dsb nshst");
 
-  COMPARE(Dsb(OuterShareable, BarrierAll), "dsb osh");
-  COMPARE(Dsb(OuterShareable, BarrierReads), "dsb oshld");
-  COMPARE(Dsb(OuterShareable, BarrierWrites), "dsb oshst");
+  COMPARE_MACRO(Dsb(OuterShareable, BarrierAll), "dsb osh");
+  COMPARE_MACRO(Dsb(OuterShareable, BarrierReads), "dsb oshld");
+  COMPARE_MACRO(Dsb(OuterShareable, BarrierWrites), "dsb oshst");
 
-  COMPARE(Dsb(FullSystem, BarrierOther), "dsb sy (0b1100)");
-  COMPARE(Dsb(InnerShareable, BarrierOther), "dsb sy (0b1000)");
-  COMPARE(Dsb(NonShareable, BarrierOther), "dsb sy (0b0100)");
-  COMPARE(Dsb(OuterShareable, BarrierOther), "dsb sy (0b0000)");
+  COMPARE_MACRO(Dsb(FullSystem, BarrierOther), "dsb sy (0b1100)");
+  COMPARE_MACRO(Dsb(InnerShareable, BarrierOther), "dsb sy (0b1000)");
+  COMPARE_MACRO(Dsb(NonShareable, BarrierOther), "dsb sy (0b0100)");
+  COMPARE_MACRO(Dsb(OuterShareable, BarrierOther), "dsb sy (0b0000)");
 
   // ISB
-  COMPARE(Isb(), "isb");
+  COMPARE_MACRO(Isb(), "isb");
 
   CLEANUP();
 }
 
 
 #define VLIST2(v) \
-            v, VRegister((v.GetCode()+1)%32, v.GetSizeInBits(), v.GetLanes())
-#define VLIST3(v) VLIST2(v), \
-                  VRegister((v.GetCode()+2)%32, v.GetSizeInBits(), v.GetLanes())
-#define VLIST4(v) VLIST3(v), \
-                  VRegister((v.GetCode()+3)%32, v.GetSizeInBits(), v.GetLanes())
+  v, VRegister((v.GetCode() + 1) % 32, v.GetSizeInBits(), v.GetLanes())
+#define VLIST3(v) \
+  VLIST2(v), VRegister((v.GetCode() + 2) % 32, v.GetSizeInBits(), v.GetLanes())
+#define VLIST4(v) \
+  VLIST3(v), VRegister((v.GetCode() + 3) % 32, v.GetSizeInBits(), v.GetLanes())
 
 
-#define NEON_FORMAT_LIST(V)       \
-  V(V8B(), "8b")                  \
-  V(V16B(), "16b")                \
-  V(V4H(), "4h")                  \
-  V(V8H(), "8h")                  \
-  V(V2S(), "2s")                  \
-  V(V4S(), "4s")                  \
+#define NEON_FORMAT_LIST(V) \
+  V(V8B(), "8b")            \
+  V(V16B(), "16b")          \
+  V(V4H(), "4h")            \
+  V(V8H(), "8h")            \
+  V(V2S(), "2s")            \
+  V(V4S(), "4s")            \
   V(V2D(), "2d")
 
-#define NEON_FORMAT_LIST_LP(V)    \
-  V(V4H(), "4h", V8B(), "8b")     \
-  V(V2S(), "2s", V4H(), "4h")     \
-  V(V1D(), "1d", V2S(), "2s")     \
-  V(V8H(), "8h", V16B(), "16b")   \
-  V(V4S(), "4s", V8H(), "8h")     \
+#define NEON_FORMAT_LIST_LP(V)  \
+  V(V4H(), "4h", V8B(), "8b")   \
+  V(V2S(), "2s", V4H(), "4h")   \
+  V(V1D(), "1d", V2S(), "2s")   \
+  V(V8H(), "8h", V16B(), "16b") \
+  V(V4S(), "4s", V8H(), "8h")   \
   V(V2D(), "2d", V4S(), "4s")
 
-#define NEON_FORMAT_LIST_LW(V)    \
-  V(V8H(), "8h", V8B(), "8b")     \
-  V(V4S(), "4s", V4H(), "4h")     \
+#define NEON_FORMAT_LIST_LW(V) \
+  V(V8H(), "8h", V8B(), "8b")  \
+  V(V4S(), "4s", V4H(), "4h")  \
   V(V2D(), "2d", V2S(), "2s")
 
-#define NEON_FORMAT_LIST_LW2(V)   \
-  V(V8H(), "8h", V16B(), "16b")   \
-  V(V4S(), "4s", V8H(), "8h")     \
+#define NEON_FORMAT_LIST_LW2(V) \
+  V(V8H(), "8h", V16B(), "16b") \
+  V(V4S(), "4s", V8H(), "8h")   \
   V(V2D(), "2d", V4S(), "4s")
 
-#define NEON_FORMAT_LIST_BHS(V)   \
-  V(V8B(), "8b")                  \
-  V(V16B(), "16b")                \
-  V(V4H(), "4h")                  \
-  V(V8H(), "8h")                  \
-  V(V2S(), "2s")                  \
+#define NEON_FORMAT_LIST_BHS(V) \
+  V(V8B(), "8b")                \
+  V(V16B(), "16b")              \
+  V(V4H(), "4h")                \
+  V(V8H(), "8h")                \
+  V(V2S(), "2s")                \
   V(V4S(), "4s")
 
-#define NEON_FORMAT_LIST_HS(V)    \
-  V(V4H(), "4h")                  \
-  V(V8H(), "8h")                  \
-  V(V2S(), "2s")                  \
+#define NEON_FORMAT_LIST_HS(V) \
+  V(V4H(), "4h")               \
+  V(V8H(), "8h")               \
+  V(V2S(), "2s")               \
   V(V4S(), "4s")
 
 TEST(neon_load_store_vector) {
-  SETUP_MACRO();
+  SETUP();
 
-  #define DISASM_INST(M, S)                                       \
-  COMPARE(Ld1(v0.M, MemOperand(x15)),                             \
-      "ld1 {v0." S "}, [x15]");                                   \
-  COMPARE(Ld1(v1.M, v2.M, MemOperand(x16)),                       \
-      "ld1 {v1." S ", v2." S "}, [x16]");                         \
-  COMPARE(Ld1(v3.M, v4.M, v5.M, MemOperand(x17)),                 \
-      "ld1 {v3." S ", v4." S ", v5." S "}, [x17]");               \
-  COMPARE(Ld1(v6.M, v7.M, v8.M, v9.M, MemOperand(x18)),           \
-      "ld1 {v6." S ", v7." S ", v8." S ", v9." S "}, [x18]")      \
-  COMPARE(Ld1(v30.M, v31.M, v0.M, v1.M, MemOperand(sp)),          \
-      "ld1 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp]")     \
-  COMPARE(Ld2(v1.M, v2.M, MemOperand(x16)),                       \
-      "ld2 {v1." S ", v2." S "}, [x16]");                         \
-  COMPARE(Ld3(v3.M, v4.M, v5.M, MemOperand(x17)),                 \
-      "ld3 {v3." S ", v4." S ", v5." S "}, [x17]");               \
-  COMPARE(Ld4(v6.M, v7.M, v8.M, v9.M, MemOperand(x18)),           \
-      "ld4 {v6." S ", v7." S ", v8." S ", v9." S "}, [x18]")      \
-  COMPARE(Ld4(v30.M, v31.M, v0.M, v1.M, MemOperand(sp)),          \
-      "ld4 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp]")     \
+#define DISASM_INST(M, S)                                               \
+  COMPARE_MACRO(Ld1(v0.M, MemOperand(x15)), "ld1 {v0." S "}, [x15]");   \
+  COMPARE_MACRO(Ld1(v1.M, v2.M, MemOperand(x16)),                       \
+                "ld1 {v1." S ", v2." S "}, [x16]");                     \
+  COMPARE_MACRO(Ld1(v3.M, v4.M, v5.M, MemOperand(x17)),                 \
+                "ld1 {v3." S ", v4." S ", v5." S "}, [x17]");           \
+  COMPARE_MACRO(Ld1(v6.M, v7.M, v8.M, v9.M, MemOperand(x18)),           \
+                "ld1 {v6." S ", v7." S ", v8." S ", v9." S "}, [x18]")  \
+  COMPARE_MACRO(Ld1(v30.M, v31.M, v0.M, v1.M, MemOperand(sp)),          \
+                "ld1 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp]") \
+  COMPARE_MACRO(Ld2(v1.M, v2.M, MemOperand(x16)),                       \
+                "ld2 {v1." S ", v2." S "}, [x16]");                     \
+  COMPARE_MACRO(Ld3(v3.M, v4.M, v5.M, MemOperand(x17)),                 \
+                "ld3 {v3." S ", v4." S ", v5." S "}, [x17]");           \
+  COMPARE_MACRO(Ld4(v6.M, v7.M, v8.M, v9.M, MemOperand(x18)),           \
+                "ld4 {v6." S ", v7." S ", v8." S ", v9." S "}, [x18]")  \
+  COMPARE_MACRO(Ld4(v30.M, v31.M, v0.M, v1.M, MemOperand(sp)),          \
+                "ld4 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp]") \
   NEON_FORMAT_LIST(DISASM_INST);
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)                                               \
-  COMPARE(Ld1(v0.M, MemOperand(x15, x20, PostIndex)),                     \
-      "ld1 {v0." S "}, [x15], x20");                                      \
-  COMPARE(Ld1(v1.M, v2.M, MemOperand(x16, x21, PostIndex)),               \
-      "ld1 {v1." S ", v2." S "}, [x16], x21");                            \
-  COMPARE(Ld1(v3.M, v4.M, v5.M, MemOperand(x17, x22, PostIndex)),         \
-      "ld1 {v3." S ", v4." S ", v5." S "}, [x17], x22");                  \
-  COMPARE(Ld1(v6.M, v7.M, v8.M, v9.M, MemOperand(x18, x23, PostIndex)),   \
-      "ld1 {v6." S ", v7." S ", v8." S ", v9." S "}, [x18], x23")         \
-  COMPARE(Ld1(v30.M, v31.M, v0.M, v1.M, MemOperand(sp, x24, PostIndex)),  \
-      "ld1 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp], x24")        \
-  COMPARE(Ld2(v1.M, v2.M, MemOperand(x16, x21, PostIndex)),               \
-      "ld2 {v1." S ", v2." S "}, [x16], x21");                            \
-  COMPARE(Ld3(v3.M, v4.M, v5.M, MemOperand(x17, x22, PostIndex)),         \
-      "ld3 {v3." S ", v4." S ", v5." S "}, [x17], x22");                  \
-  COMPARE(Ld4(v6.M, v7.M, v8.M, v9.M, MemOperand(x18, x23, PostIndex)),   \
-      "ld4 {v6." S ", v7." S ", v8." S ", v9." S "}, [x18], x23")         \
-  COMPARE(Ld4(v30.M, v31.M, v0.M, v1.M, MemOperand(sp, x24, PostIndex)),  \
-      "ld4 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp], x24")        \
+#define DISASM_INST(M, S)                                                      \
+  COMPARE_MACRO(Ld1(v0.M, MemOperand(x15, x20, PostIndex)),                    \
+                "ld1 {v0." S "}, [x15], x20");                                 \
+  COMPARE_MACRO(Ld1(v1.M, v2.M, MemOperand(x16, x21, PostIndex)),              \
+                "ld1 {v1." S ", v2." S "}, [x16], x21");                       \
+  COMPARE_MACRO(Ld1(v3.M, v4.M, v5.M, MemOperand(x17, x22, PostIndex)),        \
+                "ld1 {v3." S ", v4." S ", v5." S "}, [x17], x22");             \
+  COMPARE_MACRO(Ld1(v6.M, v7.M, v8.M, v9.M, MemOperand(x18, x23, PostIndex)),  \
+                "ld1 {v6." S ", v7." S ", v8." S ", v9." S "}, [x18], x23")    \
+  COMPARE_MACRO(Ld1(v30.M, v31.M, v0.M, v1.M, MemOperand(sp, x24, PostIndex)), \
+                "ld1 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp], x24")   \
+  COMPARE_MACRO(Ld2(v1.M, v2.M, MemOperand(x16, x21, PostIndex)),              \
+                "ld2 {v1." S ", v2." S "}, [x16], x21");                       \
+  COMPARE_MACRO(Ld3(v3.M, v4.M, v5.M, MemOperand(x17, x22, PostIndex)),        \
+                "ld3 {v3." S ", v4." S ", v5." S "}, [x17], x22");             \
+  COMPARE_MACRO(Ld4(v6.M, v7.M, v8.M, v9.M, MemOperand(x18, x23, PostIndex)),  \
+                "ld4 {v6." S ", v7." S ", v8." S ", v9." S "}, [x18], x23")    \
+  COMPARE_MACRO(Ld4(v30.M, v31.M, v0.M, v1.M, MemOperand(sp, x24, PostIndex)), \
+                "ld4 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp], x24")   \
   NEON_FORMAT_LIST(DISASM_INST);
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Ld1(v0.V8B(), MemOperand(x15, 8, PostIndex)),
-      "ld1 {v0.8b}, [x15], #8");
-  COMPARE(Ld1(v1.V16B(), MemOperand(x16, 16, PostIndex)),
-      "ld1 {v1.16b}, [x16], #16");
-  COMPARE(Ld1(v2.V4H(), v3.V4H(), MemOperand(x17, 16, PostIndex)),
-      "ld1 {v2.4h, v3.4h}, [x17], #16");
-  COMPARE(Ld1(v4.V8H(), v5.V8H(), MemOperand(x18, 32, PostIndex)),
-      "ld1 {v4.8h, v5.8h}, [x18], #32");
-  COMPARE(Ld1(v16.V2S(), v17.V2S(), v18.V2S(), MemOperand(x19, 24, PostIndex)),
-      "ld1 {v16.2s, v17.2s, v18.2s}, [x19], #24");
-  COMPARE(Ld1(v16.V4S(), v17.V4S(), v18.V4S(), MemOperand(x19, 48, PostIndex)),
-      "ld1 {v16.4s, v17.4s, v18.4s}, [x19], #48");
-  COMPARE(Ld1(v19.V2S(), v20.V2S(), v21.V2S(), v22.V2S(),
-              MemOperand(x20, 32, PostIndex)),
-          "ld1 {v19.2s, v20.2s, v21.2s, v22.2s}, [x20], #32");
-  COMPARE(Ld1(v23.V2D(), v24.V2D(), v25.V2D(), v26.V2D(),
-              MemOperand(x21, 64, PostIndex)),
-          "ld1 {v23.2d, v24.2d, v25.2d, v26.2d}, [x21], #64");
+  COMPARE_MACRO(Ld1(v0.V8B(), MemOperand(x15, 8, PostIndex)),
+                "ld1 {v0.8b}, [x15], #8");
+  COMPARE_MACRO(Ld1(v1.V16B(), MemOperand(x16, 16, PostIndex)),
+                "ld1 {v1.16b}, [x16], #16");
+  COMPARE_MACRO(Ld1(v2.V4H(), v3.V4H(), MemOperand(x17, 16, PostIndex)),
+                "ld1 {v2.4h, v3.4h}, [x17], #16");
+  COMPARE_MACRO(Ld1(v4.V8H(), v5.V8H(), MemOperand(x18, 32, PostIndex)),
+                "ld1 {v4.8h, v5.8h}, [x18], #32");
+  COMPARE_MACRO(Ld1(v16.V2S(),
+                    v17.V2S(),
+                    v18.V2S(),
+                    MemOperand(x19, 24, PostIndex)),
+                "ld1 {v16.2s, v17.2s, v18.2s}, [x19], #24");
+  COMPARE_MACRO(Ld1(v16.V4S(),
+                    v17.V4S(),
+                    v18.V4S(),
+                    MemOperand(x19, 48, PostIndex)),
+                "ld1 {v16.4s, v17.4s, v18.4s}, [x19], #48");
+  COMPARE_MACRO(Ld1(v19.V2S(),
+                    v20.V2S(),
+                    v21.V2S(),
+                    v22.V2S(),
+                    MemOperand(x20, 32, PostIndex)),
+                "ld1 {v19.2s, v20.2s, v21.2s, v22.2s}, [x20], #32");
+  COMPARE_MACRO(Ld1(v23.V2D(),
+                    v24.V2D(),
+                    v25.V2D(),
+                    v26.V2D(),
+                    MemOperand(x21, 64, PostIndex)),
+                "ld1 {v23.2d, v24.2d, v25.2d, v26.2d}, [x21], #64");
 
-  COMPARE(Ld2(v2.V4H(), v3.V4H(), MemOperand(x17, 16, PostIndex)),
-      "ld2 {v2.4h, v3.4h}, [x17], #16");
-  COMPARE(Ld2(v4.V8H(), v5.V8H(), MemOperand(x18, 32, PostIndex)),
-      "ld2 {v4.8h, v5.8h}, [x18], #32");
-  COMPARE(Ld3(v16.V2S(), v17.V2S(), v18.V2S(), MemOperand(x19, 24, PostIndex)),
-      "ld3 {v16.2s, v17.2s, v18.2s}, [x19], #24");
-  COMPARE(Ld3(v16.V4S(), v17.V4S(), v18.V4S(), MemOperand(x19, 48, PostIndex)),
-      "ld3 {v16.4s, v17.4s, v18.4s}, [x19], #48");
-  COMPARE(Ld4(v19.V2S(), v20.V2S(), v21.V2S(), v22.V2S(),
-              MemOperand(x20, 32, PostIndex)),
-          "ld4 {v19.2s, v20.2s, v21.2s, v22.2s}, [x20], #32");
-  COMPARE(Ld4(v23.V2D(), v24.V2D(), v25.V2D(), v26.V2D(),
-              MemOperand(x21, 64, PostIndex)),
-          "ld4 {v23.2d, v24.2d, v25.2d, v26.2d}, [x21], #64");
+  COMPARE_MACRO(Ld2(v2.V4H(), v3.V4H(), MemOperand(x17, 16, PostIndex)),
+                "ld2 {v2.4h, v3.4h}, [x17], #16");
+  COMPARE_MACRO(Ld2(v4.V8H(), v5.V8H(), MemOperand(x18, 32, PostIndex)),
+                "ld2 {v4.8h, v5.8h}, [x18], #32");
+  COMPARE_MACRO(Ld3(v16.V2S(),
+                    v17.V2S(),
+                    v18.V2S(),
+                    MemOperand(x19, 24, PostIndex)),
+                "ld3 {v16.2s, v17.2s, v18.2s}, [x19], #24");
+  COMPARE_MACRO(Ld3(v16.V4S(),
+                    v17.V4S(),
+                    v18.V4S(),
+                    MemOperand(x19, 48, PostIndex)),
+                "ld3 {v16.4s, v17.4s, v18.4s}, [x19], #48");
+  COMPARE_MACRO(Ld4(v19.V2S(),
+                    v20.V2S(),
+                    v21.V2S(),
+                    v22.V2S(),
+                    MemOperand(x20, 32, PostIndex)),
+                "ld4 {v19.2s, v20.2s, v21.2s, v22.2s}, [x20], #32");
+  COMPARE_MACRO(Ld4(v23.V2D(),
+                    v24.V2D(),
+                    v25.V2D(),
+                    v26.V2D(),
+                    MemOperand(x21, 64, PostIndex)),
+                "ld4 {v23.2d, v24.2d, v25.2d, v26.2d}, [x21], #64");
 
-  COMPARE(Ld1(v0.V1D(), MemOperand(x16)), "ld1 {v0.1d}, [x16]");
-  COMPARE(Ld1(v1.V1D(), v2.V1D(), MemOperand(x17, 16, PostIndex)),
-          "ld1 {v1.1d, v2.1d}, [x17], #16");
-  COMPARE(Ld1(v3.V1D(), v4.V1D(), v5.V1D(), MemOperand(x18, x19, PostIndex)),
-          "ld1 {v3.1d, v4.1d, v5.1d}, [x18], x19");
-  COMPARE(Ld1(v30.V1D(), v31.V1D(), v0.V1D(), v1.V1D(),
-              MemOperand(x20, 32, PostIndex)),
-          "ld1 {v30.1d, v31.1d, v0.1d, v1.1d}, [x20], #32");
-  COMPARE(Ld1(d30, d31, d0, d1, MemOperand(x21, x22, PostIndex)),
-          "ld1 {v30.1d, v31.1d, v0.1d, v1.1d}, [x21], x22");
+  COMPARE_MACRO(Ld1(v0.V1D(), MemOperand(x16)), "ld1 {v0.1d}, [x16]");
+  COMPARE_MACRO(Ld1(v1.V1D(), v2.V1D(), MemOperand(x17, 16, PostIndex)),
+                "ld1 {v1.1d, v2.1d}, [x17], #16");
+  COMPARE_MACRO(Ld1(v3.V1D(),
+                    v4.V1D(),
+                    v5.V1D(),
+                    MemOperand(x18, x19, PostIndex)),
+                "ld1 {v3.1d, v4.1d, v5.1d}, [x18], x19");
+  COMPARE_MACRO(Ld1(v30.V1D(),
+                    v31.V1D(),
+                    v0.V1D(),
+                    v1.V1D(),
+                    MemOperand(x20, 32, PostIndex)),
+                "ld1 {v30.1d, v31.1d, v0.1d, v1.1d}, [x20], #32");
+  COMPARE_MACRO(Ld1(d30, d31, d0, d1, MemOperand(x21, x22, PostIndex)),
+                "ld1 {v30.1d, v31.1d, v0.1d, v1.1d}, [x21], x22");
 
-  #define DISASM_INST(M, S)                                       \
-  COMPARE(St1(v20.M, MemOperand(x15)),                            \
-      "st1 {v20." S "}, [x15]");                                  \
-  COMPARE(St1(v21.M, v22.M, MemOperand(x16)),                     \
-      "st1 {v21." S ", v22." S "}, [x16]");                       \
-  COMPARE(St1(v23.M, v24.M, v25.M, MemOperand(x17)),              \
-      "st1 {v23." S ", v24." S ", v25." S "}, [x17]");            \
-  COMPARE(St1(v26.M, v27.M, v28.M, v29.M, MemOperand(x18)),       \
-      "st1 {v26." S ", v27." S ", v28." S ", v29." S "}, [x18]")  \
-  COMPARE(St1(v30.M, v31.M, v0.M, v1.M, MemOperand(sp)),          \
-      "st1 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp]")     \
-  COMPARE(St2(VLIST2(v21.M), MemOperand(x16)),                     \
-      "st2 {v21." S ", v22." S "}, [x16]");                       \
-  COMPARE(St3(v23.M, v24.M, v25.M, MemOperand(x17)),              \
-      "st3 {v23." S ", v24." S ", v25." S "}, [x17]");            \
-  COMPARE(St4(v30.M, v31.M, v0.M, v1.M, MemOperand(sp)),          \
-      "st4 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp]")
+#define DISASM_INST(M, S)                                                  \
+  COMPARE_MACRO(St1(v20.M, MemOperand(x15)), "st1 {v20." S "}, [x15]");    \
+  COMPARE_MACRO(St1(v21.M, v22.M, MemOperand(x16)),                        \
+                "st1 {v21." S ", v22." S "}, [x16]");                      \
+  COMPARE_MACRO(St1(v23.M, v24.M, v25.M, MemOperand(x17)),                 \
+                "st1 {v23." S ", v24." S ", v25." S "}, [x17]");           \
+  COMPARE_MACRO(St1(v26.M, v27.M, v28.M, v29.M, MemOperand(x18)),          \
+                "st1 {v26." S ", v27." S ", v28." S ", v29." S "}, [x18]") \
+  COMPARE_MACRO(St1(v30.M, v31.M, v0.M, v1.M, MemOperand(sp)),             \
+                "st1 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp]")    \
+  COMPARE_MACRO(St2(VLIST2(v21.M), MemOperand(x16)),                       \
+                "st2 {v21." S ", v22." S "}, [x16]");                      \
+  COMPARE_MACRO(St3(v23.M, v24.M, v25.M, MemOperand(x17)),                 \
+                "st3 {v23." S ", v24." S ", v25." S "}, [x17]");           \
+  COMPARE_MACRO(St4(v30.M, v31.M, v0.M, v1.M, MemOperand(sp)),             \
+                "st4 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp]")
   NEON_FORMAT_LIST(DISASM_INST);
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)                                               \
-  COMPARE(St1(v0.M, MemOperand(x15, x20, PostIndex)),                     \
-      "st1 {v0." S "}, [x15], x20");                                      \
-  COMPARE(St1(v1.M, v2.M, MemOperand(x16, x21, PostIndex)),               \
-      "st1 {v1." S ", v2." S "}, [x16], x21");                            \
-  COMPARE(St1(v3.M, v4.M, v5.M, MemOperand(x17, x22, PostIndex)),         \
-      "st1 {v3." S ", v4." S ", v5." S "}, [x17], x22");                  \
-  COMPARE(St1(v6.M, v7.M, v8.M, v9.M, MemOperand(x18, x23, PostIndex)),   \
-      "st1 {v6." S ", v7." S ", v8." S ", v9." S "}, [x18], x23")         \
-  COMPARE(St1(v30.M, v31.M, v0.M, v1.M, MemOperand(sp, x24, PostIndex)),  \
-      "st1 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp], x24")        \
-  COMPARE(St2(v1.M, v2.M, MemOperand(x16, x21, PostIndex)),               \
-      "st2 {v1." S ", v2." S "}, [x16], x21");                            \
-  COMPARE(St3(v3.M, v4.M, v5.M, MemOperand(x17, x22, PostIndex)),         \
-      "st3 {v3." S ", v4." S ", v5." S "}, [x17], x22");                  \
-  COMPARE(St4(v6.M, v7.M, v8.M, v9.M, MemOperand(x18, x23, PostIndex)),   \
-      "st4 {v6." S ", v7." S ", v8." S ", v9." S "}, [x18], x23")         \
-  COMPARE(St4(v30.M, v31.M, v0.M, v1.M, MemOperand(sp, x24, PostIndex)),  \
-      "st4 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp], x24")
+#define DISASM_INST(M, S)                                                      \
+  COMPARE_MACRO(St1(v0.M, MemOperand(x15, x20, PostIndex)),                    \
+                "st1 {v0." S "}, [x15], x20");                                 \
+  COMPARE_MACRO(St1(v1.M, v2.M, MemOperand(x16, x21, PostIndex)),              \
+                "st1 {v1." S ", v2." S "}, [x16], x21");                       \
+  COMPARE_MACRO(St1(v3.M, v4.M, v5.M, MemOperand(x17, x22, PostIndex)),        \
+                "st1 {v3." S ", v4." S ", v5." S "}, [x17], x22");             \
+  COMPARE_MACRO(St1(v6.M, v7.M, v8.M, v9.M, MemOperand(x18, x23, PostIndex)),  \
+                "st1 {v6." S ", v7." S ", v8." S ", v9." S "}, [x18], x23")    \
+  COMPARE_MACRO(St1(v30.M, v31.M, v0.M, v1.M, MemOperand(sp, x24, PostIndex)), \
+                "st1 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp], x24")   \
+  COMPARE_MACRO(St2(v1.M, v2.M, MemOperand(x16, x21, PostIndex)),              \
+                "st2 {v1." S ", v2." S "}, [x16], x21");                       \
+  COMPARE_MACRO(St3(v3.M, v4.M, v5.M, MemOperand(x17, x22, PostIndex)),        \
+                "st3 {v3." S ", v4." S ", v5." S "}, [x17], x22");             \
+  COMPARE_MACRO(St4(v6.M, v7.M, v8.M, v9.M, MemOperand(x18, x23, PostIndex)),  \
+                "st4 {v6." S ", v7." S ", v8." S ", v9." S "}, [x18], x23")    \
+  COMPARE_MACRO(St4(v30.M, v31.M, v0.M, v1.M, MemOperand(sp, x24, PostIndex)), \
+                "st4 {v30." S ", v31." S ", v0." S ", v1." S "}, [sp], x24")
   NEON_FORMAT_LIST(DISASM_INST);
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(St1(v0.V8B(), MemOperand(x15, 8, PostIndex)),
-      "st1 {v0.8b}, [x15], #8");
-  COMPARE(St1(v1.V16B(), MemOperand(x16, 16, PostIndex)),
-      "st1 {v1.16b}, [x16], #16");
-  COMPARE(St1(v2.V4H(), v3.V4H(), MemOperand(x17, 16, PostIndex)),
-      "st1 {v2.4h, v3.4h}, [x17], #16");
-  COMPARE(St1(v4.V8H(), v5.V8H(), MemOperand(x18, 32, PostIndex)),
-      "st1 {v4.8h, v5.8h}, [x18], #32");
-  COMPARE(St1(v16.V2S(), v17.V2S(), v18.V2S(), MemOperand(x19, 24, PostIndex)),
-      "st1 {v16.2s, v17.2s, v18.2s}, [x19], #24");
-  COMPARE(St1(v16.V4S(), v17.V4S(), v18.V4S(), MemOperand(x19, 48, PostIndex)),
-      "st1 {v16.4s, v17.4s, v18.4s}, [x19], #48");
-  COMPARE(St1(v19.V2S(), v20.V2S(), v21.V2S(), v22.V2S(),
-              MemOperand(x20, 32, PostIndex)),
-          "st1 {v19.2s, v20.2s, v21.2s, v22.2s}, [x20], #32");
-  COMPARE(St1(v23.V2D(), v24.V2D(), v25.V2D(), v26.V2D(),
-              MemOperand(x21, 64, PostIndex)),
-          "st1 {v23.2d, v24.2d, v25.2d, v26.2d}, [x21], #64");
-  COMPARE(St2(v1.V16B(), v2.V16B(), MemOperand(x16, 32, PostIndex)),
-          "st2 {v1.16b, v2.16b}, [x16], #32");
-  COMPARE(St2(v2.V4H(), v3.V4H(), MemOperand(x17, 16, PostIndex)),
-          "st2 {v2.4h, v3.4h}, [x17], #16");
-  COMPARE(St2(v4.V8H(), v5.V8H(), MemOperand(x18, 32, PostIndex)),
-          "st2 {v4.8h, v5.8h}, [x18], #32");
-  COMPARE(St3(v16.V2S(), v17.V2S(), v18.V2S(),
-              MemOperand(x19, 24, PostIndex)),
-          "st3 {v16.2s, v17.2s, v18.2s}, [x19], #24");
-  COMPARE(St3(v16.V4S(), v17.V4S(), v18.V4S(),
-              MemOperand(x19, 48, PostIndex)),
-          "st3 {v16.4s, v17.4s, v18.4s}, [x19], #48");
-  COMPARE(St4(v19.V2S(), v20.V2S(), v21.V2S(), v22.V2S(),
-              MemOperand(x20, 32, PostIndex)),
-          "st4 {v19.2s, v20.2s, v21.2s, v22.2s}, [x20], #32");
-  COMPARE(St4(v23.V2D(), v24.V2D(), v25.V2D(), v26.V2D(),
-              MemOperand(x21, 64, PostIndex)),
-          "st4 {v23.2d, v24.2d, v25.2d, v26.2d}, [x21], #64");
+  COMPARE_MACRO(St1(v0.V8B(), MemOperand(x15, 8, PostIndex)),
+                "st1 {v0.8b}, [x15], #8");
+  COMPARE_MACRO(St1(v1.V16B(), MemOperand(x16, 16, PostIndex)),
+                "st1 {v1.16b}, [x16], #16");
+  COMPARE_MACRO(St1(v2.V4H(), v3.V4H(), MemOperand(x17, 16, PostIndex)),
+                "st1 {v2.4h, v3.4h}, [x17], #16");
+  COMPARE_MACRO(St1(v4.V8H(), v5.V8H(), MemOperand(x18, 32, PostIndex)),
+                "st1 {v4.8h, v5.8h}, [x18], #32");
+  COMPARE_MACRO(St1(v16.V2S(),
+                    v17.V2S(),
+                    v18.V2S(),
+                    MemOperand(x19, 24, PostIndex)),
+                "st1 {v16.2s, v17.2s, v18.2s}, [x19], #24");
+  COMPARE_MACRO(St1(v16.V4S(),
+                    v17.V4S(),
+                    v18.V4S(),
+                    MemOperand(x19, 48, PostIndex)),
+                "st1 {v16.4s, v17.4s, v18.4s}, [x19], #48");
+  COMPARE_MACRO(St1(v19.V2S(),
+                    v20.V2S(),
+                    v21.V2S(),
+                    v22.V2S(),
+                    MemOperand(x20, 32, PostIndex)),
+                "st1 {v19.2s, v20.2s, v21.2s, v22.2s}, [x20], #32");
+  COMPARE_MACRO(St1(v23.V2D(),
+                    v24.V2D(),
+                    v25.V2D(),
+                    v26.V2D(),
+                    MemOperand(x21, 64, PostIndex)),
+                "st1 {v23.2d, v24.2d, v25.2d, v26.2d}, [x21], #64");
+  COMPARE_MACRO(St2(v1.V16B(), v2.V16B(), MemOperand(x16, 32, PostIndex)),
+                "st2 {v1.16b, v2.16b}, [x16], #32");
+  COMPARE_MACRO(St2(v2.V4H(), v3.V4H(), MemOperand(x17, 16, PostIndex)),
+                "st2 {v2.4h, v3.4h}, [x17], #16");
+  COMPARE_MACRO(St2(v4.V8H(), v5.V8H(), MemOperand(x18, 32, PostIndex)),
+                "st2 {v4.8h, v5.8h}, [x18], #32");
+  COMPARE_MACRO(St3(v16.V2S(),
+                    v17.V2S(),
+                    v18.V2S(),
+                    MemOperand(x19, 24, PostIndex)),
+                "st3 {v16.2s, v17.2s, v18.2s}, [x19], #24");
+  COMPARE_MACRO(St3(v16.V4S(),
+                    v17.V4S(),
+                    v18.V4S(),
+                    MemOperand(x19, 48, PostIndex)),
+                "st3 {v16.4s, v17.4s, v18.4s}, [x19], #48");
+  COMPARE_MACRO(St4(v19.V2S(),
+                    v20.V2S(),
+                    v21.V2S(),
+                    v22.V2S(),
+                    MemOperand(x20, 32, PostIndex)),
+                "st4 {v19.2s, v20.2s, v21.2s, v22.2s}, [x20], #32");
+  COMPARE_MACRO(St4(v23.V2D(),
+                    v24.V2D(),
+                    v25.V2D(),
+                    v26.V2D(),
+                    MemOperand(x21, 64, PostIndex)),
+                "st4 {v23.2d, v24.2d, v25.2d, v26.2d}, [x21], #64");
 
-  COMPARE(St1(v0.V1D(), MemOperand(x16)), "st1 {v0.1d}, [x16]");
-  COMPARE(St1(v1.V1D(), v2.V1D(), MemOperand(x17, 16, PostIndex)),
-          "st1 {v1.1d, v2.1d}, [x17], #16");
-  COMPARE(St1(v3.V1D(), v4.V1D(), v5.V1D(), MemOperand(x18, x19, PostIndex)),
-          "st1 {v3.1d, v4.1d, v5.1d}, [x18], x19");
-  COMPARE(St1(v30.V1D(), v31.V1D(), v0.V1D(), v1.V1D(),
-              MemOperand(x20, 32, PostIndex)),
-          "st1 {v30.1d, v31.1d, v0.1d, v1.1d}, [x20], #32");
-  COMPARE(St1(d30, d31, d0, d1, MemOperand(x21, x22, PostIndex)),
-          "st1 {v30.1d, v31.1d, v0.1d, v1.1d}, [x21], x22");
+  COMPARE_MACRO(St1(v0.V1D(), MemOperand(x16)), "st1 {v0.1d}, [x16]");
+  COMPARE_MACRO(St1(v1.V1D(), v2.V1D(), MemOperand(x17, 16, PostIndex)),
+                "st1 {v1.1d, v2.1d}, [x17], #16");
+  COMPARE_MACRO(St1(v3.V1D(),
+                    v4.V1D(),
+                    v5.V1D(),
+                    MemOperand(x18, x19, PostIndex)),
+                "st1 {v3.1d, v4.1d, v5.1d}, [x18], x19");
+  COMPARE_MACRO(St1(v30.V1D(),
+                    v31.V1D(),
+                    v0.V1D(),
+                    v1.V1D(),
+                    MemOperand(x20, 32, PostIndex)),
+                "st1 {v30.1d, v31.1d, v0.1d, v1.1d}, [x20], #32");
+  COMPARE_MACRO(St1(d30, d31, d0, d1, MemOperand(x21, x22, PostIndex)),
+                "st1 {v30.1d, v31.1d, v0.1d, v1.1d}, [x21], x22");
 
   CLEANUP();
 }
@@ -3331,416 +3416,515 @@
 
 
 TEST(neon_load_store_lane) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Ld1(v0.V8B(), 0, MemOperand(x15)), "ld1 {v0.b}[0], [x15]");
-  COMPARE(Ld1(v1.V16B(), 1, MemOperand(x16)), "ld1 {v1.b}[1], [x16]");
-  COMPARE(Ld1(v2.V4H(), 2, MemOperand(x17)), "ld1 {v2.h}[2], [x17]");
-  COMPARE(Ld1(v3.V8H(), 3, MemOperand(x18)), "ld1 {v3.h}[3], [x18]");
-  COMPARE(Ld1(v4.V2S(), 0, MemOperand(x19)), "ld1 {v4.s}[0], [x19]");
-  COMPARE(Ld1(v5.V4S(), 1, MemOperand(x20)), "ld1 {v5.s}[1], [x20]");
-  COMPARE(Ld1(v6.V2D(), 0, MemOperand(x21)), "ld1 {v6.d}[0], [x21]");
-  COMPARE(Ld1(v7.B(), 7, MemOperand(x22)), "ld1 {v7.b}[7], [x22]");
-  COMPARE(Ld1(v8.B(), 15, MemOperand(x23)), "ld1 {v8.b}[15], [x23]");
-  COMPARE(Ld1(v9.H(), 3, MemOperand(x24)), "ld1 {v9.h}[3], [x24]");
-  COMPARE(Ld1(v10.H(), 7, MemOperand(x25)), "ld1 {v10.h}[7], [x25]");
-  COMPARE(Ld1(v11.S(), 1, MemOperand(x26)), "ld1 {v11.s}[1], [x26]");
-  COMPARE(Ld1(v12.S(), 3, MemOperand(x27)), "ld1 {v12.s}[3], [x27]");
-  COMPARE(Ld1(v13.D(), 1, MemOperand(sp)), "ld1 {v13.d}[1], [sp]");
+  COMPARE_MACRO(Ld1(v0.V8B(), 0, MemOperand(x15)), "ld1 {v0.b}[0], [x15]");
+  COMPARE_MACRO(Ld1(v1.V16B(), 1, MemOperand(x16)), "ld1 {v1.b}[1], [x16]");
+  COMPARE_MACRO(Ld1(v2.V4H(), 2, MemOperand(x17)), "ld1 {v2.h}[2], [x17]");
+  COMPARE_MACRO(Ld1(v3.V8H(), 3, MemOperand(x18)), "ld1 {v3.h}[3], [x18]");
+  COMPARE_MACRO(Ld1(v4.V2S(), 0, MemOperand(x19)), "ld1 {v4.s}[0], [x19]");
+  COMPARE_MACRO(Ld1(v5.V4S(), 1, MemOperand(x20)), "ld1 {v5.s}[1], [x20]");
+  COMPARE_MACRO(Ld1(v6.V2D(), 0, MemOperand(x21)), "ld1 {v6.d}[0], [x21]");
+  COMPARE_MACRO(Ld1(v7.B(), 7, MemOperand(x22)), "ld1 {v7.b}[7], [x22]");
+  COMPARE_MACRO(Ld1(v8.B(), 15, MemOperand(x23)), "ld1 {v8.b}[15], [x23]");
+  COMPARE_MACRO(Ld1(v9.H(), 3, MemOperand(x24)), "ld1 {v9.h}[3], [x24]");
+  COMPARE_MACRO(Ld1(v10.H(), 7, MemOperand(x25)), "ld1 {v10.h}[7], [x25]");
+  COMPARE_MACRO(Ld1(v11.S(), 1, MemOperand(x26)), "ld1 {v11.s}[1], [x26]");
+  COMPARE_MACRO(Ld1(v12.S(), 3, MemOperand(x27)), "ld1 {v12.s}[3], [x27]");
+  COMPARE_MACRO(Ld1(v13.D(), 1, MemOperand(sp)), "ld1 {v13.d}[1], [sp]");
 
-  COMPARE(Ld1(v0.V8B(), 0, MemOperand(x15, x0, PostIndex)),
-          "ld1 {v0.b}[0], [x15], x0");
-  COMPARE(Ld1(v1.V16B(), 1, MemOperand(x16, 1, PostIndex)),
-          "ld1 {v1.b}[1], [x16], #1");
-  COMPARE(Ld1(v2.V4H(), 2, MemOperand(x17, 2, PostIndex)),
-          "ld1 {v2.h}[2], [x17], #2");
-  COMPARE(Ld1(v3.V8H(), 3, MemOperand(x18, x1, PostIndex)),
-          "ld1 {v3.h}[3], [x18], x1");
-  COMPARE(Ld1(v4.V2S(), 0, MemOperand(x19, x2, PostIndex)),
-          "ld1 {v4.s}[0], [x19], x2");
-  COMPARE(Ld1(v5.V4S(), 1, MemOperand(x20, 4, PostIndex)),
-          "ld1 {v5.s}[1], [x20], #4");
-  COMPARE(Ld1(v6.V2D(), 0, MemOperand(x21, 8, PostIndex)),
-          "ld1 {v6.d}[0], [x21], #8");
-  COMPARE(Ld1(v7.B(), 7, MemOperand(x22, 1, PostIndex)),
-          "ld1 {v7.b}[7], [x22], #1");
-  COMPARE(Ld1(v8.B(), 15, MemOperand(x23, x3, PostIndex)),
-          "ld1 {v8.b}[15], [x23], x3");
-  COMPARE(Ld1(v9.H(), 3, MemOperand(x24, x4, PostIndex)),
-          "ld1 {v9.h}[3], [x24], x4");
-  COMPARE(Ld1(v10.H(), 7, MemOperand(x25, 2, PostIndex)),
-          "ld1 {v10.h}[7], [x25], #2");
-  COMPARE(Ld1(v11.S(), 1, MemOperand(x26, 4, PostIndex)),
-          "ld1 {v11.s}[1], [x26], #4");
-  COMPARE(Ld1(v12.S(), 3, MemOperand(x27, x5, PostIndex)),
-          "ld1 {v12.s}[3], [x27], x5");
-  COMPARE(Ld1(v12.S(), 3, MemOperand(x27, 4, PostIndex)),
-          "ld1 {v12.s}[3], [x27], #4");
-  COMPARE(Ld1(v13.D(), 1, MemOperand(sp, x6, PostIndex)),
-          "ld1 {v13.d}[1], [sp], x6");
-  COMPARE(Ld1(v13.D(), 1, MemOperand(sp, 8, PostIndex)),
-          "ld1 {v13.d}[1], [sp], #8");
+  COMPARE_MACRO(Ld1(v0.V8B(), 0, MemOperand(x15, x0, PostIndex)),
+                "ld1 {v0.b}[0], [x15], x0");
+  COMPARE_MACRO(Ld1(v1.V16B(), 1, MemOperand(x16, 1, PostIndex)),
+                "ld1 {v1.b}[1], [x16], #1");
+  COMPARE_MACRO(Ld1(v2.V4H(), 2, MemOperand(x17, 2, PostIndex)),
+                "ld1 {v2.h}[2], [x17], #2");
+  COMPARE_MACRO(Ld1(v3.V8H(), 3, MemOperand(x18, x1, PostIndex)),
+                "ld1 {v3.h}[3], [x18], x1");
+  COMPARE_MACRO(Ld1(v4.V2S(), 0, MemOperand(x19, x2, PostIndex)),
+                "ld1 {v4.s}[0], [x19], x2");
+  COMPARE_MACRO(Ld1(v5.V4S(), 1, MemOperand(x20, 4, PostIndex)),
+                "ld1 {v5.s}[1], [x20], #4");
+  COMPARE_MACRO(Ld1(v6.V2D(), 0, MemOperand(x21, 8, PostIndex)),
+                "ld1 {v6.d}[0], [x21], #8");
+  COMPARE_MACRO(Ld1(v7.B(), 7, MemOperand(x22, 1, PostIndex)),
+                "ld1 {v7.b}[7], [x22], #1");
+  COMPARE_MACRO(Ld1(v8.B(), 15, MemOperand(x23, x3, PostIndex)),
+                "ld1 {v8.b}[15], [x23], x3");
+  COMPARE_MACRO(Ld1(v9.H(), 3, MemOperand(x24, x4, PostIndex)),
+                "ld1 {v9.h}[3], [x24], x4");
+  COMPARE_MACRO(Ld1(v10.H(), 7, MemOperand(x25, 2, PostIndex)),
+                "ld1 {v10.h}[7], [x25], #2");
+  COMPARE_MACRO(Ld1(v11.S(), 1, MemOperand(x26, 4, PostIndex)),
+                "ld1 {v11.s}[1], [x26], #4");
+  COMPARE_MACRO(Ld1(v12.S(), 3, MemOperand(x27, x5, PostIndex)),
+                "ld1 {v12.s}[3], [x27], x5");
+  COMPARE_MACRO(Ld1(v12.S(), 3, MemOperand(x27, 4, PostIndex)),
+                "ld1 {v12.s}[3], [x27], #4");
+  COMPARE_MACRO(Ld1(v13.D(), 1, MemOperand(sp, x6, PostIndex)),
+                "ld1 {v13.d}[1], [sp], x6");
+  COMPARE_MACRO(Ld1(v13.D(), 1, MemOperand(sp, 8, PostIndex)),
+                "ld1 {v13.d}[1], [sp], #8");
 
-  COMPARE(Ld2(v0.V8B(),  v1.V8B(),  0, MemOperand(x15)),
-      "ld2 {v0.b, v1.b}[0], [x15]");
-  COMPARE(Ld2(v1.V16B(), v2.V16B(), 1, MemOperand(x16)),
-      "ld2 {v1.b, v2.b}[1], [x16]");
-  COMPARE(Ld2(v2.V4H(),  v3.V4H(),  2, MemOperand(x17)),
-      "ld2 {v2.h, v3.h}[2], [x17]");
-  COMPARE(Ld2(v3.V8H(),  v4.V8H(),  3, MemOperand(x18)),
-      "ld2 {v3.h, v4.h}[3], [x18]");
-  COMPARE(Ld2(v4.V2S(),  v5.V2S(),  0, MemOperand(x19)),
-      "ld2 {v4.s, v5.s}[0], [x19]");
-  COMPARE(Ld2(v5.V4S(),  v6.V4S(),  1, MemOperand(x20)),
-      "ld2 {v5.s, v6.s}[1], [x20]");
-  COMPARE(Ld2(v6.V2D(),  v7.V2D(),  0, MemOperand(x21)),
-      "ld2 {v6.d, v7.d}[0], [x21]");
-  COMPARE(Ld2(v7.B(),    v8.B(),    7, MemOperand(x22)),
-      "ld2 {v7.b, v8.b}[7], [x22]");
-  COMPARE(Ld2(v8.B(),    v9.B(),   15, MemOperand(x23)),
-      "ld2 {v8.b, v9.b}[15], [x23]");
-  COMPARE(Ld2(v9.H(),    v10.H(),   3, MemOperand(x24)),
-      "ld2 {v9.h, v10.h}[3], [x24]");
-  COMPARE(Ld2(v10.H(),   v11.H(),   7, MemOperand(x25)),
-      "ld2 {v10.h, v11.h}[7], [x25]");
-  COMPARE(Ld2(v11.S(),   v12.S(),   1, MemOperand(x26)),
-      "ld2 {v11.s, v12.s}[1], [x26]");
-  COMPARE(Ld2(v12.S(),   v13.S(),   3, MemOperand(x27)),
-      "ld2 {v12.s, v13.s}[3], [x27]");
-  COMPARE(Ld2(v13.D(),   v14.D(),   1, MemOperand(sp)),
-      "ld2 {v13.d, v14.d}[1], [sp]");
+  COMPARE_MACRO(Ld2(v0.V8B(), v1.V8B(), 0, MemOperand(x15)),
+                "ld2 {v0.b, v1.b}[0], [x15]");
+  COMPARE_MACRO(Ld2(v1.V16B(), v2.V16B(), 1, MemOperand(x16)),
+                "ld2 {v1.b, v2.b}[1], [x16]");
+  COMPARE_MACRO(Ld2(v2.V4H(), v3.V4H(), 2, MemOperand(x17)),
+                "ld2 {v2.h, v3.h}[2], [x17]");
+  COMPARE_MACRO(Ld2(v3.V8H(), v4.V8H(), 3, MemOperand(x18)),
+                "ld2 {v3.h, v4.h}[3], [x18]");
+  COMPARE_MACRO(Ld2(v4.V2S(), v5.V2S(), 0, MemOperand(x19)),
+                "ld2 {v4.s, v5.s}[0], [x19]");
+  COMPARE_MACRO(Ld2(v5.V4S(), v6.V4S(), 1, MemOperand(x20)),
+                "ld2 {v5.s, v6.s}[1], [x20]");
+  COMPARE_MACRO(Ld2(v6.V2D(), v7.V2D(), 0, MemOperand(x21)),
+                "ld2 {v6.d, v7.d}[0], [x21]");
+  COMPARE_MACRO(Ld2(v7.B(), v8.B(), 7, MemOperand(x22)),
+                "ld2 {v7.b, v8.b}[7], [x22]");
+  COMPARE_MACRO(Ld2(v8.B(), v9.B(), 15, MemOperand(x23)),
+                "ld2 {v8.b, v9.b}[15], [x23]");
+  COMPARE_MACRO(Ld2(v9.H(), v10.H(), 3, MemOperand(x24)),
+                "ld2 {v9.h, v10.h}[3], [x24]");
+  COMPARE_MACRO(Ld2(v10.H(), v11.H(), 7, MemOperand(x25)),
+                "ld2 {v10.h, v11.h}[7], [x25]");
+  COMPARE_MACRO(Ld2(v11.S(), v12.S(), 1, MemOperand(x26)),
+                "ld2 {v11.s, v12.s}[1], [x26]");
+  COMPARE_MACRO(Ld2(v12.S(), v13.S(), 3, MemOperand(x27)),
+                "ld2 {v12.s, v13.s}[3], [x27]");
+  COMPARE_MACRO(Ld2(v13.D(), v14.D(), 1, MemOperand(sp)),
+                "ld2 {v13.d, v14.d}[1], [sp]");
 
-  COMPARE(Ld2(v0.V8B(), v1.V8B(),  0, MemOperand(x15, x0, PostIndex)),
-      "ld2 {v0.b, v1.b}[0], [x15], x0");
-  COMPARE(Ld2(v1.V16B(), v2.V16B(), 1, MemOperand(x16, 2, PostIndex)),
-      "ld2 {v1.b, v2.b}[1], [x16], #2");
-  COMPARE(Ld2(v2.V4H(), v3.V4H(),  2, MemOperand(x17, 4, PostIndex)),
-      "ld2 {v2.h, v3.h}[2], [x17], #4");
-  COMPARE(Ld2(v3.V8H(), v4.V8H(),  3, MemOperand(x18, x1, PostIndex)),
-      "ld2 {v3.h, v4.h}[3], [x18], x1");
-  COMPARE(Ld2(v4.V2S(), v5.V2S(),  0, MemOperand(x19, x2, PostIndex)),
-      "ld2 {v4.s, v5.s}[0], [x19], x2");
-  COMPARE(Ld2(v5.V4S(), v6.V4S(),  1, MemOperand(x20, 8, PostIndex)),
-      "ld2 {v5.s, v6.s}[1], [x20], #8");
-  COMPARE(Ld2(v6.V2D(), v7.V2D(),  0, MemOperand(x21, 16, PostIndex)),
-      "ld2 {v6.d, v7.d}[0], [x21], #16");
-  COMPARE(Ld2(v7.B(),   v8.B(),    7, MemOperand(x22, 2, PostIndex)),
-      "ld2 {v7.b, v8.b}[7], [x22], #2");
-  COMPARE(Ld2(v8.B(),   v9.B(),   15, MemOperand(x23, x3, PostIndex)),
-      "ld2 {v8.b, v9.b}[15], [x23], x3");
-  COMPARE(Ld2(v9.H(),   v10.H(),   3, MemOperand(x24, x4, PostIndex)),
-      "ld2 {v9.h, v10.h}[3], [x24], x4");
-  COMPARE(Ld2(v10.H(),  v11.H(),   7, MemOperand(x25, 4, PostIndex)),
-      "ld2 {v10.h, v11.h}[7], [x25], #4");
-  COMPARE(Ld2(v11.S(),  v12.S(),   1, MemOperand(x26, 8, PostIndex)),
-      "ld2 {v11.s, v12.s}[1], [x26], #8");
-  COMPARE(Ld2(v12.S(),  v13.S(),   3, MemOperand(x27, x5, PostIndex)),
-      "ld2 {v12.s, v13.s}[3], [x27], x5");
-  COMPARE(Ld2(v11.S(),  v12.S(),   3, MemOperand(x26, 8, PostIndex)),
-      "ld2 {v11.s, v12.s}[3], [x26], #8");
-  COMPARE(Ld2(v13.D(),  v14.D(),   1, MemOperand(sp, x6, PostIndex)),
-      "ld2 {v13.d, v14.d}[1], [sp], x6");
-  COMPARE(Ld2(v13.D(),  v14.D(),   1, MemOperand(sp, 16, PostIndex)),
-      "ld2 {v13.d, v14.d}[1], [sp], #16");
+  COMPARE_MACRO(Ld2(v0.V8B(), v1.V8B(), 0, MemOperand(x15, x0, PostIndex)),
+                "ld2 {v0.b, v1.b}[0], [x15], x0");
+  COMPARE_MACRO(Ld2(v1.V16B(), v2.V16B(), 1, MemOperand(x16, 2, PostIndex)),
+                "ld2 {v1.b, v2.b}[1], [x16], #2");
+  COMPARE_MACRO(Ld2(v2.V4H(), v3.V4H(), 2, MemOperand(x17, 4, PostIndex)),
+                "ld2 {v2.h, v3.h}[2], [x17], #4");
+  COMPARE_MACRO(Ld2(v3.V8H(), v4.V8H(), 3, MemOperand(x18, x1, PostIndex)),
+                "ld2 {v3.h, v4.h}[3], [x18], x1");
+  COMPARE_MACRO(Ld2(v4.V2S(), v5.V2S(), 0, MemOperand(x19, x2, PostIndex)),
+                "ld2 {v4.s, v5.s}[0], [x19], x2");
+  COMPARE_MACRO(Ld2(v5.V4S(), v6.V4S(), 1, MemOperand(x20, 8, PostIndex)),
+                "ld2 {v5.s, v6.s}[1], [x20], #8");
+  COMPARE_MACRO(Ld2(v6.V2D(), v7.V2D(), 0, MemOperand(x21, 16, PostIndex)),
+                "ld2 {v6.d, v7.d}[0], [x21], #16");
+  COMPARE_MACRO(Ld2(v7.B(), v8.B(), 7, MemOperand(x22, 2, PostIndex)),
+                "ld2 {v7.b, v8.b}[7], [x22], #2");
+  COMPARE_MACRO(Ld2(v8.B(), v9.B(), 15, MemOperand(x23, x3, PostIndex)),
+                "ld2 {v8.b, v9.b}[15], [x23], x3");
+  COMPARE_MACRO(Ld2(v9.H(), v10.H(), 3, MemOperand(x24, x4, PostIndex)),
+                "ld2 {v9.h, v10.h}[3], [x24], x4");
+  COMPARE_MACRO(Ld2(v10.H(), v11.H(), 7, MemOperand(x25, 4, PostIndex)),
+                "ld2 {v10.h, v11.h}[7], [x25], #4");
+  COMPARE_MACRO(Ld2(v11.S(), v12.S(), 1, MemOperand(x26, 8, PostIndex)),
+                "ld2 {v11.s, v12.s}[1], [x26], #8");
+  COMPARE_MACRO(Ld2(v12.S(), v13.S(), 3, MemOperand(x27, x5, PostIndex)),
+                "ld2 {v12.s, v13.s}[3], [x27], x5");
+  COMPARE_MACRO(Ld2(v11.S(), v12.S(), 3, MemOperand(x26, 8, PostIndex)),
+                "ld2 {v11.s, v12.s}[3], [x26], #8");
+  COMPARE_MACRO(Ld2(v13.D(), v14.D(), 1, MemOperand(sp, x6, PostIndex)),
+                "ld2 {v13.d, v14.d}[1], [sp], x6");
+  COMPARE_MACRO(Ld2(v13.D(), v14.D(), 1, MemOperand(sp, 16, PostIndex)),
+                "ld2 {v13.d, v14.d}[1], [sp], #16");
 
-  COMPARE(Ld3(v0.V8B(),  v1.V8B(),  v2.V8B(),   0, MemOperand(x15)),
-      "ld3 {v0.b, v1.b, v2.b}[0], [x15]");
-  COMPARE(Ld3(v1.V16B(), v2.V16B(), v3.V16B(),  1, MemOperand(x16)),
-      "ld3 {v1.b, v2.b, v3.b}[1], [x16]");
-  COMPARE(Ld3(v2.V4H(),  v3.V4H(),  v4.V4H(),   2, MemOperand(x17)),
-      "ld3 {v2.h, v3.h, v4.h}[2], [x17]");
-  COMPARE(Ld3(v3.V8H(),  v4.V8H(),  v5.V8H(),   3, MemOperand(x18)),
-      "ld3 {v3.h, v4.h, v5.h}[3], [x18]");
-  COMPARE(Ld3(v4.V2S(),  v5.V2S(),  v6.V2S(),   0, MemOperand(x19)),
-      "ld3 {v4.s, v5.s, v6.s}[0], [x19]");
-  COMPARE(Ld3(v5.V4S(),  v6.V4S(),  v7.V4S(),   1, MemOperand(x20)),
-      "ld3 {v5.s, v6.s, v7.s}[1], [x20]");
-  COMPARE(Ld3(v6.V2D(),  v7.V2D(),  v8.V2D(),   0, MemOperand(x21)),
-      "ld3 {v6.d, v7.d, v8.d}[0], [x21]");
-  COMPARE(Ld3(v7.B(),    v8.B(),    v9.B(),     7, MemOperand(x22)),
-      "ld3 {v7.b, v8.b, v9.b}[7], [x22]");
-  COMPARE(Ld3(v8.B(),    v9.B(),    v10.B(),    15, MemOperand(x23)),
-      "ld3 {v8.b, v9.b, v10.b}[15], [x23]");
-  COMPARE(Ld3(v9.H(),    v10.H(),   v11.H(),    3, MemOperand(x24)),
-      "ld3 {v9.h, v10.h, v11.h}[3], [x24]");
-  COMPARE(Ld3(v10.H(),   v11.H(),   v12.H(),    7, MemOperand(x25)),
-      "ld3 {v10.h, v11.h, v12.h}[7], [x25]");
-  COMPARE(Ld3(v11.S(),   v12.S(),   v13.S(),    1, MemOperand(x26)),
-      "ld3 {v11.s, v12.s, v13.s}[1], [x26]");
-  COMPARE(Ld3(v12.S(),   v13.S(),   v14.S(),    3, MemOperand(x27)),
-      "ld3 {v12.s, v13.s, v14.s}[3], [x27]");
-  COMPARE(Ld3(v13.D(),   v14.D(),   v15.D(),    1, MemOperand(sp)),
-      "ld3 {v13.d, v14.d, v15.d}[1], [sp]");
+  COMPARE_MACRO(Ld3(v0.V8B(), v1.V8B(), v2.V8B(), 0, MemOperand(x15)),
+                "ld3 {v0.b, v1.b, v2.b}[0], [x15]");
+  COMPARE_MACRO(Ld3(v1.V16B(), v2.V16B(), v3.V16B(), 1, MemOperand(x16)),
+                "ld3 {v1.b, v2.b, v3.b}[1], [x16]");
+  COMPARE_MACRO(Ld3(v2.V4H(), v3.V4H(), v4.V4H(), 2, MemOperand(x17)),
+                "ld3 {v2.h, v3.h, v4.h}[2], [x17]");
+  COMPARE_MACRO(Ld3(v3.V8H(), v4.V8H(), v5.V8H(), 3, MemOperand(x18)),
+                "ld3 {v3.h, v4.h, v5.h}[3], [x18]");
+  COMPARE_MACRO(Ld3(v4.V2S(), v5.V2S(), v6.V2S(), 0, MemOperand(x19)),
+                "ld3 {v4.s, v5.s, v6.s}[0], [x19]");
+  COMPARE_MACRO(Ld3(v5.V4S(), v6.V4S(), v7.V4S(), 1, MemOperand(x20)),
+                "ld3 {v5.s, v6.s, v7.s}[1], [x20]");
+  COMPARE_MACRO(Ld3(v6.V2D(), v7.V2D(), v8.V2D(), 0, MemOperand(x21)),
+                "ld3 {v6.d, v7.d, v8.d}[0], [x21]");
+  COMPARE_MACRO(Ld3(v7.B(), v8.B(), v9.B(), 7, MemOperand(x22)),
+                "ld3 {v7.b, v8.b, v9.b}[7], [x22]");
+  COMPARE_MACRO(Ld3(v8.B(), v9.B(), v10.B(), 15, MemOperand(x23)),
+                "ld3 {v8.b, v9.b, v10.b}[15], [x23]");
+  COMPARE_MACRO(Ld3(v9.H(), v10.H(), v11.H(), 3, MemOperand(x24)),
+                "ld3 {v9.h, v10.h, v11.h}[3], [x24]");
+  COMPARE_MACRO(Ld3(v10.H(), v11.H(), v12.H(), 7, MemOperand(x25)),
+                "ld3 {v10.h, v11.h, v12.h}[7], [x25]");
+  COMPARE_MACRO(Ld3(v11.S(), v12.S(), v13.S(), 1, MemOperand(x26)),
+                "ld3 {v11.s, v12.s, v13.s}[1], [x26]");
+  COMPARE_MACRO(Ld3(v12.S(), v13.S(), v14.S(), 3, MemOperand(x27)),
+                "ld3 {v12.s, v13.s, v14.s}[3], [x27]");
+  COMPARE_MACRO(Ld3(v13.D(), v14.D(), v15.D(), 1, MemOperand(sp)),
+                "ld3 {v13.d, v14.d, v15.d}[1], [sp]");
 
-  COMPARE(Ld3(v0.V8B(),  v1.V8B(),  v2.V8B(),  0,
-              MemOperand(x15, x0, PostIndex)),
-      "ld3 {v0.b, v1.b, v2.b}[0], [x15], x0");
-  COMPARE(Ld3(v1.V16B(), v2.V16B(), v3.V16B(), 1,
-              MemOperand(x16, 3, PostIndex)),
-      "ld3 {v1.b, v2.b, v3.b}[1], [x16], #3");
-  COMPARE(Ld3(v2.V4H(),  v3.V4H(),  v4.V4H(),  2,
-              MemOperand(x17, 6, PostIndex)),
-      "ld3 {v2.h, v3.h, v4.h}[2], [x17], #6");
-  COMPARE(Ld3(v3.V8H(),  v4.V8H(),  v5.V8H(),  3,
-              MemOperand(x18, x1, PostIndex)),
-      "ld3 {v3.h, v4.h, v5.h}[3], [x18], x1");
-  COMPARE(Ld3(v4.V2S(),  v5.V2S(),  v6.V2S(),  0,
-              MemOperand(x19, x2, PostIndex)),
-      "ld3 {v4.s, v5.s, v6.s}[0], [x19], x2");
-  COMPARE(Ld3(v5.V4S(),  v6.V4S(),  v7.V4S(),  1,
-              MemOperand(x20, 12, PostIndex)),
-      "ld3 {v5.s, v6.s, v7.s}[1], [x20], #12");
-  COMPARE(Ld3(v6.V2D(),  v7.V2D(),  v8.V2D(),  0,
-              MemOperand(x21, 24, PostIndex)),
-      "ld3 {v6.d, v7.d, v8.d}[0], [x21], #24");
-  COMPARE(Ld3(v7.B(),    v8.B(),    v9.B(),    7,
-              MemOperand(x22, 3, PostIndex)),
-      "ld3 {v7.b, v8.b, v9.b}[7], [x22], #3");
-  COMPARE(Ld3(v8.B(),    v9.B(),    v10.B(),   15,
-              MemOperand(x23, x3, PostIndex)),
-      "ld3 {v8.b, v9.b, v10.b}[15], [x23], x3");
-  COMPARE(Ld3(v9.H(),    v10.H(),   v11.H(),   3,
-              MemOperand(x24, x4, PostIndex)),
-      "ld3 {v9.h, v10.h, v11.h}[3], [x24], x4");
-  COMPARE(Ld3(v10.H(),   v11.H(),   v12.H(),   7,
-              MemOperand(x25, 6, PostIndex)),
-      "ld3 {v10.h, v11.h, v12.h}[7], [x25], #6");
-  COMPARE(Ld3(v11.S(),   v12.S(),   v13.S(),   1,
-              MemOperand(x26, 12, PostIndex)),
-      "ld3 {v11.s, v12.s, v13.s}[1], [x26], #12");
-  COMPARE(Ld3(v12.S(),   v13.S(),   v14.S(),   3,
-              MemOperand(x27, x5, PostIndex)),
-      "ld3 {v12.s, v13.s, v14.s}[3], [x27], x5");
-  COMPARE(Ld3(v12.S(),   v13.S(),   v14.S(),   3,
-              MemOperand(x27, 12, PostIndex)),
-      "ld3 {v12.s, v13.s, v14.s}[3], [x27], #12");
-  COMPARE(Ld3(v13.D(),   v14.D(),   v15.D(),   1,
-              MemOperand(sp, x6, PostIndex)),
-      "ld3 {v13.d, v14.d, v15.d}[1], [sp], x6");
-  COMPARE(Ld3(v13.D(),   v14.D(),   v15.D(),   1,
-              MemOperand(sp, 24, PostIndex)),
-      "ld3 {v13.d, v14.d, v15.d}[1], [sp], #24");
+  COMPARE_MACRO(Ld3(v0.V8B(),
+                    v1.V8B(),
+                    v2.V8B(),
+                    0,
+                    MemOperand(x15, x0, PostIndex)),
+                "ld3 {v0.b, v1.b, v2.b}[0], [x15], x0");
+  COMPARE_MACRO(Ld3(v1.V16B(),
+                    v2.V16B(),
+                    v3.V16B(),
+                    1,
+                    MemOperand(x16, 3, PostIndex)),
+                "ld3 {v1.b, v2.b, v3.b}[1], [x16], #3");
+  COMPARE_MACRO(Ld3(v2.V4H(),
+                    v3.V4H(),
+                    v4.V4H(),
+                    2,
+                    MemOperand(x17, 6, PostIndex)),
+                "ld3 {v2.h, v3.h, v4.h}[2], [x17], #6");
+  COMPARE_MACRO(Ld3(v3.V8H(),
+                    v4.V8H(),
+                    v5.V8H(),
+                    3,
+                    MemOperand(x18, x1, PostIndex)),
+                "ld3 {v3.h, v4.h, v5.h}[3], [x18], x1");
+  COMPARE_MACRO(Ld3(v4.V2S(),
+                    v5.V2S(),
+                    v6.V2S(),
+                    0,
+                    MemOperand(x19, x2, PostIndex)),
+                "ld3 {v4.s, v5.s, v6.s}[0], [x19], x2");
+  COMPARE_MACRO(Ld3(v5.V4S(),
+                    v6.V4S(),
+                    v7.V4S(),
+                    1,
+                    MemOperand(x20, 12, PostIndex)),
+                "ld3 {v5.s, v6.s, v7.s}[1], [x20], #12");
+  COMPARE_MACRO(Ld3(v6.V2D(),
+                    v7.V2D(),
+                    v8.V2D(),
+                    0,
+                    MemOperand(x21, 24, PostIndex)),
+                "ld3 {v6.d, v7.d, v8.d}[0], [x21], #24");
+  COMPARE_MACRO(Ld3(v7.B(), v8.B(), v9.B(), 7, MemOperand(x22, 3, PostIndex)),
+                "ld3 {v7.b, v8.b, v9.b}[7], [x22], #3");
+  COMPARE_MACRO(Ld3(v8.B(),
+                    v9.B(),
+                    v10.B(),
+                    15,
+                    MemOperand(x23, x3, PostIndex)),
+                "ld3 {v8.b, v9.b, v10.b}[15], [x23], x3");
+  COMPARE_MACRO(Ld3(v9.H(),
+                    v10.H(),
+                    v11.H(),
+                    3,
+                    MemOperand(x24, x4, PostIndex)),
+                "ld3 {v9.h, v10.h, v11.h}[3], [x24], x4");
+  COMPARE_MACRO(Ld3(v10.H(),
+                    v11.H(),
+                    v12.H(),
+                    7,
+                    MemOperand(x25, 6, PostIndex)),
+                "ld3 {v10.h, v11.h, v12.h}[7], [x25], #6");
+  COMPARE_MACRO(Ld3(v11.S(),
+                    v12.S(),
+                    v13.S(),
+                    1,
+                    MemOperand(x26, 12, PostIndex)),
+                "ld3 {v11.s, v12.s, v13.s}[1], [x26], #12");
+  COMPARE_MACRO(Ld3(v12.S(),
+                    v13.S(),
+                    v14.S(),
+                    3,
+                    MemOperand(x27, x5, PostIndex)),
+                "ld3 {v12.s, v13.s, v14.s}[3], [x27], x5");
+  COMPARE_MACRO(Ld3(v12.S(),
+                    v13.S(),
+                    v14.S(),
+                    3,
+                    MemOperand(x27, 12, PostIndex)),
+                "ld3 {v12.s, v13.s, v14.s}[3], [x27], #12");
+  COMPARE_MACRO(Ld3(v13.D(),
+                    v14.D(),
+                    v15.D(),
+                    1,
+                    MemOperand(sp, x6, PostIndex)),
+                "ld3 {v13.d, v14.d, v15.d}[1], [sp], x6");
+  COMPARE_MACRO(Ld3(v13.D(),
+                    v14.D(),
+                    v15.D(),
+                    1,
+                    MemOperand(sp, 24, PostIndex)),
+                "ld3 {v13.d, v14.d, v15.d}[1], [sp], #24");
 
-  COMPARE(Ld4(v0.V8B(),   v1.V8B(),  v2.V8B(),   v3.V8B(),  0,
-              MemOperand(x15)),
-      "ld4 {v0.b, v1.b, v2.b, v3.b}[0], [x15]");
-  COMPARE(Ld4(v1.V16B(),  v2.V16B(), v3.V16B(),  v4.V16B(), 1,
-              MemOperand(x16)),
-      "ld4 {v1.b, v2.b, v3.b, v4.b}[1], [x16]");
-  COMPARE(Ld4(v2.V4H(),   v3.V4H(),  v4.V4H(),   v5.V4H(),  2,
-              MemOperand(x17)),
-      "ld4 {v2.h, v3.h, v4.h, v5.h}[2], [x17]");
-  COMPARE(Ld4(v3.V8H(),   v4.V8H(),  v5.V8H(),   v6.V8H(),  3,
-              MemOperand(x18)),
-      "ld4 {v3.h, v4.h, v5.h, v6.h}[3], [x18]");
-  COMPARE(Ld4(v4.V2S(),   v5.V2S(),  v6.V2S(),   v7.V2S(),  0,
-              MemOperand(x19)),
-      "ld4 {v4.s, v5.s, v6.s, v7.s}[0], [x19]");
-  COMPARE(Ld4(v5.V4S(),   v6.V4S(),  v7.V4S(),   v8.V4S(),  1,
-              MemOperand(x20)),
-      "ld4 {v5.s, v6.s, v7.s, v8.s}[1], [x20]");
-  COMPARE(Ld4(v6.V2D(),   v7.V2D(),  v8.V2D(),   v9.V2D(),  0,
-              MemOperand(x21)),
-      "ld4 {v6.d, v7.d, v8.d, v9.d}[0], [x21]");
-  COMPARE(Ld4(v7.B(),     v8.B(),    v9.B(),    v10.B(),    7,
-              MemOperand(x22)),
-      "ld4 {v7.b, v8.b, v9.b, v10.b}[7], [x22]");
-  COMPARE(Ld4(v8.B(),     v9.B(),    v10.B(),   v11.B(),   15,
-              MemOperand(x23)),
-      "ld4 {v8.b, v9.b, v10.b, v11.b}[15], [x23]");
-  COMPARE(Ld4(v9.H(),    v10.H(),   v11.H(),    v12.H(),    3,
-              MemOperand(x24)),
-      "ld4 {v9.h, v10.h, v11.h, v12.h}[3], [x24]");
-  COMPARE(Ld4(v10.H(),   v11.H(),   v12.H(),    v13.H(),    7,
-              MemOperand(x25)),
-      "ld4 {v10.h, v11.h, v12.h, v13.h}[7], [x25]");
-  COMPARE(Ld4(v11.S(),   v12.S(),   v13.S(),    v14.S(),    1,
-              MemOperand(x26)),
-      "ld4 {v11.s, v12.s, v13.s, v14.s}[1], [x26]");
-  COMPARE(Ld4(v12.S(),   v13.S(),   v14.S(),    v15.S(),    3,
-              MemOperand(x27)),
-      "ld4 {v12.s, v13.s, v14.s, v15.s}[3], [x27]");
-  COMPARE(Ld4(v13.D(),   v14.D(),   v15.D(),    v16.D(),    1,
-              MemOperand(sp)),
-      "ld4 {v13.d, v14.d, v15.d, v16.d}[1], [sp]");
+  COMPARE_MACRO(Ld4(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), 0, MemOperand(x15)),
+                "ld4 {v0.b, v1.b, v2.b, v3.b}[0], [x15]");
+  COMPARE_MACRO(Ld4(v1.V16B(),
+                    v2.V16B(),
+                    v3.V16B(),
+                    v4.V16B(),
+                    1,
+                    MemOperand(x16)),
+                "ld4 {v1.b, v2.b, v3.b, v4.b}[1], [x16]");
+  COMPARE_MACRO(Ld4(v2.V4H(), v3.V4H(), v4.V4H(), v5.V4H(), 2, MemOperand(x17)),
+                "ld4 {v2.h, v3.h, v4.h, v5.h}[2], [x17]");
+  COMPARE_MACRO(Ld4(v3.V8H(), v4.V8H(), v5.V8H(), v6.V8H(), 3, MemOperand(x18)),
+                "ld4 {v3.h, v4.h, v5.h, v6.h}[3], [x18]");
+  COMPARE_MACRO(Ld4(v4.V2S(), v5.V2S(), v6.V2S(), v7.V2S(), 0, MemOperand(x19)),
+                "ld4 {v4.s, v5.s, v6.s, v7.s}[0], [x19]");
+  COMPARE_MACRO(Ld4(v5.V4S(), v6.V4S(), v7.V4S(), v8.V4S(), 1, MemOperand(x20)),
+                "ld4 {v5.s, v6.s, v7.s, v8.s}[1], [x20]");
+  COMPARE_MACRO(Ld4(v6.V2D(), v7.V2D(), v8.V2D(), v9.V2D(), 0, MemOperand(x21)),
+                "ld4 {v6.d, v7.d, v8.d, v9.d}[0], [x21]");
+  COMPARE_MACRO(Ld4(v7.B(), v8.B(), v9.B(), v10.B(), 7, MemOperand(x22)),
+                "ld4 {v7.b, v8.b, v9.b, v10.b}[7], [x22]");
+  COMPARE_MACRO(Ld4(v8.B(), v9.B(), v10.B(), v11.B(), 15, MemOperand(x23)),
+                "ld4 {v8.b, v9.b, v10.b, v11.b}[15], [x23]");
+  COMPARE_MACRO(Ld4(v9.H(), v10.H(), v11.H(), v12.H(), 3, MemOperand(x24)),
+                "ld4 {v9.h, v10.h, v11.h, v12.h}[3], [x24]");
+  COMPARE_MACRO(Ld4(v10.H(), v11.H(), v12.H(), v13.H(), 7, MemOperand(x25)),
+                "ld4 {v10.h, v11.h, v12.h, v13.h}[7], [x25]");
+  COMPARE_MACRO(Ld4(v11.S(), v12.S(), v13.S(), v14.S(), 1, MemOperand(x26)),
+                "ld4 {v11.s, v12.s, v13.s, v14.s}[1], [x26]");
+  COMPARE_MACRO(Ld4(v12.S(), v13.S(), v14.S(), v15.S(), 3, MemOperand(x27)),
+                "ld4 {v12.s, v13.s, v14.s, v15.s}[3], [x27]");
+  COMPARE_MACRO(Ld4(v13.D(), v14.D(), v15.D(), v16.D(), 1, MemOperand(sp)),
+                "ld4 {v13.d, v14.d, v15.d, v16.d}[1], [sp]");
 
-  COMPARE(Ld4(v0.V8B(),   v1.V8B(),  v2.V8B(),  v3.V8B(),  0,
-              MemOperand(x15, x0, PostIndex)),
-      "ld4 {v0.b, v1.b, v2.b, v3.b}[0], [x15], x0");
-  COMPARE(Ld4(v1.V16B(),  v2.V16B(), v3.V16B(), v4.V16B(), 1,
-              MemOperand(x16, 4, PostIndex)),
-      "ld4 {v1.b, v2.b, v3.b, v4.b}[1], [x16], #4");
-  COMPARE(Ld4(v2.V4H(),   v3.V4H(),  v4.V4H(),  v5.V4H(),  2,
-              MemOperand(x17, 8, PostIndex)),
-      "ld4 {v2.h, v3.h, v4.h, v5.h}[2], [x17], #8");
-  COMPARE(Ld4(v3.V8H(),   v4.V8H(),  v5.V8H(),  v6.V8H(),  3,
-              MemOperand(x18, x1, PostIndex)),
-      "ld4 {v3.h, v4.h, v5.h, v6.h}[3], [x18], x1");
-  COMPARE(Ld4(v4.V2S(),   v5.V2S(),  v6.V2S(),  v7.V2S(),  0,
-              MemOperand(x19, x2, PostIndex)),
-      "ld4 {v4.s, v5.s, v6.s, v7.s}[0], [x19], x2");
-  COMPARE(Ld4(v5.V4S(),   v6.V4S(),  v7.V4S(),  v8.V4S(),  1,
-              MemOperand(x20, 16, PostIndex)),
-      "ld4 {v5.s, v6.s, v7.s, v8.s}[1], [x20], #16");
-  COMPARE(Ld4(v6.V2D(),   v7.V2D(),  v8.V2D(),  v9.V2D(),  0,
-              MemOperand(x21, 32, PostIndex)),
-      "ld4 {v6.d, v7.d, v8.d, v9.d}[0], [x21], #32");
-  COMPARE(Ld4(v7.B(),     v8.B(),    v9.B(),   v10.B(),    7,
-              MemOperand(x22, 4, PostIndex)),
-      "ld4 {v7.b, v8.b, v9.b, v10.b}[7], [x22], #4");
-  COMPARE(Ld4(v8.B(),     v9.B(),   v10.B(),   v11.B(),   15,
-              MemOperand(x23, x3, PostIndex)),
-      "ld4 {v8.b, v9.b, v10.b, v11.b}[15], [x23], x3");
-  COMPARE(Ld4(v9.H(),    v10.H(),   v11.H(),   v12.H(),    3,
-              MemOperand(x24, x4, PostIndex)),
-      "ld4 {v9.h, v10.h, v11.h, v12.h}[3], [x24], x4");
-  COMPARE(Ld4(v10.H(),   v11.H(),   v12.H(),   v13.H(),    7,
-              MemOperand(x25, 8, PostIndex)),
-      "ld4 {v10.h, v11.h, v12.h, v13.h}[7], [x25], #8");
-  COMPARE(Ld4(v11.S(),   v12.S(),   v13.S(),   v14.S(),    1,
-              MemOperand(x26, 16, PostIndex)),
-      "ld4 {v11.s, v12.s, v13.s, v14.s}[1], [x26], #16");
-  COMPARE(Ld4(v12.S(),   v13.S(),   v14.S(),   v15.S(),    3,
-              MemOperand(x27, x5, PostIndex)),
-      "ld4 {v12.s, v13.s, v14.s, v15.s}[3], [x27], x5");
-  COMPARE(Ld4(v11.S(),   v12.S(),   v13.S(),   v14.S(),    3,
-              MemOperand(x26, 16, PostIndex)),
-      "ld4 {v11.s, v12.s, v13.s, v14.s}[3], [x26], #16");
-  COMPARE(Ld4(v13.D(),   v14.D(),   v15.D(),   v16.D(),    1,
-              MemOperand(sp, x6, PostIndex)),
-      "ld4 {v13.d, v14.d, v15.d, v16.d}[1], [sp], x6");
-  COMPARE(Ld4(v13.D(),   v14.D(),   v15.D(),   v16.D(),    1,
-              MemOperand(sp, 32, PostIndex)),
-      "ld4 {v13.d, v14.d, v15.d, v16.d}[1], [sp], #32");
+  COMPARE_MACRO(Ld4(v0.V8B(),
+                    v1.V8B(),
+                    v2.V8B(),
+                    v3.V8B(),
+                    0,
+                    MemOperand(x15, x0, PostIndex)),
+                "ld4 {v0.b, v1.b, v2.b, v3.b}[0], [x15], x0");
+  COMPARE_MACRO(Ld4(v1.V16B(),
+                    v2.V16B(),
+                    v3.V16B(),
+                    v4.V16B(),
+                    1,
+                    MemOperand(x16, 4, PostIndex)),
+                "ld4 {v1.b, v2.b, v3.b, v4.b}[1], [x16], #4");
+  COMPARE_MACRO(Ld4(v2.V4H(),
+                    v3.V4H(),
+                    v4.V4H(),
+                    v5.V4H(),
+                    2,
+                    MemOperand(x17, 8, PostIndex)),
+                "ld4 {v2.h, v3.h, v4.h, v5.h}[2], [x17], #8");
+  COMPARE_MACRO(Ld4(v3.V8H(),
+                    v4.V8H(),
+                    v5.V8H(),
+                    v6.V8H(),
+                    3,
+                    MemOperand(x18, x1, PostIndex)),
+                "ld4 {v3.h, v4.h, v5.h, v6.h}[3], [x18], x1");
+  COMPARE_MACRO(Ld4(v4.V2S(),
+                    v5.V2S(),
+                    v6.V2S(),
+                    v7.V2S(),
+                    0,
+                    MemOperand(x19, x2, PostIndex)),
+                "ld4 {v4.s, v5.s, v6.s, v7.s}[0], [x19], x2");
+  COMPARE_MACRO(Ld4(v5.V4S(),
+                    v6.V4S(),
+                    v7.V4S(),
+                    v8.V4S(),
+                    1,
+                    MemOperand(x20, 16, PostIndex)),
+                "ld4 {v5.s, v6.s, v7.s, v8.s}[1], [x20], #16");
+  COMPARE_MACRO(Ld4(v6.V2D(),
+                    v7.V2D(),
+                    v8.V2D(),
+                    v9.V2D(),
+                    0,
+                    MemOperand(x21, 32, PostIndex)),
+                "ld4 {v6.d, v7.d, v8.d, v9.d}[0], [x21], #32");
+  COMPARE_MACRO(Ld4(v7.B(),
+                    v8.B(),
+                    v9.B(),
+                    v10.B(),
+                    7,
+                    MemOperand(x22, 4, PostIndex)),
+                "ld4 {v7.b, v8.b, v9.b, v10.b}[7], [x22], #4");
+  COMPARE_MACRO(Ld4(v8.B(),
+                    v9.B(),
+                    v10.B(),
+                    v11.B(),
+                    15,
+                    MemOperand(x23, x3, PostIndex)),
+                "ld4 {v8.b, v9.b, v10.b, v11.b}[15], [x23], x3");
+  COMPARE_MACRO(Ld4(v9.H(),
+                    v10.H(),
+                    v11.H(),
+                    v12.H(),
+                    3,
+                    MemOperand(x24, x4, PostIndex)),
+                "ld4 {v9.h, v10.h, v11.h, v12.h}[3], [x24], x4");
+  COMPARE_MACRO(Ld4(v10.H(),
+                    v11.H(),
+                    v12.H(),
+                    v13.H(),
+                    7,
+                    MemOperand(x25, 8, PostIndex)),
+                "ld4 {v10.h, v11.h, v12.h, v13.h}[7], [x25], #8");
+  COMPARE_MACRO(Ld4(v11.S(),
+                    v12.S(),
+                    v13.S(),
+                    v14.S(),
+                    1,
+                    MemOperand(x26, 16, PostIndex)),
+                "ld4 {v11.s, v12.s, v13.s, v14.s}[1], [x26], #16");
+  COMPARE_MACRO(Ld4(v12.S(),
+                    v13.S(),
+                    v14.S(),
+                    v15.S(),
+                    3,
+                    MemOperand(x27, x5, PostIndex)),
+                "ld4 {v12.s, v13.s, v14.s, v15.s}[3], [x27], x5");
+  COMPARE_MACRO(Ld4(v11.S(),
+                    v12.S(),
+                    v13.S(),
+                    v14.S(),
+                    3,
+                    MemOperand(x26, 16, PostIndex)),
+                "ld4 {v11.s, v12.s, v13.s, v14.s}[3], [x26], #16");
+  COMPARE_MACRO(Ld4(v13.D(),
+                    v14.D(),
+                    v15.D(),
+                    v16.D(),
+                    1,
+                    MemOperand(sp, x6, PostIndex)),
+                "ld4 {v13.d, v14.d, v15.d, v16.d}[1], [sp], x6");
+  COMPARE_MACRO(Ld4(v13.D(),
+                    v14.D(),
+                    v15.D(),
+                    v16.D(),
+                    1,
+                    MemOperand(sp, 32, PostIndex)),
+                "ld4 {v13.d, v14.d, v15.d, v16.d}[1], [sp], #32");
 
-  COMPARE(St1(v0.V8B(), 0, MemOperand(x15)), "st1 {v0.b}[0], [x15]");
-  COMPARE(St1(v1.V16B(), 1, MemOperand(x16)), "st1 {v1.b}[1], [x16]");
-  COMPARE(St1(v2.V4H(), 2, MemOperand(x17)), "st1 {v2.h}[2], [x17]");
-  COMPARE(St1(v3.V8H(), 3, MemOperand(x18)), "st1 {v3.h}[3], [x18]");
-  COMPARE(St1(v4.V2S(), 0, MemOperand(x19)), "st1 {v4.s}[0], [x19]");
-  COMPARE(St1(v5.V4S(), 1, MemOperand(x20)), "st1 {v5.s}[1], [x20]");
-  COMPARE(St1(v6.V2D(), 0, MemOperand(x21)), "st1 {v6.d}[0], [x21]");
-  COMPARE(St1(v7.B(), 7, MemOperand(x22)), "st1 {v7.b}[7], [x22]");
-  COMPARE(St1(v8.B(), 15, MemOperand(x23)), "st1 {v8.b}[15], [x23]");
-  COMPARE(St1(v9.H(), 3, MemOperand(x24)), "st1 {v9.h}[3], [x24]");
-  COMPARE(St1(v10.H(), 7, MemOperand(x25)), "st1 {v10.h}[7], [x25]");
-  COMPARE(St1(v11.S(), 1, MemOperand(x26)), "st1 {v11.s}[1], [x26]");
-  COMPARE(St1(v12.S(), 3, MemOperand(x27)), "st1 {v12.s}[3], [x27]");
-  COMPARE(St1(v13.D(), 1, MemOperand(sp)), "st1 {v13.d}[1], [sp]");
+  COMPARE_MACRO(St1(v0.V8B(), 0, MemOperand(x15)), "st1 {v0.b}[0], [x15]");
+  COMPARE_MACRO(St1(v1.V16B(), 1, MemOperand(x16)), "st1 {v1.b}[1], [x16]");
+  COMPARE_MACRO(St1(v2.V4H(), 2, MemOperand(x17)), "st1 {v2.h}[2], [x17]");
+  COMPARE_MACRO(St1(v3.V8H(), 3, MemOperand(x18)), "st1 {v3.h}[3], [x18]");
+  COMPARE_MACRO(St1(v4.V2S(), 0, MemOperand(x19)), "st1 {v4.s}[0], [x19]");
+  COMPARE_MACRO(St1(v5.V4S(), 1, MemOperand(x20)), "st1 {v5.s}[1], [x20]");
+  COMPARE_MACRO(St1(v6.V2D(), 0, MemOperand(x21)), "st1 {v6.d}[0], [x21]");
+  COMPARE_MACRO(St1(v7.B(), 7, MemOperand(x22)), "st1 {v7.b}[7], [x22]");
+  COMPARE_MACRO(St1(v8.B(), 15, MemOperand(x23)), "st1 {v8.b}[15], [x23]");
+  COMPARE_MACRO(St1(v9.H(), 3, MemOperand(x24)), "st1 {v9.h}[3], [x24]");
+  COMPARE_MACRO(St1(v10.H(), 7, MemOperand(x25)), "st1 {v10.h}[7], [x25]");
+  COMPARE_MACRO(St1(v11.S(), 1, MemOperand(x26)), "st1 {v11.s}[1], [x26]");
+  COMPARE_MACRO(St1(v12.S(), 3, MemOperand(x27)), "st1 {v12.s}[3], [x27]");
+  COMPARE_MACRO(St1(v13.D(), 1, MemOperand(sp)), "st1 {v13.d}[1], [sp]");
 
-  COMPARE(St1(v0.V8B(), 0, MemOperand(x15, x0, PostIndex)),
-          "st1 {v0.b}[0], [x15], x0");
-  COMPARE(St1(v1.V16B(), 1, MemOperand(x16, 1, PostIndex)),
-          "st1 {v1.b}[1], [x16], #1");
-  COMPARE(St1(v2.V4H(), 2, MemOperand(x17, 2, PostIndex)),
-          "st1 {v2.h}[2], [x17], #2");
-  COMPARE(St1(v3.V8H(), 3, MemOperand(x18, x1, PostIndex)),
-          "st1 {v3.h}[3], [x18], x1");
-  COMPARE(St1(v4.V2S(), 0, MemOperand(x19, x2, PostIndex)),
-          "st1 {v4.s}[0], [x19], x2");
-  COMPARE(St1(v5.V4S(), 1, MemOperand(x20, 4, PostIndex)),
-          "st1 {v5.s}[1], [x20], #4");
-  COMPARE(St1(v6.V2D(), 0, MemOperand(x21, 8, PostIndex)),
-          "st1 {v6.d}[0], [x21], #8");
-  COMPARE(St1(v7.B(), 7, MemOperand(x22, 1, PostIndex)),
-          "st1 {v7.b}[7], [x22], #1");
-  COMPARE(St1(v8.B(), 15, MemOperand(x23, x3, PostIndex)),
-          "st1 {v8.b}[15], [x23], x3");
-  COMPARE(St1(v9.H(), 3, MemOperand(x24, x4, PostIndex)),
-          "st1 {v9.h}[3], [x24], x4");
-  COMPARE(St1(v10.H(), 7, MemOperand(x25, 2, PostIndex)),
-          "st1 {v10.h}[7], [x25], #2");
-  COMPARE(St1(v11.S(), 1, MemOperand(x26, 4, PostIndex)),
-          "st1 {v11.s}[1], [x26], #4");
-  COMPARE(St1(v12.S(), 3, MemOperand(x27, x5, PostIndex)),
-          "st1 {v12.s}[3], [x27], x5");
-  COMPARE(St1(v13.D(), 1, MemOperand(sp, x6, PostIndex)),
-          "st1 {v13.d}[1], [sp], x6");
-  COMPARE(St2(v0.V8B(),  v1.V8B(),  0, MemOperand(x15, x0, PostIndex)),
-          "st2 {v0.b, v1.b}[0], [x15], x0");
-  COMPARE(St2(v1.V16B(), v2.V16B(), 1, MemOperand(x16, 2, PostIndex)),
-          "st2 {v1.b, v2.b}[1], [x16], #2");
-  COMPARE(St2(v2.V4H(),  v3.V4H(),  2, MemOperand(x17, 4, PostIndex)),
-          "st2 {v2.h, v3.h}[2], [x17], #4");
-  COMPARE(St2(v3.V8H(),  v4.V8H(),  3, MemOperand(x18, x1, PostIndex)),
-          "st2 {v3.h, v4.h}[3], [x18], x1");
-  COMPARE(St2(v4.V2S(),  v5.V2S(),  0, MemOperand(x19, x2, PostIndex)),
-          "st2 {v4.s, v5.s}[0], [x19], x2");
-  COMPARE(St2(v5.V4S(),  v6.V4S(),  1, MemOperand(x20, 8, PostIndex)),
-          "st2 {v5.s, v6.s}[1], [x20], #8");
-  COMPARE(St2(v6.V2D(),  v7.V2D(),  0, MemOperand(x21, 16, PostIndex)),
-          "st2 {v6.d, v7.d}[0], [x21], #16");
-  COMPARE(St2(v7.B(),    v8.B(),    7, MemOperand(x22, 2, PostIndex)),
-          "st2 {v7.b, v8.b}[7], [x22], #2");
-  COMPARE(St2(v8.B(),    v9.B(),  15, MemOperand(x23, x3, PostIndex)),
-          "st2 {v8.b, v9.b}[15], [x23], x3");
-  COMPARE(St2(v9.H(),    v10.H(),    3, MemOperand(x24, x4, PostIndex)),
-          "st2 {v9.h, v10.h}[3], [x24], x4");
-  COMPARE(St2(v10.H(),   v11.H(),   7, MemOperand(x25, 4, PostIndex)),
-          "st2 {v10.h, v11.h}[7], [x25], #4");
-  COMPARE(St2(v11.S(),   v12.S(),   1, MemOperand(x26, 8, PostIndex)),
-          "st2 {v11.s, v12.s}[1], [x26], #8");
-  COMPARE(St2(v12.S(),   v13.S(),   3, MemOperand(x27, x5, PostIndex)),
-          "st2 {v12.s, v13.s}[3], [x27], x5");
-  COMPARE(St2(v13.D(),   v14.D(),   1, MemOperand(sp, x6, PostIndex)),
-          "st2 {v13.d, v14.d}[1], [sp], x6");
-  COMPARE(St3(VLIST3(v0.V8B()),  0, MemOperand(x15, x0, PostIndex)),
-          "st3 {v0.b, v1.b, v2.b}[0], [x15], x0");
-  COMPARE(St3(VLIST3(v1.V16B()), 1, MemOperand(x16, 3, PostIndex)),
-          "st3 {v1.b, v2.b, v3.b}[1], [x16], #3");
-  COMPARE(St3(VLIST3(v2.V4H()),  2, MemOperand(x17, 6, PostIndex)),
-          "st3 {v2.h, v3.h, v4.h}[2], [x17], #6");
-  COMPARE(St3(VLIST3(v3.V8H()),  3, MemOperand(x18, x1, PostIndex)),
-          "st3 {v3.h, v4.h, v5.h}[3], [x18], x1");
-  COMPARE(St3(VLIST3(v4.V2S()),  0, MemOperand(x19, x2, PostIndex)),
-          "st3 {v4.s, v5.s, v6.s}[0], [x19], x2");
-  COMPARE(St3(VLIST3(v5.V4S()),  1, MemOperand(x20, 12, PostIndex)),
-          "st3 {v5.s, v6.s, v7.s}[1], [x20], #12");
-  COMPARE(St3(VLIST3(v6.V2D()),  0, MemOperand(x21, 24, PostIndex)),
-          "st3 {v6.d, v7.d, v8.d}[0], [x21], #24");
-  COMPARE(St3(VLIST3(v7.B()),    7, MemOperand(x22, 3, PostIndex)),
-          "st3 {v7.b, v8.b, v9.b}[7], [x22], #3");
-  COMPARE(St3(VLIST3(v8.B()),   15, MemOperand(x23, x3, PostIndex)),
-          "st3 {v8.b, v9.b, v10.b}[15], [x23], x3");
-  COMPARE(St3(VLIST3(v9.H()),    3, MemOperand(x24, x4, PostIndex)),
-          "st3 {v9.h, v10.h, v11.h}[3], [x24], x4");
-  COMPARE(St3(VLIST3(v10.H()),   7, MemOperand(x25, 6, PostIndex)),
-          "st3 {v10.h, v11.h, v12.h}[7], [x25], #6");
-  COMPARE(St3(VLIST3(v11.S()),   1, MemOperand(x26, 12, PostIndex)),
-          "st3 {v11.s, v12.s, v13.s}[1], [x26], #12");
-  COMPARE(St3(VLIST3(v12.S()),   3, MemOperand(x27, x5, PostIndex)),
-          "st3 {v12.s, v13.s, v14.s}[3], [x27], x5");
-  COMPARE(St3(VLIST3(v13.D()),   1, MemOperand(sp, x6, PostIndex)),
-        "st3 {v13.d, v14.d, v15.d}[1], [sp], x6");
+  COMPARE_MACRO(St1(v0.V8B(), 0, MemOperand(x15, x0, PostIndex)),
+                "st1 {v0.b}[0], [x15], x0");
+  COMPARE_MACRO(St1(v1.V16B(), 1, MemOperand(x16, 1, PostIndex)),
+                "st1 {v1.b}[1], [x16], #1");
+  COMPARE_MACRO(St1(v2.V4H(), 2, MemOperand(x17, 2, PostIndex)),
+                "st1 {v2.h}[2], [x17], #2");
+  COMPARE_MACRO(St1(v3.V8H(), 3, MemOperand(x18, x1, PostIndex)),
+                "st1 {v3.h}[3], [x18], x1");
+  COMPARE_MACRO(St1(v4.V2S(), 0, MemOperand(x19, x2, PostIndex)),
+                "st1 {v4.s}[0], [x19], x2");
+  COMPARE_MACRO(St1(v5.V4S(), 1, MemOperand(x20, 4, PostIndex)),
+                "st1 {v5.s}[1], [x20], #4");
+  COMPARE_MACRO(St1(v6.V2D(), 0, MemOperand(x21, 8, PostIndex)),
+                "st1 {v6.d}[0], [x21], #8");
+  COMPARE_MACRO(St1(v7.B(), 7, MemOperand(x22, 1, PostIndex)),
+                "st1 {v7.b}[7], [x22], #1");
+  COMPARE_MACRO(St1(v8.B(), 15, MemOperand(x23, x3, PostIndex)),
+                "st1 {v8.b}[15], [x23], x3");
+  COMPARE_MACRO(St1(v9.H(), 3, MemOperand(x24, x4, PostIndex)),
+                "st1 {v9.h}[3], [x24], x4");
+  COMPARE_MACRO(St1(v10.H(), 7, MemOperand(x25, 2, PostIndex)),
+                "st1 {v10.h}[7], [x25], #2");
+  COMPARE_MACRO(St1(v11.S(), 1, MemOperand(x26, 4, PostIndex)),
+                "st1 {v11.s}[1], [x26], #4");
+  COMPARE_MACRO(St1(v12.S(), 3, MemOperand(x27, x5, PostIndex)),
+                "st1 {v12.s}[3], [x27], x5");
+  COMPARE_MACRO(St1(v13.D(), 1, MemOperand(sp, x6, PostIndex)),
+                "st1 {v13.d}[1], [sp], x6");
+  COMPARE_MACRO(St2(v0.V8B(), v1.V8B(), 0, MemOperand(x15, x0, PostIndex)),
+                "st2 {v0.b, v1.b}[0], [x15], x0");
+  COMPARE_MACRO(St2(v1.V16B(), v2.V16B(), 1, MemOperand(x16, 2, PostIndex)),
+                "st2 {v1.b, v2.b}[1], [x16], #2");
+  COMPARE_MACRO(St2(v2.V4H(), v3.V4H(), 2, MemOperand(x17, 4, PostIndex)),
+                "st2 {v2.h, v3.h}[2], [x17], #4");
+  COMPARE_MACRO(St2(v3.V8H(), v4.V8H(), 3, MemOperand(x18, x1, PostIndex)),
+                "st2 {v3.h, v4.h}[3], [x18], x1");
+  COMPARE_MACRO(St2(v4.V2S(), v5.V2S(), 0, MemOperand(x19, x2, PostIndex)),
+                "st2 {v4.s, v5.s}[0], [x19], x2");
+  COMPARE_MACRO(St2(v5.V4S(), v6.V4S(), 1, MemOperand(x20, 8, PostIndex)),
+                "st2 {v5.s, v6.s}[1], [x20], #8");
+  COMPARE_MACRO(St2(v6.V2D(), v7.V2D(), 0, MemOperand(x21, 16, PostIndex)),
+                "st2 {v6.d, v7.d}[0], [x21], #16");
+  COMPARE_MACRO(St2(v7.B(), v8.B(), 7, MemOperand(x22, 2, PostIndex)),
+                "st2 {v7.b, v8.b}[7], [x22], #2");
+  COMPARE_MACRO(St2(v8.B(), v9.B(), 15, MemOperand(x23, x3, PostIndex)),
+                "st2 {v8.b, v9.b}[15], [x23], x3");
+  COMPARE_MACRO(St2(v9.H(), v10.H(), 3, MemOperand(x24, x4, PostIndex)),
+                "st2 {v9.h, v10.h}[3], [x24], x4");
+  COMPARE_MACRO(St2(v10.H(), v11.H(), 7, MemOperand(x25, 4, PostIndex)),
+                "st2 {v10.h, v11.h}[7], [x25], #4");
+  COMPARE_MACRO(St2(v11.S(), v12.S(), 1, MemOperand(x26, 8, PostIndex)),
+                "st2 {v11.s, v12.s}[1], [x26], #8");
+  COMPARE_MACRO(St2(v12.S(), v13.S(), 3, MemOperand(x27, x5, PostIndex)),
+                "st2 {v12.s, v13.s}[3], [x27], x5");
+  COMPARE_MACRO(St2(v13.D(), v14.D(), 1, MemOperand(sp, x6, PostIndex)),
+                "st2 {v13.d, v14.d}[1], [sp], x6");
+  COMPARE_MACRO(St3(VLIST3(v0.V8B()), 0, MemOperand(x15, x0, PostIndex)),
+                "st3 {v0.b, v1.b, v2.b}[0], [x15], x0");
+  COMPARE_MACRO(St3(VLIST3(v1.V16B()), 1, MemOperand(x16, 3, PostIndex)),
+                "st3 {v1.b, v2.b, v3.b}[1], [x16], #3");
+  COMPARE_MACRO(St3(VLIST3(v2.V4H()), 2, MemOperand(x17, 6, PostIndex)),
+                "st3 {v2.h, v3.h, v4.h}[2], [x17], #6");
+  COMPARE_MACRO(St3(VLIST3(v3.V8H()), 3, MemOperand(x18, x1, PostIndex)),
+                "st3 {v3.h, v4.h, v5.h}[3], [x18], x1");
+  COMPARE_MACRO(St3(VLIST3(v4.V2S()), 0, MemOperand(x19, x2, PostIndex)),
+                "st3 {v4.s, v5.s, v6.s}[0], [x19], x2");
+  COMPARE_MACRO(St3(VLIST3(v5.V4S()), 1, MemOperand(x20, 12, PostIndex)),
+                "st3 {v5.s, v6.s, v7.s}[1], [x20], #12");
+  COMPARE_MACRO(St3(VLIST3(v6.V2D()), 0, MemOperand(x21, 24, PostIndex)),
+                "st3 {v6.d, v7.d, v8.d}[0], [x21], #24");
+  COMPARE_MACRO(St3(VLIST3(v7.B()), 7, MemOperand(x22, 3, PostIndex)),
+                "st3 {v7.b, v8.b, v9.b}[7], [x22], #3");
+  COMPARE_MACRO(St3(VLIST3(v8.B()), 15, MemOperand(x23, x3, PostIndex)),
+                "st3 {v8.b, v9.b, v10.b}[15], [x23], x3");
+  COMPARE_MACRO(St3(VLIST3(v9.H()), 3, MemOperand(x24, x4, PostIndex)),
+                "st3 {v9.h, v10.h, v11.h}[3], [x24], x4");
+  COMPARE_MACRO(St3(VLIST3(v10.H()), 7, MemOperand(x25, 6, PostIndex)),
+                "st3 {v10.h, v11.h, v12.h}[7], [x25], #6");
+  COMPARE_MACRO(St3(VLIST3(v11.S()), 1, MemOperand(x26, 12, PostIndex)),
+                "st3 {v11.s, v12.s, v13.s}[1], [x26], #12");
+  COMPARE_MACRO(St3(VLIST3(v12.S()), 3, MemOperand(x27, x5, PostIndex)),
+                "st3 {v12.s, v13.s, v14.s}[3], [x27], x5");
+  COMPARE_MACRO(St3(VLIST3(v13.D()), 1, MemOperand(sp, x6, PostIndex)),
+                "st3 {v13.d, v14.d, v15.d}[1], [sp], x6");
 
-  COMPARE(St4(VLIST4(v0.V8B()),  0, MemOperand(x15, x0, PostIndex)),
-          "st4 {v0.b, v1.b, v2.b, v3.b}[0], [x15], x0");
-  COMPARE(St4(VLIST4(v1.V16B()), 1, MemOperand(x16, 4, PostIndex)),
-          "st4 {v1.b, v2.b, v3.b, v4.b}[1], [x16], #4");
-  COMPARE(St4(VLIST4(v2.V4H()),  2, MemOperand(x17, 8, PostIndex)),
-          "st4 {v2.h, v3.h, v4.h, v5.h}[2], [x17], #8");
-  COMPARE(St4(VLIST4(v3.V8H()),  3, MemOperand(x18, x1, PostIndex)),
-          "st4 {v3.h, v4.h, v5.h, v6.h}[3], [x18], x1");
-  COMPARE(St4(VLIST4(v4.V2S()),  0, MemOperand(x19, x2, PostIndex)),
-          "st4 {v4.s, v5.s, v6.s, v7.s}[0], [x19], x2");
-  COMPARE(St4(VLIST4(v5.V4S()),  1, MemOperand(x20, 16, PostIndex)),
-          "st4 {v5.s, v6.s, v7.s, v8.s}[1], [x20], #16");
-  COMPARE(St4(VLIST4(v6.V2D()),  0, MemOperand(x21, 32, PostIndex)),
-          "st4 {v6.d, v7.d, v8.d, v9.d}[0], [x21], #32");
-  COMPARE(St4(VLIST4(v7.B()),    7, MemOperand(x22, 4, PostIndex)),
-          "st4 {v7.b, v8.b, v9.b, v10.b}[7], [x22], #4");
-  COMPARE(St4(VLIST4(v8.B()),   15, MemOperand(x23, x3, PostIndex)),
-          "st4 {v8.b, v9.b, v10.b, v11.b}[15], [x23], x3");
-  COMPARE(St4(VLIST4(v9.H()),    3, MemOperand(x24, x4, PostIndex)),
-          "st4 {v9.h, v10.h, v11.h, v12.h}[3], [x24], x4");
-  COMPARE(St4(VLIST4(v10.H()),   7, MemOperand(x25, 8, PostIndex)),
-          "st4 {v10.h, v11.h, v12.h, v13.h}[7], [x25], #8");
-  COMPARE(St4(VLIST4(v11.S()),   1, MemOperand(x26, 16, PostIndex)),
-          "st4 {v11.s, v12.s, v13.s, v14.s}[1], [x26], #16");
-  COMPARE(St4(VLIST4(v12.S()),   3, MemOperand(x27, x5, PostIndex)),
-         "st4 {v12.s, v13.s, v14.s, v15.s}[3], [x27], x5");
-  COMPARE(St4(VLIST4(v13.D()),   1, MemOperand(sp, x6, PostIndex)),
-          "st4 {v13.d, v14.d, v15.d, v16.d}[1], [sp], x6");
+  COMPARE_MACRO(St4(VLIST4(v0.V8B()), 0, MemOperand(x15, x0, PostIndex)),
+                "st4 {v0.b, v1.b, v2.b, v3.b}[0], [x15], x0");
+  COMPARE_MACRO(St4(VLIST4(v1.V16B()), 1, MemOperand(x16, 4, PostIndex)),
+                "st4 {v1.b, v2.b, v3.b, v4.b}[1], [x16], #4");
+  COMPARE_MACRO(St4(VLIST4(v2.V4H()), 2, MemOperand(x17, 8, PostIndex)),
+                "st4 {v2.h, v3.h, v4.h, v5.h}[2], [x17], #8");
+  COMPARE_MACRO(St4(VLIST4(v3.V8H()), 3, MemOperand(x18, x1, PostIndex)),
+                "st4 {v3.h, v4.h, v5.h, v6.h}[3], [x18], x1");
+  COMPARE_MACRO(St4(VLIST4(v4.V2S()), 0, MemOperand(x19, x2, PostIndex)),
+                "st4 {v4.s, v5.s, v6.s, v7.s}[0], [x19], x2");
+  COMPARE_MACRO(St4(VLIST4(v5.V4S()), 1, MemOperand(x20, 16, PostIndex)),
+                "st4 {v5.s, v6.s, v7.s, v8.s}[1], [x20], #16");
+  COMPARE_MACRO(St4(VLIST4(v6.V2D()), 0, MemOperand(x21, 32, PostIndex)),
+                "st4 {v6.d, v7.d, v8.d, v9.d}[0], [x21], #32");
+  COMPARE_MACRO(St4(VLIST4(v7.B()), 7, MemOperand(x22, 4, PostIndex)),
+                "st4 {v7.b, v8.b, v9.b, v10.b}[7], [x22], #4");
+  COMPARE_MACRO(St4(VLIST4(v8.B()), 15, MemOperand(x23, x3, PostIndex)),
+                "st4 {v8.b, v9.b, v10.b, v11.b}[15], [x23], x3");
+  COMPARE_MACRO(St4(VLIST4(v9.H()), 3, MemOperand(x24, x4, PostIndex)),
+                "st4 {v9.h, v10.h, v11.h, v12.h}[3], [x24], x4");
+  COMPARE_MACRO(St4(VLIST4(v10.H()), 7, MemOperand(x25, 8, PostIndex)),
+                "st4 {v10.h, v11.h, v12.h, v13.h}[7], [x25], #8");
+  COMPARE_MACRO(St4(VLIST4(v11.S()), 1, MemOperand(x26, 16, PostIndex)),
+                "st4 {v11.s, v12.s, v13.s, v14.s}[1], [x26], #16");
+  COMPARE_MACRO(St4(VLIST4(v12.S()), 3, MemOperand(x27, x5, PostIndex)),
+                "st4 {v12.s, v13.s, v14.s, v15.s}[3], [x27], x5");
+  COMPARE_MACRO(St4(VLIST4(v13.D()), 1, MemOperand(sp, x6, PostIndex)),
+                "st4 {v13.d, v14.d, v15.d, v16.d}[1], [sp], x6");
 
   CLEANUP();
 }
@@ -3822,148 +4006,197 @@
 
 
 TEST(neon_load_all_lanes) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Ld1r(v14.V8B(), MemOperand(x0)), "ld1r {v14.8b}, [x0]");
-  COMPARE(Ld1r(v15.V16B(), MemOperand(x1)), "ld1r {v15.16b}, [x1]");
-  COMPARE(Ld1r(v16.V4H(), MemOperand(x2)), "ld1r {v16.4h}, [x2]");
-  COMPARE(Ld1r(v17.V8H(), MemOperand(x3)), "ld1r {v17.8h}, [x3]");
-  COMPARE(Ld1r(v18.V2S(), MemOperand(x4)), "ld1r {v18.2s}, [x4]");
-  COMPARE(Ld1r(v19.V4S(), MemOperand(x5)), "ld1r {v19.4s}, [x5]");
-  COMPARE(Ld1r(v20.V2D(), MemOperand(sp)), "ld1r {v20.2d}, [sp]");
-  COMPARE(Ld1r(v21.V1D(), MemOperand(x30)), "ld1r {v21.1d}, [x30]");
+  COMPARE_MACRO(Ld1r(v14.V8B(), MemOperand(x0)), "ld1r {v14.8b}, [x0]");
+  COMPARE_MACRO(Ld1r(v15.V16B(), MemOperand(x1)), "ld1r {v15.16b}, [x1]");
+  COMPARE_MACRO(Ld1r(v16.V4H(), MemOperand(x2)), "ld1r {v16.4h}, [x2]");
+  COMPARE_MACRO(Ld1r(v17.V8H(), MemOperand(x3)), "ld1r {v17.8h}, [x3]");
+  COMPARE_MACRO(Ld1r(v18.V2S(), MemOperand(x4)), "ld1r {v18.2s}, [x4]");
+  COMPARE_MACRO(Ld1r(v19.V4S(), MemOperand(x5)), "ld1r {v19.4s}, [x5]");
+  COMPARE_MACRO(Ld1r(v20.V2D(), MemOperand(sp)), "ld1r {v20.2d}, [sp]");
+  COMPARE_MACRO(Ld1r(v21.V1D(), MemOperand(x30)), "ld1r {v21.1d}, [x30]");
 
-  COMPARE(Ld1r(v22.V8B(), MemOperand(x6, 1, PostIndex)),
-          "ld1r {v22.8b}, [x6], #1");
-  COMPARE(Ld1r(v23.V16B(), MemOperand(x7, x16, PostIndex)),
-          "ld1r {v23.16b}, [x7], x16");
-  COMPARE(Ld1r(v24.V4H(), MemOperand(x8, x17, PostIndex)),
-          "ld1r {v24.4h}, [x8], x17");
-  COMPARE(Ld1r(v25.V8H(), MemOperand(x9, 2, PostIndex)),
-          "ld1r {v25.8h}, [x9], #2");
-  COMPARE(Ld1r(v26.V2S(), MemOperand(x10, 4, PostIndex)),
-          "ld1r {v26.2s}, [x10], #4");
-  COMPARE(Ld1r(v27.V4S(), MemOperand(x11, x18, PostIndex)),
-          "ld1r {v27.4s}, [x11], x18");
-  COMPARE(Ld1r(v28.V2D(), MemOperand(x12, 8, PostIndex)),
-          "ld1r {v28.2d}, [x12], #8");
-  COMPARE(Ld1r(v29.V1D(), MemOperand(x13, 8, PostIndex)),
-          "ld1r {v29.1d}, [x13], #8");
+  COMPARE_MACRO(Ld1r(v22.V8B(), MemOperand(x6, 1, PostIndex)),
+                "ld1r {v22.8b}, [x6], #1");
+  COMPARE_MACRO(Ld1r(v23.V16B(), MemOperand(x7, x16, PostIndex)),
+                "ld1r {v23.16b}, [x7], x16");
+  COMPARE_MACRO(Ld1r(v24.V4H(), MemOperand(x8, x17, PostIndex)),
+                "ld1r {v24.4h}, [x8], x17");
+  COMPARE_MACRO(Ld1r(v25.V8H(), MemOperand(x9, 2, PostIndex)),
+                "ld1r {v25.8h}, [x9], #2");
+  COMPARE_MACRO(Ld1r(v26.V2S(), MemOperand(x10, 4, PostIndex)),
+                "ld1r {v26.2s}, [x10], #4");
+  COMPARE_MACRO(Ld1r(v27.V4S(), MemOperand(x11, x18, PostIndex)),
+                "ld1r {v27.4s}, [x11], x18");
+  COMPARE_MACRO(Ld1r(v28.V2D(), MemOperand(x12, 8, PostIndex)),
+                "ld1r {v28.2d}, [x12], #8");
+  COMPARE_MACRO(Ld1r(v29.V1D(), MemOperand(x13, 8, PostIndex)),
+                "ld1r {v29.1d}, [x13], #8");
 
-  COMPARE(Ld2r(v14.V8B(),  v15.V8B(),  MemOperand(x0)),
-          "ld2r {v14.8b, v15.8b}, [x0]");
-  COMPARE(Ld2r(v15.V16B(), v16.V16B(), MemOperand(x1)),
-          "ld2r {v15.16b, v16.16b}, [x1]");
-  COMPARE(Ld2r(v16.V4H(),  v17.V4H(),  MemOperand(x2)),
-          "ld2r {v16.4h, v17.4h}, [x2]");
-  COMPARE(Ld2r(v17.V8H(),  v18.V8H(),  MemOperand(x3)),
-          "ld2r {v17.8h, v18.8h}, [x3]");
-  COMPARE(Ld2r(v18.V2S(),  v19.V2S(),  MemOperand(x4)),
-          "ld2r {v18.2s, v19.2s}, [x4]");
-  COMPARE(Ld2r(v19.V4S(),  v20.V4S(),  MemOperand(x5)),
-          "ld2r {v19.4s, v20.4s}, [x5]");
-  COMPARE(Ld2r(v20.V2D(),  v21.V2D(),  MemOperand(sp)),
-          "ld2r {v20.2d, v21.2d}, [sp]");
-  COMPARE(Ld2r(v21.V8B(),  v22.V8B(),  MemOperand(x6, 2, PostIndex)),
-          "ld2r {v21.8b, v22.8b}, [x6], #2");
-  COMPARE(Ld2r(v22.V16B(), v23.V16B(), MemOperand(x7, x16, PostIndex)),
-          "ld2r {v22.16b, v23.16b}, [x7], x16");
-  COMPARE(Ld2r(v23.V4H(),  v24.V4H(),  MemOperand(x8, x17, PostIndex)),
-          "ld2r {v23.4h, v24.4h}, [x8], x17");
-  COMPARE(Ld2r(v24.V8H(),  v25.V8H(),  MemOperand(x9, 4, PostIndex)),
-          "ld2r {v24.8h, v25.8h}, [x9], #4");
-  COMPARE(Ld2r(v25.V2S(),  v26.V2S(),  MemOperand(x10, 8, PostIndex)),
-          "ld2r {v25.2s, v26.2s}, [x10], #8");
-  COMPARE(Ld2r(v26.V4S(),  v27.V4S(),  MemOperand(x11, x18, PostIndex)),
-          "ld2r {v26.4s, v27.4s}, [x11], x18");
-  COMPARE(Ld2r(v27.V2D(),  v28.V2D(),  MemOperand(x12, 16, PostIndex)),
-          "ld2r {v27.2d, v28.2d}, [x12], #16");
+  COMPARE_MACRO(Ld2r(v14.V8B(), v15.V8B(), MemOperand(x0)),
+                "ld2r {v14.8b, v15.8b}, [x0]");
+  COMPARE_MACRO(Ld2r(v15.V16B(), v16.V16B(), MemOperand(x1)),
+                "ld2r {v15.16b, v16.16b}, [x1]");
+  COMPARE_MACRO(Ld2r(v16.V4H(), v17.V4H(), MemOperand(x2)),
+                "ld2r {v16.4h, v17.4h}, [x2]");
+  COMPARE_MACRO(Ld2r(v17.V8H(), v18.V8H(), MemOperand(x3)),
+                "ld2r {v17.8h, v18.8h}, [x3]");
+  COMPARE_MACRO(Ld2r(v18.V2S(), v19.V2S(), MemOperand(x4)),
+                "ld2r {v18.2s, v19.2s}, [x4]");
+  COMPARE_MACRO(Ld2r(v19.V4S(), v20.V4S(), MemOperand(x5)),
+                "ld2r {v19.4s, v20.4s}, [x5]");
+  COMPARE_MACRO(Ld2r(v20.V2D(), v21.V2D(), MemOperand(sp)),
+                "ld2r {v20.2d, v21.2d}, [sp]");
+  COMPARE_MACRO(Ld2r(v21.V8B(), v22.V8B(), MemOperand(x6, 2, PostIndex)),
+                "ld2r {v21.8b, v22.8b}, [x6], #2");
+  COMPARE_MACRO(Ld2r(v22.V16B(), v23.V16B(), MemOperand(x7, x16, PostIndex)),
+                "ld2r {v22.16b, v23.16b}, [x7], x16");
+  COMPARE_MACRO(Ld2r(v23.V4H(), v24.V4H(), MemOperand(x8, x17, PostIndex)),
+                "ld2r {v23.4h, v24.4h}, [x8], x17");
+  COMPARE_MACRO(Ld2r(v24.V8H(), v25.V8H(), MemOperand(x9, 4, PostIndex)),
+                "ld2r {v24.8h, v25.8h}, [x9], #4");
+  COMPARE_MACRO(Ld2r(v25.V2S(), v26.V2S(), MemOperand(x10, 8, PostIndex)),
+                "ld2r {v25.2s, v26.2s}, [x10], #8");
+  COMPARE_MACRO(Ld2r(v26.V4S(), v27.V4S(), MemOperand(x11, x18, PostIndex)),
+                "ld2r {v26.4s, v27.4s}, [x11], x18");
+  COMPARE_MACRO(Ld2r(v27.V2D(), v28.V2D(), MemOperand(x12, 16, PostIndex)),
+                "ld2r {v27.2d, v28.2d}, [x12], #16");
 
-  COMPARE(Ld3r(v14.V8B(),  v15.V8B(),  v16.V8B(),
-               MemOperand(x0)),
-          "ld3r {v14.8b, v15.8b, v16.8b}, [x0]");
-  COMPARE(Ld3r(v15.V16B(), v16.V16B(), v17.V16B(),
-               MemOperand(x1)),
-          "ld3r {v15.16b, v16.16b, v17.16b}, [x1]");
-  COMPARE(Ld3r(v16.V4H(),  v17.V4H(),  v18.V4H(),
-               MemOperand(x2)),
-          "ld3r {v16.4h, v17.4h, v18.4h}, [x2]");
-  COMPARE(Ld3r(v17.V8H(),  v18.V8H(),  v19.V8H(),
-               MemOperand(x3)),
-          "ld3r {v17.8h, v18.8h, v19.8h}, [x3]");
-  COMPARE(Ld3r(v18.V2S(),  v19.V2S(),  v20.V2S(),
-               MemOperand(x4)),
-          "ld3r {v18.2s, v19.2s, v20.2s}, [x4]");
-  COMPARE(Ld3r(v19.V4S(),  v20.V4S(),  v21.V4S(),
-               MemOperand(x5)),
-          "ld3r {v19.4s, v20.4s, v21.4s}, [x5]");
-  COMPARE(Ld3r(v20.V2D(),  v21.V2D(),  v22.V2D(),
-               MemOperand(sp)),
-          "ld3r {v20.2d, v21.2d, v22.2d}, [sp]");
-  COMPARE(Ld3r(v21.V8B(),  v22.V8B(),  v23.V8B(),
-               MemOperand(x6, 3, PostIndex)),
-          "ld3r {v21.8b, v22.8b, v23.8b}, [x6], #3");
-  COMPARE(Ld3r(v22.V16B(), v23.V16B(), v24.V16B(),
-               MemOperand(x7, x16, PostIndex)),
-          "ld3r {v22.16b, v23.16b, v24.16b}, [x7], x16");
-  COMPARE(Ld3r(v23.V4H(),  v24.V4H(),  v25.V4H(),
-               MemOperand(x8, x17, PostIndex)),
-          "ld3r {v23.4h, v24.4h, v25.4h}, [x8], x17");
-  COMPARE(Ld3r(v24.V8H(),  v25.V8H(),  v26.V8H(),
-               MemOperand(x9, 6, PostIndex)),
-          "ld3r {v24.8h, v25.8h, v26.8h}, [x9], #6");
-  COMPARE(Ld3r(v25.V2S(),  v26.V2S(),  v27.V2S(),
-               MemOperand(x10, 12, PostIndex)),
-          "ld3r {v25.2s, v26.2s, v27.2s}, [x10], #12");
-  COMPARE(Ld3r(v26.V4S(),  v27.V4S(),  v28.V4S(),
-               MemOperand(x11, x18, PostIndex)),
-          "ld3r {v26.4s, v27.4s, v28.4s}, [x11], x18");
-  COMPARE(Ld3r(v27.V2D(),  v28.V2D(),  v29.V2D(),
-               MemOperand(x12, 24, PostIndex)),
-          "ld3r {v27.2d, v28.2d, v29.2d}, [x12], #24");
+  COMPARE_MACRO(Ld3r(v14.V8B(), v15.V8B(), v16.V8B(), MemOperand(x0)),
+                "ld3r {v14.8b, v15.8b, v16.8b}, [x0]");
+  COMPARE_MACRO(Ld3r(v15.V16B(), v16.V16B(), v17.V16B(), MemOperand(x1)),
+                "ld3r {v15.16b, v16.16b, v17.16b}, [x1]");
+  COMPARE_MACRO(Ld3r(v16.V4H(), v17.V4H(), v18.V4H(), MemOperand(x2)),
+                "ld3r {v16.4h, v17.4h, v18.4h}, [x2]");
+  COMPARE_MACRO(Ld3r(v17.V8H(), v18.V8H(), v19.V8H(), MemOperand(x3)),
+                "ld3r {v17.8h, v18.8h, v19.8h}, [x3]");
+  COMPARE_MACRO(Ld3r(v18.V2S(), v19.V2S(), v20.V2S(), MemOperand(x4)),
+                "ld3r {v18.2s, v19.2s, v20.2s}, [x4]");
+  COMPARE_MACRO(Ld3r(v19.V4S(), v20.V4S(), v21.V4S(), MemOperand(x5)),
+                "ld3r {v19.4s, v20.4s, v21.4s}, [x5]");
+  COMPARE_MACRO(Ld3r(v20.V2D(), v21.V2D(), v22.V2D(), MemOperand(sp)),
+                "ld3r {v20.2d, v21.2d, v22.2d}, [sp]");
+  COMPARE_MACRO(Ld3r(v21.V8B(),
+                     v22.V8B(),
+                     v23.V8B(),
+                     MemOperand(x6, 3, PostIndex)),
+                "ld3r {v21.8b, v22.8b, v23.8b}, [x6], #3");
+  COMPARE_MACRO(Ld3r(v22.V16B(),
+                     v23.V16B(),
+                     v24.V16B(),
+                     MemOperand(x7, x16, PostIndex)),
+                "ld3r {v22.16b, v23.16b, v24.16b}, [x7], x16");
+  COMPARE_MACRO(Ld3r(v23.V4H(),
+                     v24.V4H(),
+                     v25.V4H(),
+                     MemOperand(x8, x17, PostIndex)),
+                "ld3r {v23.4h, v24.4h, v25.4h}, [x8], x17");
+  COMPARE_MACRO(Ld3r(v24.V8H(),
+                     v25.V8H(),
+                     v26.V8H(),
+                     MemOperand(x9, 6, PostIndex)),
+                "ld3r {v24.8h, v25.8h, v26.8h}, [x9], #6");
+  COMPARE_MACRO(Ld3r(v25.V2S(),
+                     v26.V2S(),
+                     v27.V2S(),
+                     MemOperand(x10, 12, PostIndex)),
+                "ld3r {v25.2s, v26.2s, v27.2s}, [x10], #12");
+  COMPARE_MACRO(Ld3r(v26.V4S(),
+                     v27.V4S(),
+                     v28.V4S(),
+                     MemOperand(x11, x18, PostIndex)),
+                "ld3r {v26.4s, v27.4s, v28.4s}, [x11], x18");
+  COMPARE_MACRO(Ld3r(v27.V2D(),
+                     v28.V2D(),
+                     v29.V2D(),
+                     MemOperand(x12, 24, PostIndex)),
+                "ld3r {v27.2d, v28.2d, v29.2d}, [x12], #24");
 
-  COMPARE(Ld4r(v14.V8B(),  v15.V8B(),  v16.V8B(),  v17.V8B(),
-               MemOperand(x0)),
-          "ld4r {v14.8b, v15.8b, v16.8b, v17.8b}, [x0]");
-  COMPARE(Ld4r(v15.V16B(), v16.V16B(), v17.V16B(), v18.V16B(),
-               MemOperand(x1)),
-          "ld4r {v15.16b, v16.16b, v17.16b, v18.16b}, [x1]");
-  COMPARE(Ld4r(v16.V4H(),  v17.V4H(),  v18.V4H(),  v19.V4H(),
-               MemOperand(x2)),
-          "ld4r {v16.4h, v17.4h, v18.4h, v19.4h}, [x2]");
-  COMPARE(Ld4r(v17.V8H(),  v18.V8H(),  v19.V8H(),  v20.V8H(),
-               MemOperand(x3)),
-          "ld4r {v17.8h, v18.8h, v19.8h, v20.8h}, [x3]");
-  COMPARE(Ld4r(v18.V2S(),  v19.V2S(),  v20.V2S(),  v21.V2S(),
-               MemOperand(x4)),
-          "ld4r {v18.2s, v19.2s, v20.2s, v21.2s}, [x4]");
-  COMPARE(Ld4r(v19.V4S(),  v20.V4S(),  v21.V4S(),  v22.V4S(),
-               MemOperand(x5)),
-          "ld4r {v19.4s, v20.4s, v21.4s, v22.4s}, [x5]");
-  COMPARE(Ld4r(v20.V2D(),  v21.V2D(),  v22.V2D(),  v23.V2D(),
-               MemOperand(sp)),
-          "ld4r {v20.2d, v21.2d, v22.2d, v23.2d}, [sp]");
-  COMPARE(Ld4r(v21.V8B(),  v22.V8B(),  v23.V8B(),  v24.V8B(),
-               MemOperand(x6, 4, PostIndex)),
-          "ld4r {v21.8b, v22.8b, v23.8b, v24.8b}, [x6], #4");
-  COMPARE(Ld4r(v22.V16B(), v23.V16B(), v24.V16B(), v25.V16B(),
-               MemOperand(x7, x16, PostIndex)),
-          "ld4r {v22.16b, v23.16b, v24.16b, v25.16b}, [x7], x16");
-  COMPARE(Ld4r(v23.V4H(),  v24.V4H(),  v25.V4H(),  v26.V4H(),
-               MemOperand(x8, x17, PostIndex)),
-          "ld4r {v23.4h, v24.4h, v25.4h, v26.4h}, [x8], x17");
-  COMPARE(Ld4r(v24.V8H(),  v25.V8H(),  v26.V8H(),  v27.V8H(),
-               MemOperand(x9, 8, PostIndex)),
-          "ld4r {v24.8h, v25.8h, v26.8h, v27.8h}, [x9], #8");
-  COMPARE(Ld4r(v25.V2S(),  v26.V2S(),  v27.V2S(),  v28.V2S(),
-               MemOperand(x10, 16, PostIndex)),
-          "ld4r {v25.2s, v26.2s, v27.2s, v28.2s}, [x10], #16");
-  COMPARE(Ld4r(v26.V4S(),  v27.V4S(),  v28.V4S(),  v29.V4S(),
-               MemOperand(x11, x18, PostIndex)),
-          "ld4r {v26.4s, v27.4s, v28.4s, v29.4s}, [x11], x18");
-  COMPARE(Ld4r(v27.V2D(),  v28.V2D(),  v29.V2D(),  v30.V2D(),
-               MemOperand(x12, 32, PostIndex)),
-          "ld4r {v27.2d, v28.2d, v29.2d, v30.2d}, [x12], #32");
+  COMPARE_MACRO(Ld4r(v14.V8B(),
+                     v15.V8B(),
+                     v16.V8B(),
+                     v17.V8B(),
+                     MemOperand(x0)),
+                "ld4r {v14.8b, v15.8b, v16.8b, v17.8b}, [x0]");
+  COMPARE_MACRO(Ld4r(v15.V16B(),
+                     v16.V16B(),
+                     v17.V16B(),
+                     v18.V16B(),
+                     MemOperand(x1)),
+                "ld4r {v15.16b, v16.16b, v17.16b, v18.16b}, [x1]");
+  COMPARE_MACRO(Ld4r(v16.V4H(),
+                     v17.V4H(),
+                     v18.V4H(),
+                     v19.V4H(),
+                     MemOperand(x2)),
+                "ld4r {v16.4h, v17.4h, v18.4h, v19.4h}, [x2]");
+  COMPARE_MACRO(Ld4r(v17.V8H(),
+                     v18.V8H(),
+                     v19.V8H(),
+                     v20.V8H(),
+                     MemOperand(x3)),
+                "ld4r {v17.8h, v18.8h, v19.8h, v20.8h}, [x3]");
+  COMPARE_MACRO(Ld4r(v18.V2S(),
+                     v19.V2S(),
+                     v20.V2S(),
+                     v21.V2S(),
+                     MemOperand(x4)),
+                "ld4r {v18.2s, v19.2s, v20.2s, v21.2s}, [x4]");
+  COMPARE_MACRO(Ld4r(v19.V4S(),
+                     v20.V4S(),
+                     v21.V4S(),
+                     v22.V4S(),
+                     MemOperand(x5)),
+                "ld4r {v19.4s, v20.4s, v21.4s, v22.4s}, [x5]");
+  COMPARE_MACRO(Ld4r(v20.V2D(),
+                     v21.V2D(),
+                     v22.V2D(),
+                     v23.V2D(),
+                     MemOperand(sp)),
+                "ld4r {v20.2d, v21.2d, v22.2d, v23.2d}, [sp]");
+  COMPARE_MACRO(Ld4r(v21.V8B(),
+                     v22.V8B(),
+                     v23.V8B(),
+                     v24.V8B(),
+                     MemOperand(x6, 4, PostIndex)),
+                "ld4r {v21.8b, v22.8b, v23.8b, v24.8b}, [x6], #4");
+  COMPARE_MACRO(Ld4r(v22.V16B(),
+                     v23.V16B(),
+                     v24.V16B(),
+                     v25.V16B(),
+                     MemOperand(x7, x16, PostIndex)),
+                "ld4r {v22.16b, v23.16b, v24.16b, v25.16b}, [x7], x16");
+  COMPARE_MACRO(Ld4r(v23.V4H(),
+                     v24.V4H(),
+                     v25.V4H(),
+                     v26.V4H(),
+                     MemOperand(x8, x17, PostIndex)),
+                "ld4r {v23.4h, v24.4h, v25.4h, v26.4h}, [x8], x17");
+  COMPARE_MACRO(Ld4r(v24.V8H(),
+                     v25.V8H(),
+                     v26.V8H(),
+                     v27.V8H(),
+                     MemOperand(x9, 8, PostIndex)),
+                "ld4r {v24.8h, v25.8h, v26.8h, v27.8h}, [x9], #8");
+  COMPARE_MACRO(Ld4r(v25.V2S(),
+                     v26.V2S(),
+                     v27.V2S(),
+                     v28.V2S(),
+                     MemOperand(x10, 16, PostIndex)),
+                "ld4r {v25.2s, v26.2s, v27.2s, v28.2s}, [x10], #16");
+  COMPARE_MACRO(Ld4r(v26.V4S(),
+                     v27.V4S(),
+                     v28.V4S(),
+                     v29.V4S(),
+                     MemOperand(x11, x18, PostIndex)),
+                "ld4r {v26.4s, v27.4s, v28.4s, v29.4s}, [x11], x18");
+  COMPARE_MACRO(Ld4r(v27.V2D(),
+                     v28.V2D(),
+                     v29.V2D(),
+                     v30.V2D(),
+                     MemOperand(x12, 32, PostIndex)),
+                "ld4r {v27.2d, v28.2d, v29.2d, v30.2d}, [x12], #32");
 
   CLEANUP();
 }
@@ -4005,1169 +4238,1350 @@
 
 
 TEST(neon_3same) {
-  SETUP_MACRO();
+  SETUP();
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Cmeq(v0.M, v1.M, v2.M), "cmeq v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Cmeq(v0.M, v1.M, v2.M), "cmeq v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Cmge(v0.M, v1.M, v2.M), "cmge v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Cmge(v0.M, v1.M, v2.M), "cmge v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Cmgt(v0.M, v1.M, v2.M), "cmgt v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Cmgt(v0.M, v1.M, v2.M), "cmgt v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Cmhi(v0.M, v1.M, v2.M), "cmhi v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Cmhi(v0.M, v1.M, v2.M), "cmhi v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Cmhs(v0.M, v1.M, v2.M), "cmhs v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Cmhs(v0.M, v1.M, v2.M), "cmhs v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Cmtst(v0.M, v1.M, v2.M), "cmtst v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Cmtst(v0.M, v1.M, v2.M), "cmtst v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Add(v0.M, v1.M, v2.M), "add v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Add(v0.M, v1.M, v2.M), "add v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Sub(v3.M, v4.M, v5.M), "sub v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Sub(v3.M, v4.M, v5.M), "sub v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Sabd(v3.M, v4.M, v5.M), "sabd v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Sabd(v3.M, v4.M, v5.M), "sabd v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Uabd(v3.M, v4.M, v5.M), "uabd v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Uabd(v3.M, v4.M, v5.M), "uabd v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Saba(v3.M, v4.M, v5.M), "saba v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Saba(v3.M, v4.M, v5.M), "saba v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Uaba(v3.M, v4.M, v5.M), "uaba v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Uaba(v3.M, v4.M, v5.M), "uaba v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Smax(v3.M, v4.M, v5.M), "smax v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Smax(v3.M, v4.M, v5.M), "smax v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Smin(v3.M, v4.M, v5.M), "smin v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Smin(v3.M, v4.M, v5.M), "smin v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Umax(v3.M, v4.M, v5.M), "umax v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Umax(v3.M, v4.M, v5.M), "umax v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Umin(v3.M, v4.M, v5.M), "umin v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Umin(v3.M, v4.M, v5.M), "umin v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Smaxp(v3.M, v4.M, v5.M), "smaxp v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Smaxp(v3.M, v4.M, v5.M), "smaxp v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Sminp(v3.M, v4.M, v5.M), "sminp v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Sminp(v3.M, v4.M, v5.M), "sminp v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Umaxp(v3.M, v4.M, v5.M), "umaxp v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Umaxp(v3.M, v4.M, v5.M), "umaxp v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Uminp(v3.M, v4.M, v5.M), "uminp v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Uminp(v3.M, v4.M, v5.M), "uminp v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Uqadd(v6.M, v7.M, v8.M), "uqadd v6." S ", v7." S ", v8." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Uqadd(v6.M, v7.M, v8.M), "uqadd v6." S ", v7." S ", v8." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Sqadd(v9.M, v10.M, v11.M), "sqadd v9." S ", v10." S ", v11." S);
+#define DISASM_INST(M, S)                  \
+  COMPARE_MACRO(Sqadd(v9.M, v10.M, v11.M), \
+                "sqadd v9." S ", v10." S   \
+                ", "                       \
+                "v11." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Uqsub(v6.M, v7.M, v8.M), "uqsub v6." S ", v7." S ", v8." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Uqsub(v6.M, v7.M, v8.M), "uqsub v6." S ", v7." S ", v8." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Sqsub(v9.M, v10.M, v11.M), "sqsub v9." S ", v10." S ", v11." S);
+#define DISASM_INST(M, S)                  \
+  COMPARE_MACRO(Sqsub(v9.M, v10.M, v11.M), \
+                "sqsub v9." S ", v10." S   \
+                ", "                       \
+                "v11." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Sshl(v12.M, v13.M, v14.M), "sshl v12." S ", v13." S ", v14." S);
+#define DISASM_INST(M, S)                  \
+  COMPARE_MACRO(Sshl(v12.M, v13.M, v14.M), \
+                "sshl v12." S ", v13." S   \
+                ", "                       \
+                "v14." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Ushl(v15.M, v16.M, v17.M), "ushl v15." S ", v16." S ", v17." S);
+#define DISASM_INST(M, S)                  \
+  COMPARE_MACRO(Ushl(v15.M, v16.M, v17.M), \
+                "ushl v15." S ", v16." S   \
+                ", "                       \
+                "v17." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Sqshl(v18.M, v19.M, v20.M), "sqshl v18." S ", v19." S ", v20." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Sqshl(v18.M, v19.M, v20.M), \
+                "sqshl v18." S ", v19." S ", v20." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Uqshl(v21.M, v22.M, v23.M), "uqshl v21." S ", v22." S ", v23." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Uqshl(v21.M, v22.M, v23.M), \
+                "uqshl v21." S ", v22." S ", v23." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Srshl(v24.M, v25.M, v26.M), "srshl v24." S ", v25." S ", v26." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Srshl(v24.M, v25.M, v26.M), \
+                "srshl v24." S ", v25." S ", v26." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Urshl(v27.M, v28.M, v29.M), "urshl v27." S ", v28." S ", v29." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Urshl(v27.M, v28.M, v29.M), \
+                "urshl v27." S ", v28." S ", v29." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Sqrshl(v30.M, v31.M, v0.M), "sqrshl v30." S ", v31." S ", v0." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Sqrshl(v30.M, v31.M, v0.M), \
+                "sqrshl v30." S ", v31." S ", v0." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Uqrshl(v1.M, v2.M, v3.M), "uqrshl v1." S ", v2." S ", v3." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Uqrshl(v1.M, v2.M, v3.M), "uqrshl v1." S ", v2." S ", v3." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Shadd(v4.M, v5.M, v6.M), "shadd v4." S ", v5." S ", v6." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Shadd(v4.M, v5.M, v6.M), "shadd v4." S ", v5." S ", v6." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Uhadd(v7.M, v8.M, v9.M), "uhadd v7." S ", v8." S ", v9." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Uhadd(v7.M, v8.M, v9.M), "uhadd v7." S ", v8." S ", v9." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Srhadd(v10.M, v11.M, v12.M), "srhadd v10." S ", v11." S ", v12." S);
+#define DISASM_INST(M, S)                    \
+  COMPARE_MACRO(Srhadd(v10.M, v11.M, v12.M), \
+                "srhadd v10." S ", v11." S ", v12." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Urhadd(v13.M, v14.M, v15.M), "urhadd v13." S ", v14." S ", v15." S);
+#define DISASM_INST(M, S)                    \
+  COMPARE_MACRO(Urhadd(v13.M, v14.M, v15.M), \
+                "urhadd v13." S ", v14." S ", v15." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Shsub(v16.M, v17.M, v18.M), "shsub v16." S ", v17." S ", v18." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Shsub(v16.M, v17.M, v18.M), \
+                "shsub v16." S ", v17." S ", v18." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Uhsub(v19.M, v20.M, v21.M), "uhsub v19." S ", v20." S ", v21." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Uhsub(v19.M, v20.M, v21.M), \
+                "uhsub v19." S ", v20." S ", v21." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Addp(v19.M, v20.M, v21.M), "addp v19." S ", v20." S ", v21." S);
+#define DISASM_INST(M, S)                  \
+  COMPARE_MACRO(Addp(v19.M, v20.M, v21.M), \
+                "addp v19." S ", v20." S   \
+                ", "                       \
+                "v21." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Mla(v19.M, v20.M, v21.M), "mla v19." S ", v20." S ", v21." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Mla(v19.M, v20.M, v21.M), "mla v19." S ", v20." S ", v21." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Mls(v19.M, v20.M, v21.M), "mls v19." S ", v20." S ", v21." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Mls(v19.M, v20.M, v21.M), "mls v19." S ", v20." S ", v21." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Mul(v19.M, v20.M, v21.M), "mul v19." S ", v20." S ", v21." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Mul(v19.M, v20.M, v21.M), "mul v19." S ", v20." S ", v21." S);
   NEON_FORMAT_LIST_BHS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Sqdmulh(v1.M, v2.M, v3.M), "sqdmulh v1." S ", v2." S ", v3." S);
+#define DISASM_INST(M, S)                  \
+  COMPARE_MACRO(Sqdmulh(v1.M, v2.M, v3.M), \
+                "sqdmulh v1." S ", v2." S  \
+                ", "                       \
+                "v3." S);
   NEON_FORMAT_LIST_HS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Sqrdmulh(v1.M, v2.M, v3.M), "sqrdmulh v1." S ", v2." S ", v3." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Sqrdmulh(v1.M, v2.M, v3.M), \
+                "sqrdmulh v1." S ", v2." S ", v3." S);
   NEON_FORMAT_LIST_HS(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(And(v6.V8B(), v7.V8B(), v8.V8B()),    "and v6.8b, v7.8b, v8.8b");
-  COMPARE(And(v6.V16B(), v7.V16B(), v8.V16B()), "and v6.16b, v7.16b, v8.16b");
+  COMPARE_MACRO(And(v6.V8B(), v7.V8B(), v8.V8B()), "and v6.8b, v7.8b, v8.8b");
+  COMPARE_MACRO(And(v6.V16B(), v7.V16B(), v8.V16B()),
+                "and v6.16b, v7.16b, v8.16b");
 
-  COMPARE(Bic(v6.V8B(), v7.V8B(), v8.V8B()),    "bic v6.8b, v7.8b, v8.8b");
-  COMPARE(Bic(v6.V16B(), v7.V16B(), v8.V16B()), "bic v6.16b, v7.16b, v8.16b");
+  COMPARE_MACRO(Bic(v6.V8B(), v7.V8B(), v8.V8B()), "bic v6.8b, v7.8b, v8.8b");
+  COMPARE_MACRO(Bic(v6.V16B(), v7.V16B(), v8.V16B()),
+                "bic v6.16b, v7.16b, v8.16b");
 
-  COMPARE(Orr(v6.V8B(), v7.V8B(), v8.V8B()),    "orr v6.8b, v7.8b, v8.8b");
-  COMPARE(Orr(v6.V16B(), v7.V16B(), v8.V16B()), "orr v6.16b, v7.16b, v8.16b");
+  COMPARE_MACRO(Orr(v6.V8B(), v7.V8B(), v8.V8B()), "orr v6.8b, v7.8b, v8.8b");
+  COMPARE_MACRO(Orr(v6.V16B(), v7.V16B(), v8.V16B()),
+                "orr v6.16b, v7.16b, v8.16b");
 
-  COMPARE(Orr(v6.V8B(), v7.V8B(), v7.V8B()),    "mov v6.8b, v7.8b");
-  COMPARE(Orr(v6.V16B(), v7.V16B(), v7.V16B()), "mov v6.16b, v7.16b");
+  COMPARE_MACRO(Orr(v6.V8B(), v7.V8B(), v7.V8B()), "mov v6.8b, v7.8b");
+  COMPARE_MACRO(Orr(v6.V16B(), v7.V16B(), v7.V16B()), "mov v6.16b, v7.16b");
 
-  COMPARE(Mov(v6.V8B(), v8.V8B()),              "mov v6.8b, v8.8b");
-  COMPARE(Mov(v6.V16B(), v8.V16B()),            "mov v6.16b, v8.16b");
+  COMPARE_MACRO(Mov(v6.V8B(), v8.V8B()), "mov v6.8b, v8.8b");
+  COMPARE_MACRO(Mov(v6.V16B(), v8.V16B()), "mov v6.16b, v8.16b");
 
-  COMPARE(Orn(v6.V8B(), v7.V8B(), v8.V8B()),    "orn v6.8b, v7.8b, v8.8b");
-  COMPARE(Orn(v6.V16B(), v7.V16B(), v8.V16B()), "orn v6.16b, v7.16b, v8.16b");
+  COMPARE_MACRO(Orn(v6.V8B(), v7.V8B(), v8.V8B()), "orn v6.8b, v7.8b, v8.8b");
+  COMPARE_MACRO(Orn(v6.V16B(), v7.V16B(), v8.V16B()),
+                "orn v6.16b, v7.16b, v8.16b");
 
-  COMPARE(Eor(v6.V8B(), v7.V8B(), v8.V8B()),    "eor v6.8b, v7.8b, v8.8b");
-  COMPARE(Eor(v6.V16B(), v7.V16B(), v8.V16B()), "eor v6.16b, v7.16b, v8.16b");
+  COMPARE_MACRO(Eor(v6.V8B(), v7.V8B(), v8.V8B()), "eor v6.8b, v7.8b, v8.8b");
+  COMPARE_MACRO(Eor(v6.V16B(), v7.V16B(), v8.V16B()),
+                "eor v6.16b, v7.16b, v8.16b");
 
-  COMPARE(Bif(v6.V8B(), v7.V8B(), v8.V8B()),    "bif v6.8b, v7.8b, v8.8b");
-  COMPARE(Bif(v6.V16B(), v7.V16B(), v8.V16B()), "bif v6.16b, v7.16b, v8.16b");
+  COMPARE_MACRO(Bif(v6.V8B(), v7.V8B(), v8.V8B()), "bif v6.8b, v7.8b, v8.8b");
+  COMPARE_MACRO(Bif(v6.V16B(), v7.V16B(), v8.V16B()),
+                "bif v6.16b, v7.16b, v8.16b");
 
-  COMPARE(Bit(v6.V8B(), v7.V8B(), v8.V8B()),    "bit v6.8b, v7.8b, v8.8b");
-  COMPARE(Bit(v6.V16B(), v7.V16B(), v8.V16B()), "bit v6.16b, v7.16b, v8.16b");
+  COMPARE_MACRO(Bit(v6.V8B(), v7.V8B(), v8.V8B()), "bit v6.8b, v7.8b, v8.8b");
+  COMPARE_MACRO(Bit(v6.V16B(), v7.V16B(), v8.V16B()),
+                "bit v6.16b, v7.16b, v8.16b");
 
-  COMPARE(Bsl(v6.V8B(), v7.V8B(), v8.V8B()),    "bsl v6.8b, v7.8b, v8.8b");
-  COMPARE(Bsl(v6.V16B(), v7.V16B(), v8.V16B()), "bsl v6.16b, v7.16b, v8.16b");
+  COMPARE_MACRO(Bsl(v6.V8B(), v7.V8B(), v8.V8B()), "bsl v6.8b, v7.8b, v8.8b");
+  COMPARE_MACRO(Bsl(v6.V16B(), v7.V16B(), v8.V16B()),
+                "bsl v6.16b, v7.16b, v8.16b");
 
-  COMPARE(Pmul(v6.V8B(), v7.V8B(), v8.V8B()),    "pmul v6.8b, v7.8b, v8.8b");
-  COMPARE(Pmul(v6.V16B(), v7.V16B(), v8.V16B()), "pmul v6.16b, v7.16b, v8.16b");
+  COMPARE_MACRO(Pmul(v6.V8B(), v7.V8B(), v8.V8B()), "pmul v6.8b, v7.8b, v8.8b");
+  COMPARE_MACRO(Pmul(v6.V16B(), v7.V16B(), v8.V16B()),
+                "pmul v6.16b, v7.16b, v8.16b");
 
   CLEANUP();
 }
 
 
-#define NEON_FORMAT_LIST_FP(V)  \
-  V(V2S(), "2s")                \
-  V(V4S(), "4s")                \
+#define NEON_FORMAT_LIST_FP(V) \
+  V(V2S(), "2s")               \
+  V(V4S(), "4s")               \
   V(V2D(), "2d")
 
 TEST(neon_fp_3same) {
-  SETUP_MACRO();
+  SETUP();
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fadd(v0.M, v1.M, v2.M), "fadd v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Fadd(v0.M, v1.M, v2.M), "fadd v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fsub(v3.M, v4.M, v5.M), "fsub v3." S ", v4." S ", v5." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Fsub(v3.M, v4.M, v5.M), "fsub v3." S ", v4." S ", v5." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fmul(v6.M, v7.M, v8.M), "fmul v6." S ", v7." S ", v8." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Fmul(v6.M, v7.M, v8.M), "fmul v6." S ", v7." S ", v8." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fdiv(v9.M, v10.M, v11.M), "fdiv v9." S ", v10." S ", v11." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Fdiv(v9.M, v10.M, v11.M), "fdiv v9." S ", v10." S ", v11." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fmin(v12.M, v13.M, v14.M), "fmin v12." S ", v13." S ", v14." S);
+#define DISASM_INST(M, S)                  \
+  COMPARE_MACRO(Fmin(v12.M, v13.M, v14.M), \
+                "fmin v12." S ", v13." S   \
+                ", "                       \
+                "v14." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fminnm(v15.M, v16.M, v17.M), "fminnm v15." S ", v16." S ", v17." S);
+#define DISASM_INST(M, S)                    \
+  COMPARE_MACRO(Fminnm(v15.M, v16.M, v17.M), \
+                "fminnm v15." S ", v16." S ", v17." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fmax(v18.M, v19.M, v20.M), "fmax v18." S ", v19." S ", v20." S);
+#define DISASM_INST(M, S)                  \
+  COMPARE_MACRO(Fmax(v18.M, v19.M, v20.M), \
+                "fmax v18." S ", v19." S   \
+                ", "                       \
+                "v20." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fmaxnm(v21.M, v22.M, v23.M), "fmaxnm v21." S ", v22." S ", v23." S);
+#define DISASM_INST(M, S)                    \
+  COMPARE_MACRO(Fmaxnm(v21.M, v22.M, v23.M), \
+                "fmaxnm v21." S ", v22." S ", v23." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Frecps(v24.M, v25.M, v26.M), "frecps v24." S ", v25." S ", v26." S);
+#define DISASM_INST(M, S)                    \
+  COMPARE_MACRO(Frecps(v24.M, v25.M, v26.M), \
+                "frecps v24." S ", v25." S ", v26." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Frsqrts(v27.M, v28.M, v29.M), "frsqrts v27." S ", v28." S ", v29." S);
+#define DISASM_INST(M, S)                     \
+  COMPARE_MACRO(Frsqrts(v27.M, v28.M, v29.M), \
+                "frsqrts v27." S ", v28." S ", v29." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fmulx(v30.M, v31.M, v0.M), "fmulx v30." S ", v31." S ", v0." S);
+#define DISASM_INST(M, S)                  \
+  COMPARE_MACRO(Fmulx(v30.M, v31.M, v0.M), \
+                "fmulx v30." S ", v31." S  \
+                ", "                       \
+                "v0." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fmla(v1.M, v2.M, v3.M), "fmla v1." S ", v2." S ", v3." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Fmla(v1.M, v2.M, v3.M), "fmla v1." S ", v2." S ", v3." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fmls(v4.M, v5.M, v6.M), "fmls v4." S ", v5." S ", v6." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Fmls(v4.M, v5.M, v6.M), "fmls v4." S ", v5." S ", v6." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fabd(v7.M, v8.M, v9.M), "fabd v7." S ", v8." S ", v9." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Fabd(v7.M, v8.M, v9.M), "fabd v7." S ", v8." S ", v9." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Faddp(v10.M, v11.M, v12.M), "faddp v10." S ", v11." S ", v12." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Faddp(v10.M, v11.M, v12.M), \
+                "faddp v10." S ", v11." S ", v12." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fmaxp(v13.M, v14.M, v15.M), "fmaxp v13." S ", v14." S ", v15." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Fmaxp(v13.M, v14.M, v15.M), \
+                "fmaxp v13." S ", v14." S ", v15." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fminp(v16.M, v17.M, v18.M), "fminp v16." S ", v17." S ", v18." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Fminp(v16.M, v17.M, v18.M), \
+                "fminp v16." S ", v17." S ", v18." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fmaxnmp(v19.M, v20.M, v21.M), "fmaxnmp v19." S ", v20." S ", v21." S);
+#define DISASM_INST(M, S)                     \
+  COMPARE_MACRO(Fmaxnmp(v19.M, v20.M, v21.M), \
+                "fmaxnmp v19." S ", v20." S ", v21." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fminnmp(v22.M, v23.M, v24.M), "fminnmp v22." S ", v23." S ", v24." S);
+#define DISASM_INST(M, S)                     \
+  COMPARE_MACRO(Fminnmp(v22.M, v23.M, v24.M), \
+                "fminnmp v22." S ", v23." S ", v24." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fcmeq(v25.M, v26.M, v27.M), "fcmeq v25." S ", v26." S ", v27." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Fcmeq(v25.M, v26.M, v27.M), \
+                "fcmeq v25." S ", v26." S ", v27." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fcmge(v25.M, v26.M, v27.M), "fcmge v25." S ", v26." S ", v27." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Fcmge(v25.M, v26.M, v27.M), \
+                "fcmge v25." S ", v26." S ", v27." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fcmgt(v25.M, v26.M, v27.M), "fcmgt v25." S ", v26." S ", v27." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Fcmgt(v25.M, v26.M, v27.M), \
+                "fcmgt v25." S ", v26." S ", v27." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Facge(v25.M, v26.M, v27.M), "facge v25." S ", v26." S ", v27." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Facge(v25.M, v26.M, v27.M), \
+                "facge v25." S ", v26." S ", v27." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Facgt(v25.M, v26.M, v27.M), "facgt v25." S ", v26." S ", v27." S);
+#define DISASM_INST(M, S)                   \
+  COMPARE_MACRO(Facgt(v25.M, v26.M, v27.M), \
+                "facgt v25." S ", v26." S ", v27." S);
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
   CLEANUP();
 }
 
 
-#define NEON_SCALAR_FORMAT_LIST(V)  \
-  V(B(), "b")                       \
-  V(H(), "h")                       \
-  V(S(), "s")                       \
+#define NEON_SCALAR_FORMAT_LIST(V) \
+  V(B(), "b")                      \
+  V(H(), "h")                      \
+  V(S(), "s")                      \
   V(D(), "d")
 
 TEST(neon_scalar_3same) {
-  SETUP_MACRO();
+  SETUP();
 
   // Instructions that only support D-sized scalar operations.
-  COMPARE(Add(v0.D(), v1.D(), v2.D()), "add d0, d1, d2");
-  COMPARE(Sub(v3.D(), v4.D(), v5.D()), "sub d3, d4, d5");
-  COMPARE(Cmeq(v0.D(), v1.D(), v2.D()), "cmeq d0, d1, d2");
-  COMPARE(Cmge(v3.D(), v4.D(), v5.D()), "cmge d3, d4, d5");
-  COMPARE(Cmgt(v6.D(), v7.D(), v8.D()), "cmgt d6, d7, d8");
-  COMPARE(Cmhi(v0.D(), v1.D(), v2.D()), "cmhi d0, d1, d2");
-  COMPARE(Cmhs(v3.D(), v4.D(), v5.D()), "cmhs d3, d4, d5");
-  COMPARE(Cmtst(v6.D(), v7.D(), v8.D()), "cmtst d6, d7, d8");
-  COMPARE(Ushl(v6.D(), v7.D(), v8.D()), "ushl d6, d7, d8");
-  COMPARE(Sshl(v6.D(), v7.D(), v8.D()), "sshl d6, d7, d8");
-  COMPARE(Urshl(v9.D(), v10.D(), v11.D()), "urshl d9, d10, d11");
-  COMPARE(Srshl(v9.D(), v10.D(), v11.D()), "srshl d9, d10, d11");
+  COMPARE_MACRO(Add(v0.D(), v1.D(), v2.D()), "add d0, d1, d2");
+  COMPARE_MACRO(Sub(v3.D(), v4.D(), v5.D()), "sub d3, d4, d5");
+  COMPARE_MACRO(Cmeq(v0.D(), v1.D(), v2.D()), "cmeq d0, d1, d2");
+  COMPARE_MACRO(Cmge(v3.D(), v4.D(), v5.D()), "cmge d3, d4, d5");
+  COMPARE_MACRO(Cmgt(v6.D(), v7.D(), v8.D()), "cmgt d6, d7, d8");
+  COMPARE_MACRO(Cmhi(v0.D(), v1.D(), v2.D()), "cmhi d0, d1, d2");
+  COMPARE_MACRO(Cmhs(v3.D(), v4.D(), v5.D()), "cmhs d3, d4, d5");
+  COMPARE_MACRO(Cmtst(v6.D(), v7.D(), v8.D()), "cmtst d6, d7, d8");
+  COMPARE_MACRO(Ushl(v6.D(), v7.D(), v8.D()), "ushl d6, d7, d8");
+  COMPARE_MACRO(Sshl(v6.D(), v7.D(), v8.D()), "sshl d6, d7, d8");
+  COMPARE_MACRO(Urshl(v9.D(), v10.D(), v11.D()), "urshl d9, d10, d11");
+  COMPARE_MACRO(Srshl(v9.D(), v10.D(), v11.D()), "srshl d9, d10, d11");
 
   // Instructions that support S and D-sized scalar operations.
-  COMPARE(Frecps(v12.S(), v13.S(), v14.S()), "frecps s12, s13, s14");
-  COMPARE(Frecps(v15.D(), v16.D(), v17.D()), "frecps d15, d16, d17");
-  COMPARE(Frsqrts(v18.S(), v19.S(), v20.S()), "frsqrts s18, s19, s20");
-  COMPARE(Frsqrts(v21.D(), v22.D(), v23.D()), "frsqrts d21, d22, d23");
-  COMPARE(Fmulx(v12.S(), v13.S(), v14.S()), "fmulx s12, s13, s14");
-  COMPARE(Fmulx(v15.D(), v16.D(), v17.D()), "fmulx d15, d16, d17");
-  COMPARE(Fcmeq(v12.S(), v13.S(), v14.S()), "fcmeq s12, s13, s14");
-  COMPARE(Fcmeq(v15.D(), v16.D(), v17.D()), "fcmeq d15, d16, d17");
-  COMPARE(Fcmge(v12.S(), v13.S(), v14.S()), "fcmge s12, s13, s14");
-  COMPARE(Fcmge(v15.D(), v16.D(), v17.D()), "fcmge d15, d16, d17");
-  COMPARE(Fcmgt(v12.S(), v13.S(), v14.S()), "fcmgt s12, s13, s14");
-  COMPARE(Fcmgt(v15.D(), v16.D(), v17.D()), "fcmgt d15, d16, d17");
-  COMPARE(Fcmge(v12.S(), v13.S(), v14.S()), "fcmge s12, s13, s14");
-  COMPARE(Fcmge(v15.D(), v16.D(), v17.D()), "fcmge d15, d16, d17");
-  COMPARE(Facgt(v12.S(), v13.S(), v14.S()), "facgt s12, s13, s14");
-  COMPARE(Facgt(v15.D(), v16.D(), v17.D()), "facgt d15, d16, d17");
+  COMPARE_MACRO(Frecps(v12.S(), v13.S(), v14.S()), "frecps s12, s13, s14");
+  COMPARE_MACRO(Frecps(v15.D(), v16.D(), v17.D()), "frecps d15, d16, d17");
+  COMPARE_MACRO(Frsqrts(v18.S(), v19.S(), v20.S()), "frsqrts s18, s19, s20");
+  COMPARE_MACRO(Frsqrts(v21.D(), v22.D(), v23.D()), "frsqrts d21, d22, d23");
+  COMPARE_MACRO(Fmulx(v12.S(), v13.S(), v14.S()), "fmulx s12, s13, s14");
+  COMPARE_MACRO(Fmulx(v15.D(), v16.D(), v17.D()), "fmulx d15, d16, d17");
+  COMPARE_MACRO(Fcmeq(v12.S(), v13.S(), v14.S()), "fcmeq s12, s13, s14");
+  COMPARE_MACRO(Fcmeq(v15.D(), v16.D(), v17.D()), "fcmeq d15, d16, d17");
+  COMPARE_MACRO(Fcmge(v12.S(), v13.S(), v14.S()), "fcmge s12, s13, s14");
+  COMPARE_MACRO(Fcmge(v15.D(), v16.D(), v17.D()), "fcmge d15, d16, d17");
+  COMPARE_MACRO(Fcmgt(v12.S(), v13.S(), v14.S()), "fcmgt s12, s13, s14");
+  COMPARE_MACRO(Fcmgt(v15.D(), v16.D(), v17.D()), "fcmgt d15, d16, d17");
+  COMPARE_MACRO(Fcmge(v12.S(), v13.S(), v14.S()), "fcmge s12, s13, s14");
+  COMPARE_MACRO(Fcmge(v15.D(), v16.D(), v17.D()), "fcmge d15, d16, d17");
+  COMPARE_MACRO(Facgt(v12.S(), v13.S(), v14.S()), "facgt s12, s13, s14");
+  COMPARE_MACRO(Facgt(v15.D(), v16.D(), v17.D()), "facgt d15, d16, d17");
 
   // Instructions that support H and S-sized scalar operations.
-  COMPARE(Sqdmulh(v12.S(), v13.S(), v14.S()), "sqdmulh s12, s13, s14");
-  COMPARE(Sqdmulh(v15.H(), v16.H(), v17.H()), "sqdmulh h15, h16, h17");
-  COMPARE(Sqrdmulh(v12.S(), v13.S(), v14.S()), "sqrdmulh s12, s13, s14");
-  COMPARE(Sqrdmulh(v15.H(), v16.H(), v17.H()), "sqrdmulh h15, h16, h17");
+  COMPARE_MACRO(Sqdmulh(v12.S(), v13.S(), v14.S()), "sqdmulh s12, s13, s14");
+  COMPARE_MACRO(Sqdmulh(v15.H(), v16.H(), v17.H()), "sqdmulh h15, h16, h17");
+  COMPARE_MACRO(Sqrdmulh(v12.S(), v13.S(), v14.S()), "sqrdmulh s12, s13, s14");
+  COMPARE_MACRO(Sqrdmulh(v15.H(), v16.H(), v17.H()), "sqrdmulh h15, h16, h17");
 
-  #define DISASM_INST(M, R)  \
-  COMPARE(Uqadd(v6.M, v7.M, v8.M), "uqadd " R "6, " R "7, " R "8");
+#define DISASM_INST(M, R) \
+  COMPARE_MACRO(Uqadd(v6.M, v7.M, v8.M), "uqadd " R "6, " R "7, " R "8");
   NEON_SCALAR_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, R)  \
-  COMPARE(Uqsub(v9.M, v10.M, v11.M), "uqsub " R "9, " R "10, " R "11");
+#define DISASM_INST(M, R) \
+  COMPARE_MACRO(Uqsub(v9.M, v10.M, v11.M), "uqsub " R "9, " R "10, " R "11");
   NEON_SCALAR_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, R)  \
-  COMPARE(Sqadd(v12.M, v13.M, v14.M), "sqadd " R "12, " R "13, " R "14");
+#define DISASM_INST(M, R)                    \
+  COMPARE_MACRO(Sqadd(v12.M, v13.M, v14.M),  \
+                "sqadd " R "12, " R "13, " R \
+                "1"                          \
+                "4");
   NEON_SCALAR_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, R)  \
-  COMPARE(Sqsub(v15.M, v16.M, v17.M), "sqsub " R "15, " R "16, " R "17");
+#define DISASM_INST(M, R)                    \
+  COMPARE_MACRO(Sqsub(v15.M, v16.M, v17.M),  \
+                "sqsub " R "15, " R "16, " R \
+                "1"                          \
+                "7");
   NEON_SCALAR_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, R)  \
-  COMPARE(Uqshl(v18.M, v19.M, v20.M), "uqshl " R "18, " R "19, " R "20");
+#define DISASM_INST(M, R)                    \
+  COMPARE_MACRO(Uqshl(v18.M, v19.M, v20.M),  \
+                "uqshl " R "18, " R "19, " R \
+                "2"                          \
+                "0");
   NEON_SCALAR_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, R)  \
-  COMPARE(Sqshl(v21.M, v22.M, v23.M), "sqshl " R "21, " R "22, " R "23");
+#define DISASM_INST(M, R)                    \
+  COMPARE_MACRO(Sqshl(v21.M, v22.M, v23.M),  \
+                "sqshl " R "21, " R "22, " R \
+                "2"                          \
+                "3");
   NEON_SCALAR_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, R)  \
-  COMPARE(Uqrshl(v30.M, v31.M, v0.M), "uqrshl " R "30, " R "31, " R "0");
+#define DISASM_INST(M, R) \
+  COMPARE_MACRO(Uqrshl(v30.M, v31.M, v0.M), "uqrshl " R "30, " R "31, " R "0");
   NEON_SCALAR_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, R)  \
-  COMPARE(Sqrshl(v1.M, v2.M, v3.M), "sqrshl " R "1, " R "2, " R "3");
+#define DISASM_INST(M, R) \
+  COMPARE_MACRO(Sqrshl(v1.M, v2.M, v3.M), "sqrshl " R "1, " R "2, " R "3");
   NEON_SCALAR_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
   CLEANUP();
 }
 
 
 TEST(neon_byelement) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Mul(v0.V4H(), v1.V4H(), v2.H(), 0), "mul v0.4h, v1.4h, v2.h[0]");
-  COMPARE(Mul(v2.V8H(), v3.V8H(), v15.H(), 7), "mul v2.8h, v3.8h, v15.h[7]");
-  COMPARE(Mul(v0.V2S(), v1.V2S(), v2.S(), 0), "mul v0.2s, v1.2s, v2.s[0]");
-  COMPARE(Mul(v2.V4S(), v3.V4S(), v15.S(), 3), "mul v2.4s, v3.4s, v15.s[3]");
+  COMPARE_MACRO(Mul(v0.V4H(), v1.V4H(), v2.H(), 0),
+                "mul v0.4h, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Mul(v2.V8H(), v3.V8H(), v15.H(), 7),
+                "mul v2.8h, v3.8h, v15.h[7]");
+  COMPARE_MACRO(Mul(v0.V2S(), v1.V2S(), v2.S(), 0),
+                "mul v0.2s, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Mul(v2.V4S(), v3.V4S(), v15.S(), 3),
+                "mul v2.4s, v3.4s, v15.s[3]");
 
-  COMPARE(Mla(v0.V4H(), v1.V4H(), v2.H(), 0), "mla v0.4h, v1.4h, v2.h[0]");
-  COMPARE(Mla(v2.V8H(), v3.V8H(), v15.H(), 7), "mla v2.8h, v3.8h, v15.h[7]");
-  COMPARE(Mla(v0.V2S(), v1.V2S(), v2.S(), 0), "mla v0.2s, v1.2s, v2.s[0]");
-  COMPARE(Mla(v2.V4S(), v3.V4S(), v15.S(), 3), "mla v2.4s, v3.4s, v15.s[3]");
+  COMPARE_MACRO(Mla(v0.V4H(), v1.V4H(), v2.H(), 0),
+                "mla v0.4h, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Mla(v2.V8H(), v3.V8H(), v15.H(), 7),
+                "mla v2.8h, v3.8h, v15.h[7]");
+  COMPARE_MACRO(Mla(v0.V2S(), v1.V2S(), v2.S(), 0),
+                "mla v0.2s, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Mla(v2.V4S(), v3.V4S(), v15.S(), 3),
+                "mla v2.4s, v3.4s, v15.s[3]");
 
-  COMPARE(Mls(v0.V4H(), v1.V4H(), v2.H(), 0), "mls v0.4h, v1.4h, v2.h[0]");
-  COMPARE(Mls(v2.V8H(), v3.V8H(), v15.H(), 7), "mls v2.8h, v3.8h, v15.h[7]");
-  COMPARE(Mls(v0.V2S(), v1.V2S(), v2.S(), 0), "mls v0.2s, v1.2s, v2.s[0]");
-  COMPARE(Mls(v2.V4S(), v3.V4S(), v15.S(), 3), "mls v2.4s, v3.4s, v15.s[3]");
+  COMPARE_MACRO(Mls(v0.V4H(), v1.V4H(), v2.H(), 0),
+                "mls v0.4h, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Mls(v2.V8H(), v3.V8H(), v15.H(), 7),
+                "mls v2.8h, v3.8h, v15.h[7]");
+  COMPARE_MACRO(Mls(v0.V2S(), v1.V2S(), v2.S(), 0),
+                "mls v0.2s, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Mls(v2.V4S(), v3.V4S(), v15.S(), 3),
+                "mls v2.4s, v3.4s, v15.s[3]");
 
-  COMPARE(Sqdmulh(v0.V4H(), v1.V4H(), v2.H(), 0),
-          "sqdmulh v0.4h, v1.4h, v2.h[0]");
-  COMPARE(Sqdmulh(v2.V8H(), v3.V8H(), v15.H(), 7),
-          "sqdmulh v2.8h, v3.8h, v15.h[7]");
-  COMPARE(Sqdmulh(v0.V2S(), v1.V2S(), v2.S(), 0),
-          "sqdmulh v0.2s, v1.2s, v2.s[0]");
-  COMPARE(Sqdmulh(v2.V4S(), v3.V4S(), v15.S(), 3),
-          "sqdmulh v2.4s, v3.4s, v15.s[3]");
-  COMPARE(Sqdmulh(h0, h1, v2.H(), 0), "sqdmulh h0, h1, v2.h[0]");
-  COMPARE(Sqdmulh(s0, s1, v2.S(), 0), "sqdmulh s0, s1, v2.s[0]");
+  COMPARE_MACRO(Sqdmulh(v0.V4H(), v1.V4H(), v2.H(), 0),
+                "sqdmulh v0.4h, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Sqdmulh(v2.V8H(), v3.V8H(), v15.H(), 7),
+                "sqdmulh v2.8h, v3.8h, v15.h[7]");
+  COMPARE_MACRO(Sqdmulh(v0.V2S(), v1.V2S(), v2.S(), 0),
+                "sqdmulh v0.2s, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Sqdmulh(v2.V4S(), v3.V4S(), v15.S(), 3),
+                "sqdmulh v2.4s, v3.4s, v15.s[3]");
+  COMPARE_MACRO(Sqdmulh(h0, h1, v2.H(), 0), "sqdmulh h0, h1, v2.h[0]");
+  COMPARE_MACRO(Sqdmulh(s0, s1, v2.S(), 0), "sqdmulh s0, s1, v2.s[0]");
 
-  COMPARE(Sqrdmulh(v0.V4H(), v1.V4H(), v2.H(), 0),
-          "sqrdmulh v0.4h, v1.4h, v2.h[0]");
-  COMPARE(Sqrdmulh(v2.V8H(), v3.V8H(), v15.H(), 7),
-          "sqrdmulh v2.8h, v3.8h, v15.h[7]");
-  COMPARE(Sqrdmulh(v0.V2S(), v1.V2S(), v2.S(), 0),
-          "sqrdmulh v0.2s, v1.2s, v2.s[0]");
-  COMPARE(Sqrdmulh(v2.V4S(), v3.V4S(), v15.S(), 3),
-          "sqrdmulh v2.4s, v3.4s, v15.s[3]");
-  COMPARE(Sqrdmulh(h0, h1, v2.H(), 0), "sqrdmulh h0, h1, v2.h[0]");
-  COMPARE(Sqrdmulh(s0, s1, v2.S(), 0), "sqrdmulh s0, s1, v2.s[0]");
+  COMPARE_MACRO(Sqrdmulh(v0.V4H(), v1.V4H(), v2.H(), 0),
+                "sqrdmulh v0.4h, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Sqrdmulh(v2.V8H(), v3.V8H(), v15.H(), 7),
+                "sqrdmulh v2.8h, v3.8h, v15.h[7]");
+  COMPARE_MACRO(Sqrdmulh(v0.V2S(), v1.V2S(), v2.S(), 0),
+                "sqrdmulh v0.2s, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Sqrdmulh(v2.V4S(), v3.V4S(), v15.S(), 3),
+                "sqrdmulh v2.4s, v3.4s, v15.s[3]");
+  COMPARE_MACRO(Sqrdmulh(h0, h1, v2.H(), 0), "sqrdmulh h0, h1, v2.h[0]");
+  COMPARE_MACRO(Sqrdmulh(s0, s1, v2.S(), 0), "sqrdmulh s0, s1, v2.s[0]");
 
-  COMPARE(Smull(v0.V4S(), v1.V4H(), v2.H(), 0), "smull v0.4s, v1.4h, v2.h[0]");
-  COMPARE(Smull2(v2.V4S(), v3.V8H(), v4.H(), 7),
-          "smull2 v2.4s, v3.8h, v4.h[7]");
-  COMPARE(Smull(v0.V2D(), v1.V2S(), v2.S(), 0), "smull v0.2d, v1.2s, v2.s[0]");
-  COMPARE(Smull2(v2.V2D(), v3.V4S(), v4.S(), 3),
-          "smull2 v2.2d, v3.4s, v4.s[3]");
+  COMPARE_MACRO(Smull(v0.V4S(), v1.V4H(), v2.H(), 0),
+                "smull v0.4s, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Smull2(v2.V4S(), v3.V8H(), v4.H(), 7),
+                "smull2 v2.4s, v3.8h, v4.h[7]");
+  COMPARE_MACRO(Smull(v0.V2D(), v1.V2S(), v2.S(), 0),
+                "smull v0.2d, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Smull2(v2.V2D(), v3.V4S(), v4.S(), 3),
+                "smull2 v2.2d, v3.4s, v4.s[3]");
 
-  COMPARE(Umull(v0.V4S(), v1.V4H(), v2.H(), 0), "umull v0.4s, v1.4h, v2.h[0]");
-  COMPARE(Umull2(v2.V4S(), v3.V8H(), v4.H(), 7),
-          "umull2 v2.4s, v3.8h, v4.h[7]");
-  COMPARE(Umull(v0.V2D(), v1.V2S(), v2.S(), 0), "umull v0.2d, v1.2s, v2.s[0]");
-  COMPARE(Umull2(v2.V2D(), v3.V4S(), v4.S(), 3),
-          "umull2 v2.2d, v3.4s, v4.s[3]");
+  COMPARE_MACRO(Umull(v0.V4S(), v1.V4H(), v2.H(), 0),
+                "umull v0.4s, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Umull2(v2.V4S(), v3.V8H(), v4.H(), 7),
+                "umull2 v2.4s, v3.8h, v4.h[7]");
+  COMPARE_MACRO(Umull(v0.V2D(), v1.V2S(), v2.S(), 0),
+                "umull v0.2d, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Umull2(v2.V2D(), v3.V4S(), v4.S(), 3),
+                "umull2 v2.2d, v3.4s, v4.s[3]");
 
-  COMPARE(Smlal(v0.V4S(), v1.V4H(), v2.H(), 0), "smlal v0.4s, v1.4h, v2.h[0]");
-  COMPARE(Smlal2(v2.V4S(), v3.V8H(), v4.H(), 7),
-          "smlal2 v2.4s, v3.8h, v4.h[7]");
-  COMPARE(Smlal(v0.V2D(), v1.V2S(), v2.S(), 0), "smlal v0.2d, v1.2s, v2.s[0]");
-  COMPARE(Smlal2(v2.V2D(), v3.V4S(), v4.S(), 3),
-          "smlal2 v2.2d, v3.4s, v4.s[3]");
+  COMPARE_MACRO(Smlal(v0.V4S(), v1.V4H(), v2.H(), 0),
+                "smlal v0.4s, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Smlal2(v2.V4S(), v3.V8H(), v4.H(), 7),
+                "smlal2 v2.4s, v3.8h, v4.h[7]");
+  COMPARE_MACRO(Smlal(v0.V2D(), v1.V2S(), v2.S(), 0),
+                "smlal v0.2d, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Smlal2(v2.V2D(), v3.V4S(), v4.S(), 3),
+                "smlal2 v2.2d, v3.4s, v4.s[3]");
 
-  COMPARE(Umlal(v0.V4S(), v1.V4H(), v2.H(), 0), "umlal v0.4s, v1.4h, v2.h[0]");
-  COMPARE(Umlal2(v2.V4S(), v3.V8H(), v4.H(), 7),
-          "umlal2 v2.4s, v3.8h, v4.h[7]");
-  COMPARE(Umlal(v0.V2D(), v1.V2S(), v2.S(), 0), "umlal v0.2d, v1.2s, v2.s[0]");
-  COMPARE(Umlal2(v2.V2D(), v3.V4S(), v4.S(), 3),
-          "umlal2 v2.2d, v3.4s, v4.s[3]");
+  COMPARE_MACRO(Umlal(v0.V4S(), v1.V4H(), v2.H(), 0),
+                "umlal v0.4s, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Umlal2(v2.V4S(), v3.V8H(), v4.H(), 7),
+                "umlal2 v2.4s, v3.8h, v4.h[7]");
+  COMPARE_MACRO(Umlal(v0.V2D(), v1.V2S(), v2.S(), 0),
+                "umlal v0.2d, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Umlal2(v2.V2D(), v3.V4S(), v4.S(), 3),
+                "umlal2 v2.2d, v3.4s, v4.s[3]");
 
-  COMPARE(Smlsl(v0.V4S(), v1.V4H(), v2.H(), 0),  "smlsl v0.4s, v1.4h, v2.h[0]");
-  COMPARE(Smlsl2(v2.V4S(), v3.V8H(), v4.H(), 7),
-          "smlsl2 v2.4s, v3.8h, v4.h[7]");
-  COMPARE(Smlsl(v0.V2D(), v1.V2S(), v2.S(), 0),  "smlsl v0.2d, v1.2s, v2.s[0]");
-  COMPARE(Smlsl2(v2.V2D(), v3.V4S(), v4.S(), 3),
-          "smlsl2 v2.2d, v3.4s, v4.s[3]");
+  COMPARE_MACRO(Smlsl(v0.V4S(), v1.V4H(), v2.H(), 0),
+                "smlsl v0.4s, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Smlsl2(v2.V4S(), v3.V8H(), v4.H(), 7),
+                "smlsl2 v2.4s, v3.8h, v4.h[7]");
+  COMPARE_MACRO(Smlsl(v0.V2D(), v1.V2S(), v2.S(), 0),
+                "smlsl v0.2d, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Smlsl2(v2.V2D(), v3.V4S(), v4.S(), 3),
+                "smlsl2 v2.2d, v3.4s, v4.s[3]");
 
-  COMPARE(Umlsl(v0.V4S(), v1.V4H(), v2.H(), 0), "umlsl v0.4s, v1.4h, v2.h[0]");
-  COMPARE(Umlsl2(v2.V4S(), v3.V8H(), v4.H(), 7),
-          "umlsl2 v2.4s, v3.8h, v4.h[7]");
-  COMPARE(Umlsl(v0.V2D(), v1.V2S(), v2.S(), 0), "umlsl v0.2d, v1.2s, v2.s[0]");
-  COMPARE(Umlsl2(v2.V2D(), v3.V4S(), v4.S(), 3),
-          "umlsl2 v2.2d, v3.4s, v4.s[3]");
+  COMPARE_MACRO(Umlsl(v0.V4S(), v1.V4H(), v2.H(), 0),
+                "umlsl v0.4s, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Umlsl2(v2.V4S(), v3.V8H(), v4.H(), 7),
+                "umlsl2 v2.4s, v3.8h, v4.h[7]");
+  COMPARE_MACRO(Umlsl(v0.V2D(), v1.V2S(), v2.S(), 0),
+                "umlsl v0.2d, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Umlsl2(v2.V2D(), v3.V4S(), v4.S(), 3),
+                "umlsl2 v2.2d, v3.4s, v4.s[3]");
 
-  COMPARE(Sqdmull(v0.V4S(), v1.V4H(), v2.H(), 0),
-         "sqdmull v0.4s, v1.4h, v2.h[0]");
-  COMPARE(Sqdmull2(v2.V4S(), v3.V8H(), v4.H(), 7),
-          "sqdmull2 v2.4s, v3.8h, v4.h[7]");
-  COMPARE(Sqdmull(v0.V2D(), v1.V2S(), v2.S(), 0),
-          "sqdmull v0.2d, v1.2s, v2.s[0]");
-  COMPARE(Sqdmull2(v2.V2D(), v3.V4S(), v4.S(), 3),
-          "sqdmull2 v2.2d, v3.4s, v4.s[3]");
-  COMPARE(Sqdmull(s0, h1, v2.H(), 0), "sqdmull s0, h1, v2.h[0]");
-  COMPARE(Sqdmull(d0, s1, v2.S(), 0), "sqdmull d0, s1, v2.s[0]");
+  COMPARE_MACRO(Sqdmull(v0.V4S(), v1.V4H(), v2.H(), 0),
+                "sqdmull v0.4s, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Sqdmull2(v2.V4S(), v3.V8H(), v4.H(), 7),
+                "sqdmull2 v2.4s, v3.8h, v4.h[7]");
+  COMPARE_MACRO(Sqdmull(v0.V2D(), v1.V2S(), v2.S(), 0),
+                "sqdmull v0.2d, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Sqdmull2(v2.V2D(), v3.V4S(), v4.S(), 3),
+                "sqdmull2 v2.2d, v3.4s, v4.s[3]");
+  COMPARE_MACRO(Sqdmull(s0, h1, v2.H(), 0), "sqdmull s0, h1, v2.h[0]");
+  COMPARE_MACRO(Sqdmull(d0, s1, v2.S(), 0), "sqdmull d0, s1, v2.s[0]");
 
-  COMPARE(Sqdmlal(v0.V4S(), v1.V4H(), v2.H(), 0),
-          "sqdmlal v0.4s, v1.4h, v2.h[0]");
-  COMPARE(Sqdmlal2(v2.V4S(), v3.V8H(), v4.H(), 7),
-          "sqdmlal2 v2.4s, v3.8h, v4.h[7]");
-  COMPARE(Sqdmlal(v0.V2D(), v1.V2S(), v2.S(), 0),
-          "sqdmlal v0.2d, v1.2s, v2.s[0]");
-  COMPARE(Sqdmlal2(v2.V2D(), v3.V4S(), v4.S(), 3),
-          "sqdmlal2 v2.2d, v3.4s, v4.s[3]");
-  COMPARE(Sqdmlal(s0, h1, v2.H(), 0), "sqdmlal s0, h1, v2.h[0]");
-  COMPARE(Sqdmlal(d0, s1, v2.S(), 0), "sqdmlal d0, s1, v2.s[0]");
+  COMPARE_MACRO(Sqdmlal(v0.V4S(), v1.V4H(), v2.H(), 0),
+                "sqdmlal v0.4s, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Sqdmlal2(v2.V4S(), v3.V8H(), v4.H(), 7),
+                "sqdmlal2 v2.4s, v3.8h, v4.h[7]");
+  COMPARE_MACRO(Sqdmlal(v0.V2D(), v1.V2S(), v2.S(), 0),
+                "sqdmlal v0.2d, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Sqdmlal2(v2.V2D(), v3.V4S(), v4.S(), 3),
+                "sqdmlal2 v2.2d, v3.4s, v4.s[3]");
+  COMPARE_MACRO(Sqdmlal(s0, h1, v2.H(), 0), "sqdmlal s0, h1, v2.h[0]");
+  COMPARE_MACRO(Sqdmlal(d0, s1, v2.S(), 0), "sqdmlal d0, s1, v2.s[0]");
 
-  COMPARE(Sqdmlsl(v0.V4S(), v1.V4H(), v2.H(), 0),
-          "sqdmlsl v0.4s, v1.4h, v2.h[0]");
-  COMPARE(Sqdmlsl2(v2.V4S(), v3.V8H(), v4.H(), 7),
-          "sqdmlsl2 v2.4s, v3.8h, v4.h[7]");
-  COMPARE(Sqdmlsl(v0.V2D(), v1.V2S(), v2.S(), 0),
-          "sqdmlsl v0.2d, v1.2s, v2.s[0]");
-  COMPARE(Sqdmlsl2(v2.V2D(), v3.V4S(), v4.S(), 3),
-          "sqdmlsl2 v2.2d, v3.4s, v4.s[3]");
-  COMPARE(Sqdmlsl(s0, h1, v2.H(), 0), "sqdmlsl s0, h1, v2.h[0]");
-  COMPARE(Sqdmlsl(d0, s1, v2.S(), 0), "sqdmlsl d0, s1, v2.s[0]");
+  COMPARE_MACRO(Sqdmlsl(v0.V4S(), v1.V4H(), v2.H(), 0),
+                "sqdmlsl v0.4s, v1.4h, v2.h[0]");
+  COMPARE_MACRO(Sqdmlsl2(v2.V4S(), v3.V8H(), v4.H(), 7),
+                "sqdmlsl2 v2.4s, v3.8h, v4.h[7]");
+  COMPARE_MACRO(Sqdmlsl(v0.V2D(), v1.V2S(), v2.S(), 0),
+                "sqdmlsl v0.2d, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Sqdmlsl2(v2.V2D(), v3.V4S(), v4.S(), 3),
+                "sqdmlsl2 v2.2d, v3.4s, v4.s[3]");
+  COMPARE_MACRO(Sqdmlsl(s0, h1, v2.H(), 0), "sqdmlsl s0, h1, v2.h[0]");
+  COMPARE_MACRO(Sqdmlsl(d0, s1, v2.S(), 0), "sqdmlsl d0, s1, v2.s[0]");
 
   CLEANUP();
 }
 
 
 TEST(neon_fp_byelement) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Fmul(v0.V2S(), v1.V2S(), v2.S(), 0), "fmul v0.2s, v1.2s, v2.s[0]");
-  COMPARE(Fmul(v2.V4S(), v3.V4S(), v15.S(), 3), "fmul v2.4s, v3.4s, v15.s[3]");
-  COMPARE(Fmul(v0.V2D(), v1.V2D(), v2.D(), 0), "fmul v0.2d, v1.2d, v2.d[0]");
-  COMPARE(Fmul(d0, d1, v2.D(), 0), "fmul d0, d1, v2.d[0]");
-  COMPARE(Fmul(s0, s1, v2.S(), 0), "fmul s0, s1, v2.s[0]");
+  COMPARE_MACRO(Fmul(v0.V2S(), v1.V2S(), v2.S(), 0),
+                "fmul v0.2s, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Fmul(v2.V4S(), v3.V4S(), v15.S(), 3),
+                "fmul v2.4s, v3.4s, v15.s[3]");
+  COMPARE_MACRO(Fmul(v0.V2D(), v1.V2D(), v2.D(), 0),
+                "fmul v0.2d, v1.2d, v2.d[0]");
+  COMPARE_MACRO(Fmul(d0, d1, v2.D(), 0), "fmul d0, d1, v2.d[0]");
+  COMPARE_MACRO(Fmul(s0, s1, v2.S(), 0), "fmul s0, s1, v2.s[0]");
 
-  COMPARE(Fmla(v0.V2S(), v1.V2S(), v2.S(), 0), "fmla v0.2s, v1.2s, v2.s[0]");
-  COMPARE(Fmla(v2.V4S(), v3.V4S(), v15.S(), 3), "fmla v2.4s, v3.4s, v15.s[3]");
-  COMPARE(Fmla(v0.V2D(), v1.V2D(), v2.D(), 0), "fmla v0.2d, v1.2d, v2.d[0]");
-  COMPARE(Fmla(d0, d1, v2.D(), 0), "fmla d0, d1, v2.d[0]");
-  COMPARE(Fmla(s0, s1, v2.S(), 0), "fmla s0, s1, v2.s[0]");
+  COMPARE_MACRO(Fmla(v0.V2S(), v1.V2S(), v2.S(), 0),
+                "fmla v0.2s, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Fmla(v2.V4S(), v3.V4S(), v15.S(), 3),
+                "fmla v2.4s, v3.4s, v15.s[3]");
+  COMPARE_MACRO(Fmla(v0.V2D(), v1.V2D(), v2.D(), 0),
+                "fmla v0.2d, v1.2d, v2.d[0]");
+  COMPARE_MACRO(Fmla(d0, d1, v2.D(), 0), "fmla d0, d1, v2.d[0]");
+  COMPARE_MACRO(Fmla(s0, s1, v2.S(), 0), "fmla s0, s1, v2.s[0]");
 
-  COMPARE(Fmls(v0.V2S(), v1.V2S(), v2.S(), 0), "fmls v0.2s, v1.2s, v2.s[0]");
-  COMPARE(Fmls(v2.V4S(), v3.V4S(), v15.S(), 3), "fmls v2.4s, v3.4s, v15.s[3]");
-  COMPARE(Fmls(v0.V2D(), v1.V2D(), v2.D(), 0), "fmls v0.2d, v1.2d, v2.d[0]");
-  COMPARE(Fmls(d0, d1, v2.D(), 0), "fmls d0, d1, v2.d[0]");
-  COMPARE(Fmls(s0, s1, v2.S(), 0), "fmls s0, s1, v2.s[0]");
+  COMPARE_MACRO(Fmls(v0.V2S(), v1.V2S(), v2.S(), 0),
+                "fmls v0.2s, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Fmls(v2.V4S(), v3.V4S(), v15.S(), 3),
+                "fmls v2.4s, v3.4s, v15.s[3]");
+  COMPARE_MACRO(Fmls(v0.V2D(), v1.V2D(), v2.D(), 0),
+                "fmls v0.2d, v1.2d, v2.d[0]");
+  COMPARE_MACRO(Fmls(d0, d1, v2.D(), 0), "fmls d0, d1, v2.d[0]");
+  COMPARE_MACRO(Fmls(s0, s1, v2.S(), 0), "fmls s0, s1, v2.s[0]");
 
-  COMPARE(Fmulx(v0.V2S(), v1.V2S(), v2.S(), 0), "fmulx v0.2s, v1.2s, v2.s[0]");
-  COMPARE(Fmulx(v2.V4S(), v3.V4S(), v8.S(), 3), "fmulx v2.4s, v3.4s, v8.s[3]");
-  COMPARE(Fmulx(v0.V2D(), v1.V2D(), v2.D(), 0), "fmulx v0.2d, v1.2d, v2.d[0]");
-  COMPARE(Fmulx(d0, d1, v2.D(), 0), "fmulx d0, d1, v2.d[0]");
-  COMPARE(Fmulx(s0, s1, v2.S(), 0), "fmulx s0, s1, v2.s[0]");
+  COMPARE_MACRO(Fmulx(v0.V2S(), v1.V2S(), v2.S(), 0),
+                "fmulx v0.2s, v1.2s, v2.s[0]");
+  COMPARE_MACRO(Fmulx(v2.V4S(), v3.V4S(), v8.S(), 3),
+                "fmulx v2.4s, v3.4s, v8.s[3]");
+  COMPARE_MACRO(Fmulx(v0.V2D(), v1.V2D(), v2.D(), 0),
+                "fmulx v0.2d, v1.2d, v2.d[0]");
+  COMPARE_MACRO(Fmulx(d0, d1, v2.D(), 0), "fmulx d0, d1, v2.d[0]");
+  COMPARE_MACRO(Fmulx(s0, s1, v2.S(), 0), "fmulx s0, s1, v2.s[0]");
 
   CLEANUP();
 }
 
 
 TEST(neon_3different) {
-  SETUP_MACRO();
+  SETUP();
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Uaddl(v0.TA, v1.TB, v2.TB), "uaddl v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Uaddl(v0.TA, v1.TB, v2.TB), \
+                "uaddl v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Uaddl2(v0.TA, v1.TB, v2.TB),   \
-          "uaddl2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Uaddl2(v0.TA, v1.TB, v2.TB), \
+                "uaddl2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Uaddw(v0.TA, v1.TA, v2.TB), "uaddw v0." TAS ", v1." TAS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Uaddw(v0.TA, v1.TA, v2.TB), \
+                "uaddw v0." TAS ", v1." TAS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Uaddw2(v0.TA, v1.TA, v2.TB),   \
-          "uaddw2 v0." TAS ", v1." TAS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Uaddw2(v0.TA, v1.TA, v2.TB), \
+                "uaddw2 v0." TAS ", v1." TAS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Saddl(v0.TA, v1.TB, v2.TB), "saddl v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Saddl(v0.TA, v1.TB, v2.TB), \
+                "saddl v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Saddl2(v0.TA, v1.TB, v2.TB),   \
-          "saddl2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Saddl2(v0.TA, v1.TB, v2.TB), \
+                "saddl2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Saddw(v0.TA, v1.TA, v2.TB), "saddw v0." TAS ", v1." TAS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Saddw(v0.TA, v1.TA, v2.TB), \
+                "saddw v0." TAS ", v1." TAS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Saddw2(v0.TA, v1.TA, v2.TB),   \
-          "saddw2 v0." TAS ", v1." TAS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Saddw2(v0.TA, v1.TA, v2.TB), \
+                "saddw2 v0." TAS ", v1." TAS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Usubl(v0.TA, v1.TB, v2.TB), "usubl v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Usubl(v0.TA, v1.TB, v2.TB), \
+                "usubl v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Usubl2(v0.TA, v1.TB, v2.TB),   \
-          "usubl2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Usubl2(v0.TA, v1.TB, v2.TB), \
+                "usubl2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Usubw(v0.TA, v1.TA, v2.TB), "usubw v0." TAS ", v1." TAS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Usubw(v0.TA, v1.TA, v2.TB), \
+                "usubw v0." TAS ", v1." TAS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Usubw2(v0.TA, v1.TA, v2.TB),   \
-          "usubw2 v0." TAS ", v1." TAS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Usubw2(v0.TA, v1.TA, v2.TB), \
+                "usubw2 v0." TAS ", v1." TAS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Ssubl(v0.TA, v1.TB, v2.TB), "ssubl v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Ssubl(v0.TA, v1.TB, v2.TB), \
+                "ssubl v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Ssubl2(v0.TA, v1.TB, v2.TB),   \
-          "ssubl2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Ssubl2(v0.TA, v1.TB, v2.TB), \
+                "ssubl2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Ssubw(v0.TA, v1.TA, v2.TB), "ssubw v0." TAS ", v1." TAS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Ssubw(v0.TA, v1.TA, v2.TB), \
+                "ssubw v0." TAS ", v1." TAS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Ssubw2(v0.TA, v1.TA, v2.TB),   \
-          "ssubw2 v0." TAS ", v1." TAS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Ssubw2(v0.TA, v1.TA, v2.TB), \
+                "ssubw2 v0." TAS ", v1." TAS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Sabal(v0.TA, v1.TB, v2.TB), "sabal v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Sabal(v0.TA, v1.TB, v2.TB), \
+                "sabal v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Sabal2(v0.TA, v1.TB, v2.TB),   \
-          "sabal2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Sabal2(v0.TA, v1.TB, v2.TB), \
+                "sabal2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Uabal(v0.TA, v1.TB, v2.TB), "uabal v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Uabal(v0.TA, v1.TB, v2.TB), \
+                "uabal v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Uabal2(v0.TA, v1.TB, v2.TB),   \
-          "uabal2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Uabal2(v0.TA, v1.TB, v2.TB), \
+                "uabal2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Sabdl(v0.TA, v1.TB, v2.TB), "sabdl v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Sabdl(v0.TA, v1.TB, v2.TB), \
+                "sabdl v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Sabdl2(v0.TA, v1.TB, v2.TB),   \
-          "sabdl2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Sabdl2(v0.TA, v1.TB, v2.TB), \
+                "sabdl2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Uabdl(v0.TA, v1.TB, v2.TB), "uabdl v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Uabdl(v0.TA, v1.TB, v2.TB), \
+                "uabdl v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Uabdl2(v0.TA, v1.TB, v2.TB),   \
-          "uabdl2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Uabdl2(v0.TA, v1.TB, v2.TB), \
+                "uabdl2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Smlal(v0.TA, v1.TB, v2.TB), "smlal v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Smlal(v0.TA, v1.TB, v2.TB), \
+                "smlal v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Smlal2(v0.TA, v1.TB, v2.TB),   \
-          "smlal2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Smlal2(v0.TA, v1.TB, v2.TB), \
+                "smlal2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Umlsl(v0.TA, v1.TB, v2.TB), "umlsl v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Umlsl(v0.TA, v1.TB, v2.TB), \
+                "umlsl v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Umlsl2(v0.TA, v1.TB, v2.TB),   \
-          "umlsl2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Umlsl2(v0.TA, v1.TB, v2.TB), \
+                "umlsl2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Smlsl(v0.TA, v1.TB, v2.TB), "smlsl v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Smlsl(v0.TA, v1.TB, v2.TB), \
+                "smlsl v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Smlsl2(v0.TA, v1.TB, v2.TB),   \
-          "smlsl2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Smlsl2(v0.TA, v1.TB, v2.TB), \
+                "smlsl2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Umlsl(v0.TA, v1.TB, v2.TB), "umlsl v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Umlsl(v0.TA, v1.TB, v2.TB), \
+                "umlsl v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Umlsl2(v0.TA, v1.TB, v2.TB),   \
-          "umlsl2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Umlsl2(v0.TA, v1.TB, v2.TB), \
+                "umlsl2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Smull(v0.TA, v1.TB, v2.TB), "smull v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Smull(v0.TA, v1.TB, v2.TB), \
+                "smull v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Smull2(v0.TA, v1.TB, v2.TB),   \
-          "smull2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Smull2(v0.TA, v1.TB, v2.TB), \
+                "smull2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Umull(v0.TA, v1.TB, v2.TB), "umull v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)       \
+  COMPARE_MACRO(Umull(v0.TA, v1.TB, v2.TB), \
+                "umull v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Umull2(v0.TA, v1.TB, v2.TB),   \
-          "umull2 v0." TAS ", v1." TBS ", v2." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS)        \
+  COMPARE_MACRO(Umull2(v0.TA, v1.TB, v2.TB), \
+                "umull2 v0." TAS ", v1." TBS ", v2." TBS);
   NEON_FORMAT_LIST_LW2(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Sqdmull(v0.V4S(), v1.V4H(), v2.V4H()), "sqdmull v0.4s, v1.4h, v2.4h");
-  COMPARE(Sqdmull(v1.V2D(), v2.V2S(), v3.V2S()), "sqdmull v1.2d, v2.2s, v3.2s");
-  COMPARE(Sqdmull2(v2.V4S(), v3.V8H(), v4.V8H()),
-          "sqdmull2 v2.4s, v3.8h, v4.8h");
-  COMPARE(Sqdmull2(v3.V2D(), v4.V4S(), v5.V4S()),
-          "sqdmull2 v3.2d, v4.4s, v5.4s");
-  COMPARE(Sqdmull(s0, h1, h2), "sqdmull s0, h1, h2");
-  COMPARE(Sqdmull(d1, s2, s3), "sqdmull d1, s2, s3");
+  COMPARE_MACRO(Sqdmull(v0.V4S(), v1.V4H(), v2.V4H()),
+                "sqdmull v0.4s, v1.4h, v2.4h");
+  COMPARE_MACRO(Sqdmull(v1.V2D(), v2.V2S(), v3.V2S()),
+                "sqdmull v1.2d, v2.2s, v3.2s");
+  COMPARE_MACRO(Sqdmull2(v2.V4S(), v3.V8H(), v4.V8H()),
+                "sqdmull2 v2.4s, v3.8h, v4.8h");
+  COMPARE_MACRO(Sqdmull2(v3.V2D(), v4.V4S(), v5.V4S()),
+                "sqdmull2 v3.2d, v4.4s, v5.4s");
+  COMPARE_MACRO(Sqdmull(s0, h1, h2), "sqdmull s0, h1, h2");
+  COMPARE_MACRO(Sqdmull(d1, s2, s3), "sqdmull d1, s2, s3");
 
-  COMPARE(Sqdmlal(v0.V4S(), v1.V4H(), v2.V4H()), "sqdmlal v0.4s, v1.4h, v2.4h");
-  COMPARE(Sqdmlal(v1.V2D(), v2.V2S(), v3.V2S()), "sqdmlal v1.2d, v2.2s, v3.2s");
-  COMPARE(Sqdmlal2(v2.V4S(), v3.V8H(), v4.V8H()),
-          "sqdmlal2 v2.4s, v3.8h, v4.8h");
-  COMPARE(Sqdmlal2(v3.V2D(), v4.V4S(), v5.V4S()),
-          "sqdmlal2 v3.2d, v4.4s, v5.4s");
-  COMPARE(Sqdmlal(s0, h1, h2), "sqdmlal s0, h1, h2");
-  COMPARE(Sqdmlal(d1, s2, s3), "sqdmlal d1, s2, s3");
+  COMPARE_MACRO(Sqdmlal(v0.V4S(), v1.V4H(), v2.V4H()),
+                "sqdmlal v0.4s, v1.4h, v2.4h");
+  COMPARE_MACRO(Sqdmlal(v1.V2D(), v2.V2S(), v3.V2S()),
+                "sqdmlal v1.2d, v2.2s, v3.2s");
+  COMPARE_MACRO(Sqdmlal2(v2.V4S(), v3.V8H(), v4.V8H()),
+                "sqdmlal2 v2.4s, v3.8h, v4.8h");
+  COMPARE_MACRO(Sqdmlal2(v3.V2D(), v4.V4S(), v5.V4S()),
+                "sqdmlal2 v3.2d, v4.4s, v5.4s");
+  COMPARE_MACRO(Sqdmlal(s0, h1, h2), "sqdmlal s0, h1, h2");
+  COMPARE_MACRO(Sqdmlal(d1, s2, s3), "sqdmlal d1, s2, s3");
 
-  COMPARE(Sqdmlsl(v0.V4S(), v1.V4H(), v2.V4H()), "sqdmlsl v0.4s, v1.4h, v2.4h");
-  COMPARE(Sqdmlsl(v1.V2D(), v2.V2S(), v3.V2S()), "sqdmlsl v1.2d, v2.2s, v3.2s");
-  COMPARE(Sqdmlsl2(v2.V4S(), v3.V8H(), v4.V8H()),
-          "sqdmlsl2 v2.4s, v3.8h, v4.8h");
-  COMPARE(Sqdmlsl2(v3.V2D(), v4.V4S(), v5.V4S()),
-          "sqdmlsl2 v3.2d, v4.4s, v5.4s");
-  COMPARE(Sqdmlsl(s0, h1, h2), "sqdmlsl s0, h1, h2");
-  COMPARE(Sqdmlsl(d1, s2, s3), "sqdmlsl d1, s2, s3");
+  COMPARE_MACRO(Sqdmlsl(v0.V4S(), v1.V4H(), v2.V4H()),
+                "sqdmlsl v0.4s, v1.4h, v2.4h");
+  COMPARE_MACRO(Sqdmlsl(v1.V2D(), v2.V2S(), v3.V2S()),
+                "sqdmlsl v1.2d, v2.2s, v3.2s");
+  COMPARE_MACRO(Sqdmlsl2(v2.V4S(), v3.V8H(), v4.V8H()),
+                "sqdmlsl2 v2.4s, v3.8h, v4.8h");
+  COMPARE_MACRO(Sqdmlsl2(v3.V2D(), v4.V4S(), v5.V4S()),
+                "sqdmlsl2 v3.2d, v4.4s, v5.4s");
+  COMPARE_MACRO(Sqdmlsl(s0, h1, h2), "sqdmlsl s0, h1, h2");
+  COMPARE_MACRO(Sqdmlsl(d1, s2, s3), "sqdmlsl d1, s2, s3");
 
-  COMPARE(Addhn(v0.V8B(), v1.V8H(), v2.V8H()), "addhn v0.8b, v1.8h, v2.8h");
-  COMPARE(Addhn(v1.V4H(), v2.V4S(), v3.V4S()), "addhn v1.4h, v2.4s, v3.4s");
-  COMPARE(Addhn(v2.V2S(), v3.V2D(), v4.V2D()), "addhn v2.2s, v3.2d, v4.2d");
-  COMPARE(Addhn2(v0.V16B(), v1.V8H(), v5.V8H()), "addhn2 v0.16b, v1.8h, v5.8h");
-  COMPARE(Addhn2(v1.V8H(), v2.V4S(), v6.V4S()), "addhn2 v1.8h, v2.4s, v6.4s");
-  COMPARE(Addhn2(v2.V4S(), v3.V2D(), v7.V2D()), "addhn2 v2.4s, v3.2d, v7.2d");
+  COMPARE_MACRO(Addhn(v0.V8B(), v1.V8H(), v2.V8H()),
+                "addhn v0.8b, v1.8h, v2.8h");
+  COMPARE_MACRO(Addhn(v1.V4H(), v2.V4S(), v3.V4S()),
+                "addhn v1.4h, v2.4s, v3.4s");
+  COMPARE_MACRO(Addhn(v2.V2S(), v3.V2D(), v4.V2D()),
+                "addhn v2.2s, v3.2d, v4.2d");
+  COMPARE_MACRO(Addhn2(v0.V16B(), v1.V8H(), v5.V8H()),
+                "addhn2 v0.16b, v1.8h, v5.8h");
+  COMPARE_MACRO(Addhn2(v1.V8H(), v2.V4S(), v6.V4S()),
+                "addhn2 v1.8h, v2.4s, v6.4s");
+  COMPARE_MACRO(Addhn2(v2.V4S(), v3.V2D(), v7.V2D()),
+                "addhn2 v2.4s, v3.2d, v7.2d");
 
-  COMPARE(Raddhn(v0.V8B(), v1.V8H(), v2.V8H()), "raddhn v0.8b, v1.8h, v2.8h");
-  COMPARE(Raddhn(v1.V4H(), v2.V4S(), v3.V4S()), "raddhn v1.4h, v2.4s, v3.4s");
-  COMPARE(Raddhn(v2.V2S(), v3.V2D(), v4.V2D()), "raddhn v2.2s, v3.2d, v4.2d");
-  COMPARE(Raddhn2(v0.V16B(), v1.V8H(), v5.V8H()),
-          "raddhn2 v0.16b, v1.8h, v5.8h");
-  COMPARE(Raddhn2(v1.V8H(), v2.V4S(), v6.V4S()), "raddhn2 v1.8h, v2.4s, v6.4s");
-  COMPARE(Raddhn2(v2.V4S(), v3.V2D(), v7.V2D()), "raddhn2 v2.4s, v3.2d, v7.2d");
+  COMPARE_MACRO(Raddhn(v0.V8B(), v1.V8H(), v2.V8H()),
+                "raddhn v0.8b, v1.8h, v2.8h");
+  COMPARE_MACRO(Raddhn(v1.V4H(), v2.V4S(), v3.V4S()),
+                "raddhn v1.4h, v2.4s, v3.4s");
+  COMPARE_MACRO(Raddhn(v2.V2S(), v3.V2D(), v4.V2D()),
+                "raddhn v2.2s, v3.2d, v4.2d");
+  COMPARE_MACRO(Raddhn2(v0.V16B(), v1.V8H(), v5.V8H()),
+                "raddhn2 v0.16b, v1.8h, v5.8h");
+  COMPARE_MACRO(Raddhn2(v1.V8H(), v2.V4S(), v6.V4S()),
+                "raddhn2 v1.8h, v2.4s, v6.4s");
+  COMPARE_MACRO(Raddhn2(v2.V4S(), v3.V2D(), v7.V2D()),
+                "raddhn2 v2.4s, v3.2d, v7.2d");
 
-  COMPARE(Subhn(v1.V4H(), v2.V4S(), v3.V4S()), "subhn v1.4h, v2.4s, v3.4s");
-  COMPARE(Subhn(v2.V2S(), v3.V2D(), v4.V2D()), "subhn v2.2s, v3.2d, v4.2d");
-  COMPARE(Subhn2(v0.V16B(), v1.V8H(), v5.V8H()), "subhn2 v0.16b, v1.8h, v5.8h");
-  COMPARE(Subhn2(v1.V8H(), v2.V4S(), v6.V4S()), "subhn2 v1.8h, v2.4s, v6.4s");
-  COMPARE(Subhn2(v2.V4S(), v3.V2D(), v7.V2D()), "subhn2 v2.4s, v3.2d, v7.2d");
+  COMPARE_MACRO(Subhn(v1.V4H(), v2.V4S(), v3.V4S()),
+                "subhn v1.4h, v2.4s, v3.4s");
+  COMPARE_MACRO(Subhn(v2.V2S(), v3.V2D(), v4.V2D()),
+                "subhn v2.2s, v3.2d, v4.2d");
+  COMPARE_MACRO(Subhn2(v0.V16B(), v1.V8H(), v5.V8H()),
+                "subhn2 v0.16b, v1.8h, v5.8h");
+  COMPARE_MACRO(Subhn2(v1.V8H(), v2.V4S(), v6.V4S()),
+                "subhn2 v1.8h, v2.4s, v6.4s");
+  COMPARE_MACRO(Subhn2(v2.V4S(), v3.V2D(), v7.V2D()),
+                "subhn2 v2.4s, v3.2d, v7.2d");
 
-  COMPARE(Rsubhn(v0.V8B(), v1.V8H(), v2.V8H()), "rsubhn v0.8b, v1.8h, v2.8h");
-  COMPARE(Rsubhn(v1.V4H(), v2.V4S(), v3.V4S()), "rsubhn v1.4h, v2.4s, v3.4s");
-  COMPARE(Rsubhn(v2.V2S(), v3.V2D(), v4.V2D()), "rsubhn v2.2s, v3.2d, v4.2d");
-  COMPARE(Rsubhn2(v0.V16B(), v1.V8H(), v5.V8H()),
-         "rsubhn2 v0.16b, v1.8h, v5.8h");
-  COMPARE(Rsubhn2(v1.V8H(), v2.V4S(), v6.V4S()), "rsubhn2 v1.8h, v2.4s, v6.4s");
-  COMPARE(Rsubhn2(v2.V4S(), v3.V2D(), v7.V2D()), "rsubhn2 v2.4s, v3.2d, v7.2d");
+  COMPARE_MACRO(Rsubhn(v0.V8B(), v1.V8H(), v2.V8H()),
+                "rsubhn v0.8b, v1.8h, v2.8h");
+  COMPARE_MACRO(Rsubhn(v1.V4H(), v2.V4S(), v3.V4S()),
+                "rsubhn v1.4h, v2.4s, v3.4s");
+  COMPARE_MACRO(Rsubhn(v2.V2S(), v3.V2D(), v4.V2D()),
+                "rsubhn v2.2s, v3.2d, v4.2d");
+  COMPARE_MACRO(Rsubhn2(v0.V16B(), v1.V8H(), v5.V8H()),
+                "rsubhn2 v0.16b, v1.8h, v5.8h");
+  COMPARE_MACRO(Rsubhn2(v1.V8H(), v2.V4S(), v6.V4S()),
+                "rsubhn2 v1.8h, v2.4s, v6.4s");
+  COMPARE_MACRO(Rsubhn2(v2.V4S(), v3.V2D(), v7.V2D()),
+                "rsubhn2 v2.4s, v3.2d, v7.2d");
 
-  COMPARE(Pmull(v0.V8H(), v1.V8B(), v2.V8B()), "pmull v0.8h, v1.8b, v2.8b");
-  COMPARE(Pmull2(v2.V8H(), v3.V16B(), v4.V16B()),
-          "pmull2 v2.8h, v3.16b, v4.16b");
+  COMPARE_MACRO(Pmull(v0.V8H(), v1.V8B(), v2.V8B()),
+                "pmull v0.8h, v1.8b, v2.8b");
+  COMPARE_MACRO(Pmull2(v2.V8H(), v3.V16B(), v4.V16B()),
+                "pmull2 v2.8h, v3.16b, v4.16b");
 
   CLEANUP();
 }
 
 
 TEST(neon_perm) {
-  SETUP_MACRO();
+  SETUP();
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Trn1(v0.M, v1.M, v2.M), "trn1 v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Trn1(v0.M, v1.M, v2.M), "trn1 v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Trn2(v0.M, v1.M, v2.M), "trn2 v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Trn2(v0.M, v1.M, v2.M), "trn2 v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Uzp1(v0.M, v1.M, v2.M), "uzp1 v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Uzp1(v0.M, v1.M, v2.M), "uzp1 v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Uzp2(v0.M, v1.M, v2.M), "uzp2 v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Uzp2(v0.M, v1.M, v2.M), "uzp2 v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Zip1(v0.M, v1.M, v2.M), "zip1 v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Zip1(v0.M, v1.M, v2.M), "zip1 v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Zip2(v0.M, v1.M, v2.M), "zip2 v0." S ", v1." S ", v2." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Zip2(v0.M, v1.M, v2.M), "zip2 v0." S ", v1." S ", v2." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
   CLEANUP();
 }
 
 
 TEST(neon_copy) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Ins(v1.V16B(), 4, v5.V16B(), 0), "mov v1.b[4], v5.b[0]");
-  COMPARE(Ins(v2.V8B(),  5, v6.V8B(),  1), "mov v2.b[5], v6.b[1]");
-  COMPARE(Ins(v3.B(),    6, v7.B(),    2), "mov v3.b[6], v7.b[2]");
-  COMPARE(Ins(v4.V8H(),  7, v8.V8H(),  3), "mov v4.h[7], v8.h[3]");
-  COMPARE(Ins(v5.V4H(),  3, v9.V4H(),  0), "mov v5.h[3], v9.h[0]");
-  COMPARE(Ins(v6.H(),    6, v1.H(),    1), "mov v6.h[6], v1.h[1]");
-  COMPARE(Ins(v7.V4S(),  2, v2.V4S(),  2), "mov v7.s[2], v2.s[2]");
-  COMPARE(Ins(v8.V2S(),  1, v3.V2S(),  0), "mov v8.s[1], v3.s[0]");
-  COMPARE(Ins(v9.S(),    0, v4.S(),    1), "mov v9.s[0], v4.s[1]");
-  COMPARE(Ins(v1.V2D(),  1, v5.V2D(),  0), "mov v1.d[1], v5.d[0]");
-  COMPARE(Ins(v2.D(),    0, v6.D(),    1), "mov v2.d[0], v6.d[1]");
+  COMPARE_MACRO(Ins(v1.V16B(), 4, v5.V16B(), 0), "mov v1.b[4], v5.b[0]");
+  COMPARE_MACRO(Ins(v2.V8B(), 5, v6.V8B(), 1), "mov v2.b[5], v6.b[1]");
+  COMPARE_MACRO(Ins(v3.B(), 6, v7.B(), 2), "mov v3.b[6], v7.b[2]");
+  COMPARE_MACRO(Ins(v4.V8H(), 7, v8.V8H(), 3), "mov v4.h[7], v8.h[3]");
+  COMPARE_MACRO(Ins(v5.V4H(), 3, v9.V4H(), 0), "mov v5.h[3], v9.h[0]");
+  COMPARE_MACRO(Ins(v6.H(), 6, v1.H(), 1), "mov v6.h[6], v1.h[1]");
+  COMPARE_MACRO(Ins(v7.V4S(), 2, v2.V4S(), 2), "mov v7.s[2], v2.s[2]");
+  COMPARE_MACRO(Ins(v8.V2S(), 1, v3.V2S(), 0), "mov v8.s[1], v3.s[0]");
+  COMPARE_MACRO(Ins(v9.S(), 0, v4.S(), 1), "mov v9.s[0], v4.s[1]");
+  COMPARE_MACRO(Ins(v1.V2D(), 1, v5.V2D(), 0), "mov v1.d[1], v5.d[0]");
+  COMPARE_MACRO(Ins(v2.D(), 0, v6.D(), 1), "mov v2.d[0], v6.d[1]");
 
-  COMPARE(Mov(v3.V16B(), 4, v7.V16B(), 0), "mov v3.b[4], v7.b[0]");
-  COMPARE(Mov(v4.V8B(),  5, v8.V8B(),  1), "mov v4.b[5], v8.b[1]");
-  COMPARE(Mov(v5.B(),    6, v9.B(),    2), "mov v5.b[6], v9.b[2]");
-  COMPARE(Mov(v6.V8H(),  7, v1.V8H(),  3), "mov v6.h[7], v1.h[3]");
-  COMPARE(Mov(v7.V4H(),  0, v2.V4H(),  0), "mov v7.h[0], v2.h[0]");
-  COMPARE(Mov(v8.H(),    1, v3.H(),    1), "mov v8.h[1], v3.h[1]");
-  COMPARE(Mov(v9.V4S(),  2, v4.V4S(),  2), "mov v9.s[2], v4.s[2]");
-  COMPARE(Mov(v1.V2S(),  3, v5.V2S(),  0), "mov v1.s[3], v5.s[0]");
-  COMPARE(Mov(v2.S(),    0, v6.S(),    1), "mov v2.s[0], v6.s[1]");
-  COMPARE(Mov(v3.V2D(),  1, v7.V2D(),  0), "mov v3.d[1], v7.d[0]");
-  COMPARE(Mov(v4.D(),    0, v8.D(),    1), "mov v4.d[0], v8.d[1]");
+  COMPARE_MACRO(Mov(v3.V16B(), 4, v7.V16B(), 0), "mov v3.b[4], v7.b[0]");
+  COMPARE_MACRO(Mov(v4.V8B(), 5, v8.V8B(), 1), "mov v4.b[5], v8.b[1]");
+  COMPARE_MACRO(Mov(v5.B(), 6, v9.B(), 2), "mov v5.b[6], v9.b[2]");
+  COMPARE_MACRO(Mov(v6.V8H(), 7, v1.V8H(), 3), "mov v6.h[7], v1.h[3]");
+  COMPARE_MACRO(Mov(v7.V4H(), 0, v2.V4H(), 0), "mov v7.h[0], v2.h[0]");
+  COMPARE_MACRO(Mov(v8.H(), 1, v3.H(), 1), "mov v8.h[1], v3.h[1]");
+  COMPARE_MACRO(Mov(v9.V4S(), 2, v4.V4S(), 2), "mov v9.s[2], v4.s[2]");
+  COMPARE_MACRO(Mov(v1.V2S(), 3, v5.V2S(), 0), "mov v1.s[3], v5.s[0]");
+  COMPARE_MACRO(Mov(v2.S(), 0, v6.S(), 1), "mov v2.s[0], v6.s[1]");
+  COMPARE_MACRO(Mov(v3.V2D(), 1, v7.V2D(), 0), "mov v3.d[1], v7.d[0]");
+  COMPARE_MACRO(Mov(v4.D(), 0, v8.D(), 1), "mov v4.d[0], v8.d[1]");
 
-  COMPARE(Ins(v1.V16B(), 4, w0), "mov v1.b[4], w0");
-  COMPARE(Ins(v2.V8B(),  5, w1), "mov v2.b[5], w1");
-  COMPARE(Ins(v3.B(),    6, w2), "mov v3.b[6], w2");
-  COMPARE(Ins(v4.V8H(),  7, w3), "mov v4.h[7], w3");
-  COMPARE(Ins(v5.V4H(),  3, w0), "mov v5.h[3], w0");
-  COMPARE(Ins(v6.H(),    6, w1), "mov v6.h[6], w1");
-  COMPARE(Ins(v7.V4S(),  2, w2), "mov v7.s[2], w2");
-  COMPARE(Ins(v8.V2S(),  1, w0), "mov v8.s[1], w0");
-  COMPARE(Ins(v9.S(),    0, w1), "mov v9.s[0], w1");
-  COMPARE(Ins(v1.V2D(),  1, x0), "mov v1.d[1], x0");
-  COMPARE(Ins(v2.D(),    0, x1), "mov v2.d[0], x1");
+  COMPARE_MACRO(Ins(v1.V16B(), 4, w0), "mov v1.b[4], w0");
+  COMPARE_MACRO(Ins(v2.V8B(), 5, w1), "mov v2.b[5], w1");
+  COMPARE_MACRO(Ins(v3.B(), 6, w2), "mov v3.b[6], w2");
+  COMPARE_MACRO(Ins(v4.V8H(), 7, w3), "mov v4.h[7], w3");
+  COMPARE_MACRO(Ins(v5.V4H(), 3, w0), "mov v5.h[3], w0");
+  COMPARE_MACRO(Ins(v6.H(), 6, w1), "mov v6.h[6], w1");
+  COMPARE_MACRO(Ins(v7.V4S(), 2, w2), "mov v7.s[2], w2");
+  COMPARE_MACRO(Ins(v8.V2S(), 1, w0), "mov v8.s[1], w0");
+  COMPARE_MACRO(Ins(v9.S(), 0, w1), "mov v9.s[0], w1");
+  COMPARE_MACRO(Ins(v1.V2D(), 1, x0), "mov v1.d[1], x0");
+  COMPARE_MACRO(Ins(v2.D(), 0, x1), "mov v2.d[0], x1");
 
-  COMPARE(Mov(v1.V16B(), 4, w0), "mov v1.b[4], w0");
-  COMPARE(Mov(v2.V8B(),  5, w1), "mov v2.b[5], w1");
-  COMPARE(Mov(v3.B(),    6, w2), "mov v3.b[6], w2");
-  COMPARE(Mov(v4.V8H(),  7, w3), "mov v4.h[7], w3");
-  COMPARE(Mov(v5.V4H(),  3, w0), "mov v5.h[3], w0");
-  COMPARE(Mov(v6.H(),    6, w1), "mov v6.h[6], w1");
-  COMPARE(Mov(v7.V4S(),  2, w2), "mov v7.s[2], w2");
-  COMPARE(Mov(v8.V2S(),  1, w0), "mov v8.s[1], w0");
-  COMPARE(Mov(v9.S(),    0, w1), "mov v9.s[0], w1");
-  COMPARE(Mov(v1.V2D(),  1, x0), "mov v1.d[1], x0");
-  COMPARE(Mov(v2.D(),    0, x1), "mov v2.d[0], x1");
+  COMPARE_MACRO(Mov(v1.V16B(), 4, w0), "mov v1.b[4], w0");
+  COMPARE_MACRO(Mov(v2.V8B(), 5, w1), "mov v2.b[5], w1");
+  COMPARE_MACRO(Mov(v3.B(), 6, w2), "mov v3.b[6], w2");
+  COMPARE_MACRO(Mov(v4.V8H(), 7, w3), "mov v4.h[7], w3");
+  COMPARE_MACRO(Mov(v5.V4H(), 3, w0), "mov v5.h[3], w0");
+  COMPARE_MACRO(Mov(v6.H(), 6, w1), "mov v6.h[6], w1");
+  COMPARE_MACRO(Mov(v7.V4S(), 2, w2), "mov v7.s[2], w2");
+  COMPARE_MACRO(Mov(v8.V2S(), 1, w0), "mov v8.s[1], w0");
+  COMPARE_MACRO(Mov(v9.S(), 0, w1), "mov v9.s[0], w1");
+  COMPARE_MACRO(Mov(v1.V2D(), 1, x0), "mov v1.d[1], x0");
+  COMPARE_MACRO(Mov(v2.D(), 0, x1), "mov v2.d[0], x1");
 
-  COMPARE(Dup(v5.V8B(), v9.V8B(), 6),   "dup v5.8b, v9.b[6]");
-  COMPARE(Dup(v6.V16B(), v1.V16B(), 5), "dup v6.16b, v1.b[5]");
-  COMPARE(Dup(v7.V4H(), v2.V4H(), 4),   "dup v7.4h, v2.h[4]");
-  COMPARE(Dup(v8.V8H(), v3.V8H(), 3),   "dup v8.8h, v3.h[3]");
-  COMPARE(Dup(v9.V2S(), v4.V2S(), 2),   "dup v9.2s, v4.s[2]");
-  COMPARE(Dup(v1.V4S(), v5.V4S(), 1),   "dup v1.4s, v5.s[1]");
-  COMPARE(Dup(v2.V2D(), v6.V2D(), 0),   "dup v2.2d, v6.d[0]");
+  COMPARE_MACRO(Dup(v5.V8B(), v9.V8B(), 6), "dup v5.8b, v9.b[6]");
+  COMPARE_MACRO(Dup(v6.V16B(), v1.V16B(), 5), "dup v6.16b, v1.b[5]");
+  COMPARE_MACRO(Dup(v7.V4H(), v2.V4H(), 4), "dup v7.4h, v2.h[4]");
+  COMPARE_MACRO(Dup(v8.V8H(), v3.V8H(), 3), "dup v8.8h, v3.h[3]");
+  COMPARE_MACRO(Dup(v9.V2S(), v4.V2S(), 2), "dup v9.2s, v4.s[2]");
+  COMPARE_MACRO(Dup(v1.V4S(), v5.V4S(), 1), "dup v1.4s, v5.s[1]");
+  COMPARE_MACRO(Dup(v2.V2D(), v6.V2D(), 0), "dup v2.2d, v6.d[0]");
 
-  COMPARE(Dup(v5.B(), v9.B(), 6),   "mov b5, v9.b[6]");
-  COMPARE(Dup(v7.H(), v2.H(), 4),   "mov h7, v2.h[4]");
-  COMPARE(Dup(v9.S(), v4.S(), 2),   "mov s9, v4.s[2]");
-  COMPARE(Dup(v2.D(), v6.D(), 0),   "mov d2, v6.d[0]");
+  COMPARE_MACRO(Dup(v5.B(), v9.B(), 6), "mov b5, v9.b[6]");
+  COMPARE_MACRO(Dup(v7.H(), v2.H(), 4), "mov h7, v2.h[4]");
+  COMPARE_MACRO(Dup(v9.S(), v4.S(), 2), "mov s9, v4.s[2]");
+  COMPARE_MACRO(Dup(v2.D(), v6.D(), 0), "mov d2, v6.d[0]");
 
-  COMPARE(Mov(v5.B(), v9.B(), 6),   "mov b5, v9.b[6]");
-  COMPARE(Mov(v7.H(), v2.H(), 4),   "mov h7, v2.h[4]");
-  COMPARE(Mov(v9.S(), v4.S(), 2),   "mov s9, v4.s[2]");
-  COMPARE(Mov(v2.D(), v6.D(), 0),   "mov d2, v6.d[0]");
+  COMPARE_MACRO(Mov(v5.B(), v9.B(), 6), "mov b5, v9.b[6]");
+  COMPARE_MACRO(Mov(v7.H(), v2.H(), 4), "mov h7, v2.h[4]");
+  COMPARE_MACRO(Mov(v9.S(), v4.S(), 2), "mov s9, v4.s[2]");
+  COMPARE_MACRO(Mov(v2.D(), v6.D(), 0), "mov d2, v6.d[0]");
 
-  COMPARE(Mov(v0.B(), v1.V8B(), 7),   "mov b0, v1.b[7]");
-  COMPARE(Mov(b2, v3.V16B(), 15),     "mov b2, v3.b[15]");
-  COMPARE(Mov(v4.H(), v5.V4H(), 3),   "mov h4, v5.h[3]");
-  COMPARE(Mov(h6, v7.V8H(), 7),       "mov h6, v7.h[7]");
-  COMPARE(Mov(v8.S(), v9.V2S(), 1),   "mov s8, v9.s[1]");
-  COMPARE(Mov(s10, v11.V4S(), 3),     "mov s10, v11.s[3]");
-  COMPARE(Mov(v12.D(), v13.V2D(), 1), "mov d12, v13.d[1]");
+  COMPARE_MACRO(Mov(v0.B(), v1.V8B(), 7), "mov b0, v1.b[7]");
+  COMPARE_MACRO(Mov(b2, v3.V16B(), 15), "mov b2, v3.b[15]");
+  COMPARE_MACRO(Mov(v4.H(), v5.V4H(), 3), "mov h4, v5.h[3]");
+  COMPARE_MACRO(Mov(h6, v7.V8H(), 7), "mov h6, v7.h[7]");
+  COMPARE_MACRO(Mov(v8.S(), v9.V2S(), 1), "mov s8, v9.s[1]");
+  COMPARE_MACRO(Mov(s10, v11.V4S(), 3), "mov s10, v11.s[3]");
+  COMPARE_MACRO(Mov(v12.D(), v13.V2D(), 1), "mov d12, v13.d[1]");
 
-  COMPARE(Dup(v5.V8B(),  w0), "dup v5.8b, w0");
-  COMPARE(Dup(v6.V16B(), w1), "dup v6.16b, w1");
-  COMPARE(Dup(v7.V4H(),  w2), "dup v7.4h, w2");
-  COMPARE(Dup(v8.V8H(),  w3), "dup v8.8h, w3");
-  COMPARE(Dup(v9.V2S(),  w4), "dup v9.2s, w4");
-  COMPARE(Dup(v1.V4S(),  w5), "dup v1.4s, w5");
-  COMPARE(Dup(v2.V2D(),  x6), "dup v2.2d, x6");
+  COMPARE_MACRO(Dup(v5.V8B(), w0), "dup v5.8b, w0");
+  COMPARE_MACRO(Dup(v6.V16B(), w1), "dup v6.16b, w1");
+  COMPARE_MACRO(Dup(v7.V4H(), w2), "dup v7.4h, w2");
+  COMPARE_MACRO(Dup(v8.V8H(), w3), "dup v8.8h, w3");
+  COMPARE_MACRO(Dup(v9.V2S(), w4), "dup v9.2s, w4");
+  COMPARE_MACRO(Dup(v1.V4S(), w5), "dup v1.4s, w5");
+  COMPARE_MACRO(Dup(v2.V2D(), x6), "dup v2.2d, x6");
 
-  COMPARE(Smov(w0, v1.V16B(), 4), "smov w0, v1.b[4]");
-  COMPARE(Smov(w1, v2.V8B(),  5), "smov w1, v2.b[5]");
-  COMPARE(Smov(w2, v3.B(),    6), "smov w2, v3.b[6]");
-  COMPARE(Smov(w3, v4.V8H(),  7), "smov w3, v4.h[7]");
-  COMPARE(Smov(w0, v5.V4H(),  3), "smov w0, v5.h[3]");
-  COMPARE(Smov(w1, v6.H(),    6), "smov w1, v6.h[6]");
+  COMPARE_MACRO(Smov(w0, v1.V16B(), 4), "smov w0, v1.b[4]");
+  COMPARE_MACRO(Smov(w1, v2.V8B(), 5), "smov w1, v2.b[5]");
+  COMPARE_MACRO(Smov(w2, v3.B(), 6), "smov w2, v3.b[6]");
+  COMPARE_MACRO(Smov(w3, v4.V8H(), 7), "smov w3, v4.h[7]");
+  COMPARE_MACRO(Smov(w0, v5.V4H(), 3), "smov w0, v5.h[3]");
+  COMPARE_MACRO(Smov(w1, v6.H(), 6), "smov w1, v6.h[6]");
 
-  COMPARE(Smov(x0, v1.V16B(), 4), "smov x0, v1.b[4]");
-  COMPARE(Smov(x1, v2.V8B(),  5), "smov x1, v2.b[5]");
-  COMPARE(Smov(x2, v3.B(),    6), "smov x2, v3.b[6]");
-  COMPARE(Smov(x3, v4.V8H(),  7), "smov x3, v4.h[7]");
-  COMPARE(Smov(x0, v5.V4H(),  3), "smov x0, v5.h[3]");
-  COMPARE(Smov(x1, v6.H(),    6), "smov x1, v6.h[6]");
-  COMPARE(Smov(x2, v7.V4S(),  2), "smov x2, v7.s[2]");
-  COMPARE(Smov(x0, v8.V2S(),  1), "smov x0, v8.s[1]");
-  COMPARE(Smov(x1, v9.S(),    0), "smov x1, v9.s[0]");
+  COMPARE_MACRO(Smov(x0, v1.V16B(), 4), "smov x0, v1.b[4]");
+  COMPARE_MACRO(Smov(x1, v2.V8B(), 5), "smov x1, v2.b[5]");
+  COMPARE_MACRO(Smov(x2, v3.B(), 6), "smov x2, v3.b[6]");
+  COMPARE_MACRO(Smov(x3, v4.V8H(), 7), "smov x3, v4.h[7]");
+  COMPARE_MACRO(Smov(x0, v5.V4H(), 3), "smov x0, v5.h[3]");
+  COMPARE_MACRO(Smov(x1, v6.H(), 6), "smov x1, v6.h[6]");
+  COMPARE_MACRO(Smov(x2, v7.V4S(), 2), "smov x2, v7.s[2]");
+  COMPARE_MACRO(Smov(x0, v8.V2S(), 1), "smov x0, v8.s[1]");
+  COMPARE_MACRO(Smov(x1, v9.S(), 0), "smov x1, v9.s[0]");
 
-  COMPARE(Umov(w0, v1.V16B(), 4), "umov w0, v1.b[4]");
-  COMPARE(Umov(w1, v2.V8B(),  5), "umov w1, v2.b[5]");
-  COMPARE(Umov(w2, v3.B(),    6), "umov w2, v3.b[6]");
-  COMPARE(Umov(w3, v4.V8H(),  7), "umov w3, v4.h[7]");
-  COMPARE(Umov(w0, v5.V4H(),  3), "umov w0, v5.h[3]");
-  COMPARE(Umov(w1, v6.H(),    6), "umov w1, v6.h[6]");
-  COMPARE(Umov(w2, v7.V4S(),  2), "mov w2, v7.s[2]");
-  COMPARE(Umov(w0, v8.V2S(),  1), "mov w0, v8.s[1]");
-  COMPARE(Umov(w1, v9.S(),    0), "mov w1, v9.s[0]");
-  COMPARE(Umov(x0, v1.V2D(),  1), "mov x0, v1.d[1]");
-  COMPARE(Umov(x1, v2.D(),    0), "mov x1, v2.d[0]");
+  COMPARE_MACRO(Umov(w0, v1.V16B(), 4), "umov w0, v1.b[4]");
+  COMPARE_MACRO(Umov(w1, v2.V8B(), 5), "umov w1, v2.b[5]");
+  COMPARE_MACRO(Umov(w2, v3.B(), 6), "umov w2, v3.b[6]");
+  COMPARE_MACRO(Umov(w3, v4.V8H(), 7), "umov w3, v4.h[7]");
+  COMPARE_MACRO(Umov(w0, v5.V4H(), 3), "umov w0, v5.h[3]");
+  COMPARE_MACRO(Umov(w1, v6.H(), 6), "umov w1, v6.h[6]");
+  COMPARE_MACRO(Umov(w2, v7.V4S(), 2), "mov w2, v7.s[2]");
+  COMPARE_MACRO(Umov(w0, v8.V2S(), 1), "mov w0, v8.s[1]");
+  COMPARE_MACRO(Umov(w1, v9.S(), 0), "mov w1, v9.s[0]");
+  COMPARE_MACRO(Umov(x0, v1.V2D(), 1), "mov x0, v1.d[1]");
+  COMPARE_MACRO(Umov(x1, v2.D(), 0), "mov x1, v2.d[0]");
 
-  COMPARE(Mov(w2, v7.V4S(),  2), "mov w2, v7.s[2]");
-  COMPARE(Mov(w0, v8.V2S(),  1), "mov w0, v8.s[1]");
-  COMPARE(Mov(w1, v9.S(),    0), "mov w1, v9.s[0]");
-  COMPARE(Mov(x0, v1.V2D(),  1), "mov x0, v1.d[1]");
-  COMPARE(Mov(x1, v2.D(),    0), "mov x1, v2.d[0]");
+  COMPARE_MACRO(Mov(w2, v7.V4S(), 2), "mov w2, v7.s[2]");
+  COMPARE_MACRO(Mov(w0, v8.V2S(), 1), "mov w0, v8.s[1]");
+  COMPARE_MACRO(Mov(w1, v9.S(), 0), "mov w1, v9.s[0]");
+  COMPARE_MACRO(Mov(x0, v1.V2D(), 1), "mov x0, v1.d[1]");
+  COMPARE_MACRO(Mov(x1, v2.D(), 0), "mov x1, v2.d[0]");
 
   CLEANUP();
 }
 
 
 TEST(neon_table) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Tbl(v0.V8B(), v1.V16B(), v2.V8B()), "tbl v0.8b, {v1.16b}, v2.8b");
-  COMPARE(Tbl(v3.V8B(), v4.V16B(), v5.V16B(), v6.V8B()),
-          "tbl v3.8b, {v4.16b, v5.16b}, v6.8b");
-  COMPARE(Tbl(v7.V8B(), v8.V16B(), v9.V16B(), v10.V16B(), v11.V8B()),
-          "tbl v7.8b, {v8.16b, v9.16b, v10.16b}, v11.8b");
-  COMPARE(Tbl(v12.V8B(), v13.V16B(), v14.V16B(), v15.V16B(), v16.V16B(), v17.V8B()),
-          "tbl v12.8b, {v13.16b, v14.16b, v15.16b, v16.16b}, v17.8b");
-  COMPARE(Tbl(v18.V16B(), v19.V16B(), v20.V16B()), "tbl v18.16b, {v19.16b}, v20.16b");
-  COMPARE(Tbl(v21.V16B(), v22.V16B(), v23.V16B(), v24.V16B()),
-          "tbl v21.16b, {v22.16b, v23.16b}, v24.16b");
-  COMPARE(Tbl(v25.V16B(), v26.V16B(), v27.V16B(), v28.V16B(), v29.V16B()),
-          "tbl v25.16b, {v26.16b, v27.16b, v28.16b}, v29.16b");
-  COMPARE(Tbl(v30.V16B(), v31.V16B(), v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B()),
-          "tbl v30.16b, {v31.16b, v0.16b, v1.16b, v2.16b}, v3.16b");
+  COMPARE_MACRO(Tbl(v0.V8B(), v1.V16B(), v2.V8B()),
+                "tbl v0.8b, {v1.16b}, v2.8b");
+  COMPARE_MACRO(Tbl(v3.V8B(), v4.V16B(), v5.V16B(), v6.V8B()),
+                "tbl v3.8b, {v4.16b, v5.16b}, v6.8b");
+  COMPARE_MACRO(Tbl(v7.V8B(), v8.V16B(), v9.V16B(), v10.V16B(), v11.V8B()),
+                "tbl v7.8b, {v8.16b, v9.16b, v10.16b}, v11.8b");
+  COMPARE_MACRO(Tbl(v12.V8B(),
+                    v13.V16B(),
+                    v14.V16B(),
+                    v15.V16B(),
+                    v16.V16B(),
+                    v17.V8B()),
+                "tbl v12.8b, {v13.16b, v14.16b, v15.16b, v16.16b}, v17.8b");
+  COMPARE_MACRO(Tbl(v18.V16B(), v19.V16B(), v20.V16B()),
+                "tbl v18.16b, {v19.16b}, v20.16b");
+  COMPARE_MACRO(Tbl(v21.V16B(), v22.V16B(), v23.V16B(), v24.V16B()),
+                "tbl v21.16b, {v22.16b, v23.16b}, v24.16b");
+  COMPARE_MACRO(Tbl(v25.V16B(), v26.V16B(), v27.V16B(), v28.V16B(), v29.V16B()),
+                "tbl v25.16b, {v26.16b, v27.16b, v28.16b}, v29.16b");
+  COMPARE_MACRO(Tbl(v30.V16B(),
+                    v31.V16B(),
+                    v0.V16B(),
+                    v1.V16B(),
+                    v2.V16B(),
+                    v3.V16B()),
+                "tbl v30.16b, {v31.16b, v0.16b, v1.16b, v2.16b}, v3.16b");
 
-  COMPARE(Tbx(v0.V8B(), v1.V16B(), v2.V8B()), "tbx v0.8b, {v1.16b}, v2.8b");
-  COMPARE(Tbx(v3.V8B(), v4.V16B(), v5.V16B(), v6.V8B()),
-          "tbx v3.8b, {v4.16b, v5.16b}, v6.8b");
-  COMPARE(Tbx(v7.V8B(), v8.V16B(), v9.V16B(), v10.V16B(), v11.V8B()),
-          "tbx v7.8b, {v8.16b, v9.16b, v10.16b}, v11.8b");
-  COMPARE(Tbx(v12.V8B(), v13.V16B(), v14.V16B(), v15.V16B(), v16.V16B(), v17.V8B()),
-          "tbx v12.8b, {v13.16b, v14.16b, v15.16b, v16.16b}, v17.8b");
-  COMPARE(Tbx(v18.V16B(), v19.V16B(), v20.V16B()), "tbx v18.16b, {v19.16b}, v20.16b");
-  COMPARE(Tbx(v21.V16B(), v22.V16B(), v23.V16B(), v24.V16B()),
-          "tbx v21.16b, {v22.16b, v23.16b}, v24.16b");
-  COMPARE(Tbx(v25.V16B(), v26.V16B(), v27.V16B(), v28.V16B(), v29.V16B()),
-          "tbx v25.16b, {v26.16b, v27.16b, v28.16b}, v29.16b");
-  COMPARE(Tbx(v30.V16B(), v31.V16B(), v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B()),
-          "tbx v30.16b, {v31.16b, v0.16b, v1.16b, v2.16b}, v3.16b");
+  COMPARE_MACRO(Tbx(v0.V8B(), v1.V16B(), v2.V8B()),
+                "tbx v0.8b, {v1.16b}, v2.8b");
+  COMPARE_MACRO(Tbx(v3.V8B(), v4.V16B(), v5.V16B(), v6.V8B()),
+                "tbx v3.8b, {v4.16b, v5.16b}, v6.8b");
+  COMPARE_MACRO(Tbx(v7.V8B(), v8.V16B(), v9.V16B(), v10.V16B(), v11.V8B()),
+                "tbx v7.8b, {v8.16b, v9.16b, v10.16b}, v11.8b");
+  COMPARE_MACRO(Tbx(v12.V8B(),
+                    v13.V16B(),
+                    v14.V16B(),
+                    v15.V16B(),
+                    v16.V16B(),
+                    v17.V8B()),
+                "tbx v12.8b, {v13.16b, v14.16b, v15.16b, v16.16b}, v17.8b");
+  COMPARE_MACRO(Tbx(v18.V16B(), v19.V16B(), v20.V16B()),
+                "tbx v18.16b, {v19.16b}, v20.16b");
+  COMPARE_MACRO(Tbx(v21.V16B(), v22.V16B(), v23.V16B(), v24.V16B()),
+                "tbx v21.16b, {v22.16b, v23.16b}, v24.16b");
+  COMPARE_MACRO(Tbx(v25.V16B(), v26.V16B(), v27.V16B(), v28.V16B(), v29.V16B()),
+                "tbx v25.16b, {v26.16b, v27.16b, v28.16b}, v29.16b");
+  COMPARE_MACRO(Tbx(v30.V16B(),
+                    v31.V16B(),
+                    v0.V16B(),
+                    v1.V16B(),
+                    v2.V16B(),
+                    v3.V16B()),
+                "tbx v30.16b, {v31.16b, v0.16b, v1.16b, v2.16b}, v3.16b");
 
   CLEANUP();
 }
 
 
 TEST(neon_extract) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Ext(v4.V8B(), v5.V8B(), v6.V8B(), 0), "ext v4.8b, v5.8b, v6.8b, #0");
-  COMPARE(Ext(v1.V8B(), v2.V8B(), v3.V8B(), 7), "ext v1.8b, v2.8b, v3.8b, #7");
-  COMPARE(Ext(v1.V16B(), v2.V16B(), v3.V16B(), 0),
-          "ext v1.16b, v2.16b, v3.16b, #0");
-  COMPARE(Ext(v1.V16B(), v2.V16B(), v3.V16B(), 15),
-          "ext v1.16b, v2.16b, v3.16b, #15");
+  COMPARE_MACRO(Ext(v4.V8B(), v5.V8B(), v6.V8B(), 0),
+                "ext v4.8b, v5.8b, v6.8b, #0");
+  COMPARE_MACRO(Ext(v1.V8B(), v2.V8B(), v3.V8B(), 7),
+                "ext v1.8b, v2.8b, v3.8b, #7");
+  COMPARE_MACRO(Ext(v1.V16B(), v2.V16B(), v3.V16B(), 0),
+                "ext v1.16b, v2.16b, v3.16b, #0");
+  COMPARE_MACRO(Ext(v1.V16B(), v2.V16B(), v3.V16B(), 15),
+                "ext v1.16b, v2.16b, v3.16b, #15");
 
   CLEANUP();
 }
 
 
 TEST(neon_modimm) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Orr(v4.V4H(), 0xaa, 0), "orr v4.4h, #0xaa, lsl #0");
-  COMPARE(Orr(v1.V8H(), 0xcc, 8), "orr v1.8h, #0xcc, lsl #8");
-  COMPARE(Orr(v4.V2S(), 0xaa, 0), "orr v4.2s, #0xaa, lsl #0");
-  COMPARE(Orr(v1.V2S(), 0xcc, 8), "orr v1.2s, #0xcc, lsl #8");
-  COMPARE(Orr(v4.V4S(), 0xaa, 16), "orr v4.4s, #0xaa, lsl #16");
-  COMPARE(Orr(v1.V4S(), 0xcc, 24), "orr v1.4s, #0xcc, lsl #24");
+  COMPARE_MACRO(Orr(v4.V4H(), 0xaa, 0), "orr v4.4h, #0xaa, lsl #0");
+  COMPARE_MACRO(Orr(v1.V8H(), 0xcc, 8), "orr v1.8h, #0xcc, lsl #8");
+  COMPARE_MACRO(Orr(v4.V2S(), 0xaa, 0), "orr v4.2s, #0xaa, lsl #0");
+  COMPARE_MACRO(Orr(v1.V2S(), 0xcc, 8), "orr v1.2s, #0xcc, lsl #8");
+  COMPARE_MACRO(Orr(v4.V4S(), 0xaa, 16), "orr v4.4s, #0xaa, lsl #16");
+  COMPARE_MACRO(Orr(v1.V4S(), 0xcc, 24), "orr v1.4s, #0xcc, lsl #24");
 
-  COMPARE(Bic(v4.V4H(), 0xaa, 0), "bic v4.4h, #0xaa, lsl #0");
-  COMPARE(Bic(v1.V8H(), 0xcc, 8), "bic v1.8h, #0xcc, lsl #8");
-  COMPARE(Bic(v4.V2S(), 0xaa, 0), "bic v4.2s, #0xaa, lsl #0");
-  COMPARE(Bic(v1.V2S(), 0xcc, 8), "bic v1.2s, #0xcc, lsl #8");
-  COMPARE(Bic(v4.V4S(), 0xaa, 16), "bic v4.4s, #0xaa, lsl #16");
-  COMPARE(Bic(v1.V4S(), 0xcc, 24), "bic v1.4s, #0xcc, lsl #24");
+  COMPARE_MACRO(Bic(v4.V4H(), 0xaa, 0), "bic v4.4h, #0xaa, lsl #0");
+  COMPARE_MACRO(Bic(v1.V8H(), 0xcc, 8), "bic v1.8h, #0xcc, lsl #8");
+  COMPARE_MACRO(Bic(v4.V2S(), 0xaa, 0), "bic v4.2s, #0xaa, lsl #0");
+  COMPARE_MACRO(Bic(v1.V2S(), 0xcc, 8), "bic v1.2s, #0xcc, lsl #8");
+  COMPARE_MACRO(Bic(v4.V4S(), 0xaa, 16), "bic v4.4s, #0xaa, lsl #16");
+  COMPARE_MACRO(Bic(v1.V4S(), 0xcc, 24), "bic v1.4s, #0xcc, lsl #24");
 
-  COMPARE(Mvni(v4.V4H(), 0xaa, LSL, 0), "mvni v4.4h, #0xaa, lsl #0");
-  COMPARE(Mvni(v1.V8H(), 0xcc, LSL, 8), "mvni v1.8h, #0xcc, lsl #8");
-  COMPARE(Mvni(v4.V2S(), 0xaa, LSL, 0), "mvni v4.2s, #0xaa, lsl #0");
-  COMPARE(Mvni(v1.V2S(), 0xcc, LSL, 8), "mvni v1.2s, #0xcc, lsl #8");
-  COMPARE(Mvni(v4.V4S(), 0xaa, LSL, 16), "mvni v4.4s, #0xaa, lsl #16");
-  COMPARE(Mvni(v1.V4S(), 0xcc, LSL, 24), "mvni v1.4s, #0xcc, lsl #24");
+  COMPARE_MACRO(Mvni(v4.V4H(), 0xaa, LSL, 0), "mvni v4.4h, #0xaa, lsl #0");
+  COMPARE_MACRO(Mvni(v1.V8H(), 0xcc, LSL, 8), "mvni v1.8h, #0xcc, lsl #8");
+  COMPARE_MACRO(Mvni(v4.V2S(), 0xaa, LSL, 0), "mvni v4.2s, #0xaa, lsl #0");
+  COMPARE_MACRO(Mvni(v1.V2S(), 0xcc, LSL, 8), "mvni v1.2s, #0xcc, lsl #8");
+  COMPARE_MACRO(Mvni(v4.V4S(), 0xaa, LSL, 16), "mvni v4.4s, #0xaa, lsl #16");
+  COMPARE_MACRO(Mvni(v1.V4S(), 0xcc, LSL, 24), "mvni v1.4s, #0xcc, lsl #24");
 
-  COMPARE(Mvni(v4.V2S(), 0xaa, MSL, 8), "mvni v4.2s, #0xaa, msl #8");
-  COMPARE(Mvni(v1.V2S(), 0xcc, MSL, 16), "mvni v1.2s, #0xcc, msl #16");
-  COMPARE(Mvni(v4.V4S(), 0xaa, MSL, 8), "mvni v4.4s, #0xaa, msl #8");
-  COMPARE(Mvni(v1.V4S(), 0xcc, MSL, 16), "mvni v1.4s, #0xcc, msl #16");
+  COMPARE_MACRO(Mvni(v4.V2S(), 0xaa, MSL, 8), "mvni v4.2s, #0xaa, msl #8");
+  COMPARE_MACRO(Mvni(v1.V2S(), 0xcc, MSL, 16), "mvni v1.2s, #0xcc, msl #16");
+  COMPARE_MACRO(Mvni(v4.V4S(), 0xaa, MSL, 8), "mvni v4.4s, #0xaa, msl #8");
+  COMPARE_MACRO(Mvni(v1.V4S(), 0xcc, MSL, 16), "mvni v1.4s, #0xcc, msl #16");
 
-  COMPARE(Movi(v4.V8B(),  0xaa), "movi v4.8b, #0xaa");
-  COMPARE(Movi(v1.V16B(), 0xcc), "movi v1.16b, #0xcc");
+  COMPARE_MACRO(Movi(v4.V8B(), 0xaa), "movi v4.8b, #0xaa");
+  COMPARE_MACRO(Movi(v1.V16B(), 0xcc), "movi v1.16b, #0xcc");
 
-  COMPARE(Movi(v4.V4H(), 0xaa, LSL, 0), "movi v4.4h, #0xaa, lsl #0");
-  COMPARE(Movi(v1.V8H(), 0xcc, LSL, 8), "movi v1.8h, #0xcc, lsl #8");
+  COMPARE_MACRO(Movi(v4.V4H(), 0xaa, LSL, 0), "movi v4.4h, #0xaa, lsl #0");
+  COMPARE_MACRO(Movi(v1.V8H(), 0xcc, LSL, 8), "movi v1.8h, #0xcc, lsl #8");
 
-  COMPARE(Movi(v4.V2S(), 0xaa, LSL, 0), "movi v4.2s, #0xaa, lsl #0");
-  COMPARE(Movi(v1.V2S(), 0xcc, LSL, 8), "movi v1.2s, #0xcc, lsl #8");
-  COMPARE(Movi(v4.V4S(), 0xaa, LSL, 16), "movi v4.4s, #0xaa, lsl #16");
-  COMPARE(Movi(v1.V4S(), 0xcc, LSL, 24), "movi v1.4s, #0xcc, lsl #24");
+  COMPARE_MACRO(Movi(v4.V2S(), 0xaa, LSL, 0), "movi v4.2s, #0xaa, lsl #0");
+  COMPARE_MACRO(Movi(v1.V2S(), 0xcc, LSL, 8), "movi v1.2s, #0xcc, lsl #8");
+  COMPARE_MACRO(Movi(v4.V4S(), 0xaa, LSL, 16), "movi v4.4s, #0xaa, lsl #16");
+  COMPARE_MACRO(Movi(v1.V4S(), 0xcc, LSL, 24), "movi v1.4s, #0xcc, lsl #24");
 
-  COMPARE(Movi(v4.V2S(), 0xaa, MSL, 8), "movi v4.2s, #0xaa, msl #8");
-  COMPARE(Movi(v1.V2S(), 0xcc, MSL, 16), "movi v1.2s, #0xcc, msl #16");
-  COMPARE(Movi(v4.V4S(), 0xaa, MSL, 8), "movi v4.4s, #0xaa, msl #8");
-  COMPARE(Movi(v1.V4S(), 0xcc, MSL, 16), "movi v1.4s, #0xcc, msl #16");
+  COMPARE_MACRO(Movi(v4.V2S(), 0xaa, MSL, 8), "movi v4.2s, #0xaa, msl #8");
+  COMPARE_MACRO(Movi(v1.V2S(), 0xcc, MSL, 16), "movi v1.2s, #0xcc, msl #16");
+  COMPARE_MACRO(Movi(v4.V4S(), 0xaa, MSL, 8), "movi v4.4s, #0xaa, msl #8");
+  COMPARE_MACRO(Movi(v1.V4S(), 0xcc, MSL, 16), "movi v1.4s, #0xcc, msl #16");
 
-  COMPARE(Movi(d2,       0xffff0000ffffff), "movi d2, #0xffff0000ffffff");
-  COMPARE(Movi(v1.V2D(), 0xffff0000ffffff), "movi v1.2d, #0xffff0000ffffff");
+  COMPARE_MACRO(Movi(d2, 0xffff0000ffffff), "movi d2, #0xffff0000ffffff");
+  COMPARE_MACRO(Movi(v1.V2D(), 0xffff0000ffffff),
+                "movi v1.2d, #0xffff0000ffffff");
 
-  COMPARE(Fmov(v0.V2S(), 1.0f), "fmov v0.2s, #0x70 (1.0000)");
-  COMPARE(Fmov(v31.V2S(), -13.0f), "fmov v31.2s, #0xaa (-13.0000)");
-  COMPARE(Fmov(v0.V4S(), 1.0f), "fmov v0.4s, #0x70 (1.0000)");
-  COMPARE(Fmov(v31.V4S(), -13.0f), "fmov v31.4s, #0xaa (-13.0000)");
-  COMPARE(Fmov(v1.V2D(), 1.0), "fmov v1.2d, #0x70 (1.0000)");
-  COMPARE(Fmov(v29.V2D(), -13.0), "fmov v29.2d, #0xaa (-13.0000)");
+  COMPARE_MACRO(Fmov(v0.V2S(), 1.0f), "fmov v0.2s, #0x70 (1.0000)");
+  COMPARE_MACRO(Fmov(v31.V2S(), -13.0f), "fmov v31.2s, #0xaa (-13.0000)");
+  COMPARE_MACRO(Fmov(v0.V4S(), 1.0f), "fmov v0.4s, #0x70 (1.0000)");
+  COMPARE_MACRO(Fmov(v31.V4S(), -13.0f), "fmov v31.4s, #0xaa (-13.0000)");
+  COMPARE_MACRO(Fmov(v1.V2D(), 1.0), "fmov v1.2d, #0x70 (1.0000)");
+  COMPARE_MACRO(Fmov(v29.V2D(), -13.0), "fmov v29.2d, #0xaa (-13.0000)");
 
   // An unallocated form of fmov.
   COMPARE(dci(0x2f07ffff), "unallocated (NEONModifiedImmediate)");
@@ -5177,795 +5591,1097 @@
 
 
 TEST(neon_2regmisc) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Shll(v1.V8H(),  v8.V8B(),  8), "shll v1.8h, v8.8b, #8");
-  COMPARE(Shll(v3.V4S(),  v1.V4H(),  16), "shll v3.4s, v1.4h, #16");
-  COMPARE(Shll(v5.V2D(),  v3.V2S(),  32), "shll v5.2d, v3.2s, #32");
-  COMPARE(Shll2(v2.V8H(), v9.V16B(), 8), "shll2 v2.8h, v9.16b, #8");
-  COMPARE(Shll2(v4.V4S(), v2.V8H(),  16), "shll2 v4.4s, v2.8h, #16");
-  COMPARE(Shll2(v6.V2D(), v4.V4S(),  32), "shll2 v6.2d, v4.4s, #32");
+  COMPARE_MACRO(Shll(v1.V8H(), v8.V8B(), 8), "shll v1.8h, v8.8b, #8");
+  COMPARE_MACRO(Shll(v3.V4S(), v1.V4H(), 16), "shll v3.4s, v1.4h, #16");
+  COMPARE_MACRO(Shll(v5.V2D(), v3.V2S(), 32), "shll v5.2d, v3.2s, #32");
+  COMPARE_MACRO(Shll2(v2.V8H(), v9.V16B(), 8), "shll2 v2.8h, v9.16b, #8");
+  COMPARE_MACRO(Shll2(v4.V4S(), v2.V8H(), 16), "shll2 v4.4s, v2.8h, #16");
+  COMPARE_MACRO(Shll2(v6.V2D(), v4.V4S(), 32), "shll2 v6.2d, v4.4s, #32");
 
   // An unallocated form of shll.
   COMPARE(dci(0x2ee13bff), "unallocated (NEON2RegMisc)");
   // An unallocated form of shll2.
   COMPARE(dci(0x6ee13bff), "unallocated (NEON2RegMisc)");
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Cmeq(v0.M, v1.M, 0), "cmeq v0." S ", v1." S ", #0");
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Cmeq(v0.M, v1.M, 0), "cmeq v0." S ", v1." S ", #0");
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Cmge(v0.M, v1.M, 0), "cmge v0." S ", v1." S ", #0");
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Cmge(v0.M, v1.M, 0), "cmge v0." S ", v1." S ", #0");
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Cmgt(v0.M, v1.M, 0), "cmgt v0." S ", v1." S ", #0");
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Cmgt(v0.M, v1.M, 0), "cmgt v0." S ", v1." S ", #0");
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Cmle(v0.M, v1.M, 0), "cmle v0." S ", v1." S ", #0");
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Cmle(v0.M, v1.M, 0), "cmle v0." S ", v1." S ", #0");
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Cmlt(v0.M, v1.M, 0), "cmlt v0." S ", v1." S ", #0");
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Cmlt(v0.M, v1.M, 0), "cmlt v0." S ", v1." S ", #0");
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Cmeq(v0.D(), v1.D(), 0), "cmeq d0, d1, #0");
-  COMPARE(Cmge(v3.D(), v4.D(), 0), "cmge d3, d4, #0");
-  COMPARE(Cmgt(v6.D(), v7.D(), 0), "cmgt d6, d7, #0");
-  COMPARE(Cmle(v0.D(), v1.D(), 0), "cmle d0, d1, #0");
-  COMPARE(Cmlt(v3.D(), v4.D(), 0), "cmlt d3, d4, #0");
+  COMPARE_MACRO(Cmeq(v0.D(), v1.D(), 0), "cmeq d0, d1, #0");
+  COMPARE_MACRO(Cmge(v3.D(), v4.D(), 0), "cmge d3, d4, #0");
+  COMPARE_MACRO(Cmgt(v6.D(), v7.D(), 0), "cmgt d6, d7, #0");
+  COMPARE_MACRO(Cmle(v0.D(), v1.D(), 0), "cmle d0, d1, #0");
+  COMPARE_MACRO(Cmlt(v3.D(), v4.D(), 0), "cmlt d3, d4, #0");
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fcmeq(v0.M, v1.M, 0), "fcmeq v0." S ", v1." S ", #0.0");
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Fcmeq(v0.M, v1.M, 0), "fcmeq v0." S ", v1." S ", #0.0");
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Fcmeq(v0.S(), v1.S(), 0), "fcmeq s0, s1, #0.0");
-  COMPARE(Fcmeq(v0.D(), v1.D(), 0), "fcmeq d0, d1, #0.0");
+  COMPARE_MACRO(Fcmeq(v0.S(), v1.S(), 0),
+                "fcmeq s0, s1, "
+                "#0.0");
+  COMPARE_MACRO(Fcmeq(v0.D(), v1.D(), 0),
+                "fcmeq d0, d1, "
+                "#0.0");
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fcmge(v0.M, v1.M, 0), "fcmge v0." S ", v1." S ", #0.0");
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Fcmge(v0.M, v1.M, 0), "fcmge v0." S ", v1." S ", #0.0");
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Fcmge(v0.S(), v1.S(), 0), "fcmge s0, s1, #0.0");
-  COMPARE(Fcmge(v0.D(), v1.D(), 0), "fcmge d0, d1, #0.0");
+  COMPARE_MACRO(Fcmge(v0.S(), v1.S(), 0),
+                "fcmge s0, s1, "
+                "#0.0");
+  COMPARE_MACRO(Fcmge(v0.D(), v1.D(), 0),
+                "fcmge d0, d1, "
+                "#0.0");
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fcmgt(v0.M, v1.M, 0), "fcmgt v0." S ", v1." S ", #0.0");
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Fcmgt(v0.M, v1.M, 0), "fcmgt v0." S ", v1." S ", #0.0");
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Fcmgt(v0.S(), v1.S(), 0), "fcmgt s0, s1, #0.0");
-  COMPARE(Fcmgt(v0.D(), v1.D(), 0), "fcmgt d0, d1, #0.0");
+  COMPARE_MACRO(Fcmgt(v0.S(), v1.S(), 0),
+                "fcmgt s0, s1, "
+                "#0.0");
+  COMPARE_MACRO(Fcmgt(v0.D(), v1.D(), 0),
+                "fcmgt d0, d1, "
+                "#0.0");
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fcmle(v0.M, v1.M, 0), "fcmle v0." S ", v1." S ", #0.0");
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Fcmle(v0.M, v1.M, 0), "fcmle v0." S ", v1." S ", #0.0");
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Fcmle(v0.S(), v1.S(), 0), "fcmle s0, s1, #0.0");
-  COMPARE(Fcmle(v0.D(), v1.D(), 0), "fcmle d0, d1, #0.0");
+  COMPARE_MACRO(Fcmle(v0.S(), v1.S(), 0),
+                "fcmle s0, s1, "
+                "#0.0");
+  COMPARE_MACRO(Fcmle(v0.D(), v1.D(), 0),
+                "fcmle d0, d1, "
+                "#0.0");
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Fcmlt(v0.M, v1.M, 0), "fcmlt v0." S ", v1." S ", #0.0");
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Fcmlt(v0.M, v1.M, 0), "fcmlt v0." S ", v1." S ", #0.0");
   NEON_FORMAT_LIST_FP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Fcmlt(v0.S(), v1.S(), 0), "fcmlt s0, s1, #0.0");
-  COMPARE(Fcmlt(v0.D(), v1.D(), 0), "fcmlt d0, d1, #0.0");
+  COMPARE_MACRO(Fcmlt(v0.S(), v1.S(), 0),
+                "fcmlt s0, s1, "
+                "#0.0");
+  COMPARE_MACRO(Fcmlt(v0.D(), v1.D(), 0),
+                "fcmlt d0, d1, "
+                "#0.0");
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Neg(v0.M, v1.M), "neg v0." S ", v1." S);
+#define DISASM_INST(M, S) COMPARE_MACRO(Neg(v0.M, v1.M), "neg v0." S ", v1." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Neg(v0.D(), v1.D()),    "neg d0, d1");
+  COMPARE_MACRO(Neg(v0.D(), v1.D()), "neg d0, d1");
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Sqneg(v0.M, v1.M), "sqneg v0." S ", v1." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Sqneg(v0.M, v1.M), "sqneg v0." S ", v1." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Sqneg(b0, b1),  "sqneg b0, b1");
-  COMPARE(Sqneg(h1, h2),  "sqneg h1, h2");
-  COMPARE(Sqneg(s2, s3),  "sqneg s2, s3");
-  COMPARE(Sqneg(d3, d4),  "sqneg d3, d4");
+  COMPARE_MACRO(Sqneg(b0, b1), "sqneg b0, b1");
+  COMPARE_MACRO(Sqneg(h1, h2), "sqneg h1, h2");
+  COMPARE_MACRO(Sqneg(s2, s3), "sqneg s2, s3");
+  COMPARE_MACRO(Sqneg(d3, d4), "sqneg d3, d4");
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Abs(v0.M, v1.M), "abs v0." S ", v1." S);
+#define DISASM_INST(M, S) COMPARE_MACRO(Abs(v0.M, v1.M), "abs v0." S ", v1." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Abs(v0.D(), v1.D()),    "abs d0, d1");
+  COMPARE_MACRO(Abs(v0.D(), v1.D()), "abs d0, d1");
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Sqabs(v0.M, v1.M), "sqabs v0." S ", v1." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Sqabs(v0.M, v1.M), "sqabs v0." S ", v1." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Sqabs(b0, b1),  "sqabs b0, b1");
-  COMPARE(Sqabs(h1, h2),  "sqabs h1, h2");
-  COMPARE(Sqabs(s2, s3),  "sqabs s2, s3");
-  COMPARE(Sqabs(d3, d4),  "sqabs d3, d4");
+  COMPARE_MACRO(Sqabs(b0, b1), "sqabs b0, b1");
+  COMPARE_MACRO(Sqabs(h1, h2), "sqabs h1, h2");
+  COMPARE_MACRO(Sqabs(s2, s3), "sqabs s2, s3");
+  COMPARE_MACRO(Sqabs(d3, d4), "sqabs d3, d4");
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Suqadd(v0.M, v1.M), "suqadd v0." S ", v1." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Suqadd(v0.M, v1.M), "suqadd v0." S ", v1." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Suqadd(b0, b1),  "suqadd b0, b1");
-  COMPARE(Suqadd(h1, h2),  "suqadd h1, h2");
-  COMPARE(Suqadd(s2, s3),  "suqadd s2, s3");
-  COMPARE(Suqadd(d3, d4),  "suqadd d3, d4");
+  COMPARE_MACRO(Suqadd(b0, b1), "suqadd b0, b1");
+  COMPARE_MACRO(Suqadd(h1, h2), "suqadd h1, h2");
+  COMPARE_MACRO(Suqadd(s2, s3), "suqadd s2, s3");
+  COMPARE_MACRO(Suqadd(d3, d4), "suqadd d3, d4");
 
-  #define DISASM_INST(M, S)  \
-  COMPARE(Usqadd(v0.M, v1.M), "usqadd v0." S ", v1." S);
+#define DISASM_INST(M, S) \
+  COMPARE_MACRO(Usqadd(v0.M, v1.M), "usqadd v0." S ", v1." S);
   NEON_FORMAT_LIST(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  COMPARE(Usqadd(b0, b1),  "usqadd b0, b1");
-  COMPARE(Usqadd(h1, h2),  "usqadd h1, h2");
-  COMPARE(Usqadd(s2, s3),  "usqadd s2, s3");
-  COMPARE(Usqadd(d3, d4),  "usqadd d3, d4");
+  COMPARE_MACRO(Usqadd(b0, b1), "usqadd b0, b1");
+  COMPARE_MACRO(Usqadd(h1, h2), "usqadd h1, h2");
+  COMPARE_MACRO(Usqadd(s2, s3), "usqadd s2, s3");
+  COMPARE_MACRO(Usqadd(d3, d4), "usqadd d3, d4");
 
-  COMPARE(Xtn(v0.V8B(), v1.V8H()), "xtn v0.8b, v1.8h");
-  COMPARE(Xtn(v1.V4H(), v2.V4S()), "xtn v1.4h, v2.4s");
-  COMPARE(Xtn(v2.V2S(), v3.V2D()), "xtn v2.2s, v3.2d");
-  COMPARE(Xtn2(v0.V16B(), v1.V8H()), "xtn2 v0.16b, v1.8h");
-  COMPARE(Xtn2(v1.V8H(), v2.V4S()), "xtn2 v1.8h, v2.4s");
-  COMPARE(Xtn2(v2.V4S(), v3.V2D()), "xtn2 v2.4s, v3.2d");
+  COMPARE_MACRO(Xtn(v0.V8B(), v1.V8H()),
+                "xtn v0.8b, "
+                "v1.8h");
+  COMPARE_MACRO(Xtn(v1.V4H(), v2.V4S()),
+                "xtn v1.4h, "
+                "v2.4s");
+  COMPARE_MACRO(Xtn(v2.V2S(), v3.V2D()),
+                "xtn v2.2s, "
+                "v3.2d");
+  COMPARE_MACRO(Xtn2(v0.V16B(), v1.V8H()),
+                "xtn2 v0.16b, "
+                "v1.8h");
+  COMPARE_MACRO(Xtn2(v1.V8H(), v2.V4S()),
+                "xtn2 v1.8h, "
+                "v2.4s");
+  COMPARE_MACRO(Xtn2(v2.V4S(), v3.V2D()),
+                "xtn2 v2.4s, "
+                "v3.2d");
 
-  COMPARE(Sqxtn(v0.V8B(), v1.V8H()), "sqxtn v0.8b, v1.8h");
-  COMPARE(Sqxtn(v1.V4H(), v2.V4S()), "sqxtn v1.4h, v2.4s");
-  COMPARE(Sqxtn(v2.V2S(), v3.V2D()), "sqxtn v2.2s, v3.2d");
-  COMPARE(Sqxtn2(v0.V16B(), v1.V8H()), "sqxtn2 v0.16b, v1.8h");
-  COMPARE(Sqxtn2(v1.V8H(), v2.V4S()), "sqxtn2 v1.8h, v2.4s");
-  COMPARE(Sqxtn2(v2.V4S(), v3.V2D()), "sqxtn2 v2.4s, v3.2d");
-  COMPARE(Sqxtn(b19, h0), "sqxtn b19, h0");
-  COMPARE(Sqxtn(h20, s0), "sqxtn h20, s0") ;
-  COMPARE(Sqxtn(s21, d0), "sqxtn s21, d0");
+  COMPARE_MACRO(Sqxtn(v0.V8B(), v1.V8H()),
+                "sqxtn v0.8b, "
+                "v1.8h");
+  COMPARE_MACRO(Sqxtn(v1.V4H(), v2.V4S()),
+                "sqxtn v1.4h, "
+                "v2.4s");
+  COMPARE_MACRO(Sqxtn(v2.V2S(), v3.V2D()),
+                "sqxtn v2.2s, "
+                "v3.2d");
+  COMPARE_MACRO(Sqxtn2(v0.V16B(), v1.V8H()),
+                "sqxtn2 v0.16b, "
+                "v1.8h");
+  COMPARE_MACRO(Sqxtn2(v1.V8H(), v2.V4S()),
+                "sqxtn2 v1.8h, "
+                "v2.4s");
+  COMPARE_MACRO(Sqxtn2(v2.V4S(), v3.V2D()),
+                "sqxtn2 v2.4s, "
+                "v3.2d");
+  COMPARE_MACRO(Sqxtn(b19, h0), "sqxtn b19, h0");
+  COMPARE_MACRO(Sqxtn(h20, s0), "sqxtn h20, s0");
+  COMPARE_MACRO(Sqxtn(s21, d0), "sqxtn s21, d0");
 
-  COMPARE(Uqxtn(v0.V8B(), v1.V8H()), "uqxtn v0.8b, v1.8h");
-  COMPARE(Uqxtn(v1.V4H(), v2.V4S()), "uqxtn v1.4h, v2.4s");
-  COMPARE(Uqxtn(v2.V2S(), v3.V2D()), "uqxtn v2.2s, v3.2d");
-  COMPARE(Uqxtn2(v0.V16B(), v1.V8H()), "uqxtn2 v0.16b, v1.8h");
-  COMPARE(Uqxtn2(v1.V8H(), v2.V4S()), "uqxtn2 v1.8h, v2.4s");
-  COMPARE(Uqxtn2(v2.V4S(), v3.V2D()), "uqxtn2 v2.4s, v3.2d");
-  COMPARE(Uqxtn(b19, h0), "uqxtn b19, h0");
-  COMPARE(Uqxtn(h20, s0), "uqxtn h20, s0") ;
-  COMPARE(Uqxtn(s21, d0), "uqxtn s21, d0");
+  COMPARE_MACRO(Uqxtn(v0.V8B(), v1.V8H()),
+                "uqxtn v0.8b, "
+                "v1.8h");
+  COMPARE_MACRO(Uqxtn(v1.V4H(), v2.V4S()),
+                "uqxtn v1.4h, "
+                "v2.4s");
+  COMPARE_MACRO(Uqxtn(v2.V2S(), v3.V2D()),
+                "uqxtn v2.2s, "
+                "v3.2d");
+  COMPARE_MACRO(Uqxtn2(v0.V16B(), v1.V8H()),
+                "uqxtn2 v0.16b, "
+                "v1.8h");
+  COMPARE_MACRO(Uqxtn2(v1.V8H(), v2.V4S()),
+                "uqxtn2 v1.8h, "
+                "v2.4s");
+  COMPARE_MACRO(Uqxtn2(v2.V4S(), v3.V2D()),
+                "uqxtn2 v2.4s, "
+                "v3.2d");
+  COMPARE_MACRO(Uqxtn(b19, h0), "uqxtn b19, h0");
+  COMPARE_MACRO(Uqxtn(h20, s0), "uqxtn h20, s0");
+  COMPARE_MACRO(Uqxtn(s21, d0), "uqxtn s21, d0");
 
-  COMPARE(Sqxtun(v0.V8B(), v1.V8H()), "sqxtun v0.8b, v1.8h");
-  COMPARE(Sqxtun(v1.V4H(), v2.V4S()), "sqxtun v1.4h, v2.4s");
-  COMPARE(Sqxtun(v2.V2S(), v3.V2D()), "sqxtun v2.2s, v3.2d");
-  COMPARE(Sqxtun2(v0.V16B(), v1.V8H()), "sqxtun2 v0.16b, v1.8h");
-  COMPARE(Sqxtun2(v1.V8H(), v2.V4S()), "sqxtun2 v1.8h, v2.4s");
-  COMPARE(Sqxtun2(v2.V4S(), v3.V2D()), "sqxtun2 v2.4s, v3.2d");
-  COMPARE(Sqxtun(b19, h0), "sqxtun b19, h0");
-  COMPARE(Sqxtun(h20, s0), "sqxtun h20, s0") ;
-  COMPARE(Sqxtun(s21, d0), "sqxtun s21, d0");
+  COMPARE_MACRO(Sqxtun(v0.V8B(), v1.V8H()),
+                "sqxtun v0.8b, "
+                "v1.8h");
+  COMPARE_MACRO(Sqxtun(v1.V4H(), v2.V4S()),
+                "sqxtun v1.4h, "
+                "v2.4s");
+  COMPARE_MACRO(Sqxtun(v2.V2S(), v3.V2D()),
+                "sqxtun v2.2s, "
+                "v3.2d");
+  COMPARE_MACRO(Sqxtun2(v0.V16B(), v1.V8H()),
+                "sqxtun2 v0.16b, "
+                "v1.8h");
+  COMPARE_MACRO(Sqxtun2(v1.V8H(), v2.V4S()),
+                "sqxtun2 v1.8h, "
+                "v2.4s");
+  COMPARE_MACRO(Sqxtun2(v2.V4S(), v3.V2D()),
+                "sqxtun2 v2.4s, "
+                "v3.2d");
+  COMPARE_MACRO(Sqxtun(b19, h0), "sqxtun b19, h0");
+  COMPARE_MACRO(Sqxtun(h20, s0), "sqxtun h20, s0");
+  COMPARE_MACRO(Sqxtun(s21, d0), "sqxtun s21, d0");
 
-  COMPARE(Cls(v1.V8B(),  v8.V8B()),  "cls v1.8b, v8.8b");
-  COMPARE(Cls(v2.V16B(), v9.V16B()), "cls v2.16b, v9.16b");
-  COMPARE(Cls(v3.V4H(),  v1.V4H()),  "cls v3.4h, v1.4h");
-  COMPARE(Cls(v4.V8H(),  v2.V8H()),  "cls v4.8h, v2.8h");
-  COMPARE(Cls(v5.V2S(),  v3.V2S()),  "cls v5.2s, v3.2s");
-  COMPARE(Cls(v6.V4S(),  v4.V4S()),  "cls v6.4s, v4.4s");
+  COMPARE_MACRO(Cls(v1.V8B(), v8.V8B()),
+                "cls v1.8b, "
+                "v8.8b");
+  COMPARE_MACRO(Cls(v2.V16B(), v9.V16B()),
+                "cls v2.16b, "
+                "v9.16b");
+  COMPARE_MACRO(Cls(v3.V4H(), v1.V4H()),
+                "cls v3.4h, "
+                "v1.4h");
+  COMPARE_MACRO(Cls(v4.V8H(), v2.V8H()),
+                "cls v4.8h, "
+                "v2.8h");
+  COMPARE_MACRO(Cls(v5.V2S(), v3.V2S()),
+                "cls v5.2s, "
+                "v3.2s");
+  COMPARE_MACRO(Cls(v6.V4S(), v4.V4S()),
+                "cls v6.4s, "
+                "v4.4s");
 
-  COMPARE(Clz(v1.V8B(),  v8.V8B()),  "clz v1.8b, v8.8b");
-  COMPARE(Clz(v2.V16B(), v9.V16B()), "clz v2.16b, v9.16b");
-  COMPARE(Clz(v3.V4H(),  v1.V4H()),  "clz v3.4h, v1.4h");
-  COMPARE(Clz(v4.V8H(),  v2.V8H()),  "clz v4.8h, v2.8h");
-  COMPARE(Clz(v5.V2S(),  v3.V2S()),  "clz v5.2s, v3.2s");
-  COMPARE(Clz(v6.V4S(),  v4.V4S()),  "clz v6.4s, v4.4s");
+  COMPARE_MACRO(Clz(v1.V8B(), v8.V8B()),
+                "clz v1.8b, "
+                "v8.8b");
+  COMPARE_MACRO(Clz(v2.V16B(), v9.V16B()),
+                "clz v2.16b, "
+                "v9.16b");
+  COMPARE_MACRO(Clz(v3.V4H(), v1.V4H()),
+                "clz v3.4h, "
+                "v1.4h");
+  COMPARE_MACRO(Clz(v4.V8H(), v2.V8H()),
+                "clz v4.8h, "
+                "v2.8h");
+  COMPARE_MACRO(Clz(v5.V2S(), v3.V2S()),
+                "clz v5.2s, "
+                "v3.2s");
+  COMPARE_MACRO(Clz(v6.V4S(), v4.V4S()),
+                "clz v6.4s, "
+                "v4.4s");
 
-  COMPARE(Cnt(v1.V8B(),  v8.V8B()),  "cnt v1.8b, v8.8b");
-  COMPARE(Cnt(v2.V16B(), v9.V16B()), "cnt v2.16b, v9.16b");
+  COMPARE_MACRO(Cnt(v1.V8B(), v8.V8B()),
+                "cnt v1.8b, "
+                "v8.8b");
+  COMPARE_MACRO(Cnt(v2.V16B(), v9.V16B()),
+                "cnt v2.16b, "
+                "v9.16b");
 
-  COMPARE(Mvn(v4.V8B(), v5.V8B()), "mvn v4.8b, v5.8b");
-  COMPARE(Mvn(v4.V16B(), v5.V16B()), "mvn v4.16b, v5.16b");
+  COMPARE_MACRO(Mvn(v4.V8B(), v5.V8B()),
+                "mvn v4.8b, "
+                "v5.8b");
+  COMPARE_MACRO(Mvn(v4.V16B(), v5.V16B()),
+                "mvn v4.16b, "
+                "v5.16b");
 
-  COMPARE(Not(v4.V8B(), v5.V8B()), "mvn v4.8b, v5.8b");
-  COMPARE(Not(v4.V16B(), v5.V16B()), "mvn v4.16b, v5.16b");
+  COMPARE_MACRO(Not(v4.V8B(), v5.V8B()),
+                "mvn v4.8b, "
+                "v5.8b");
+  COMPARE_MACRO(Not(v4.V16B(), v5.V16B()),
+                "mvn v4.16b, "
+                "v5.16b");
 
-  COMPARE(Rev64(v1.V8B(),  v8.V8B()),  "rev64 v1.8b, v8.8b");
-  COMPARE(Rev64(v2.V16B(), v9.V16B()), "rev64 v2.16b, v9.16b");
-  COMPARE(Rev64(v3.V4H(),  v1.V4H()),  "rev64 v3.4h, v1.4h");
-  COMPARE(Rev64(v4.V8H(),  v2.V8H()),  "rev64 v4.8h, v2.8h");
-  COMPARE(Rev64(v5.V2S(),  v3.V2S()),  "rev64 v5.2s, v3.2s");
-  COMPARE(Rev64(v6.V4S(),  v4.V4S()),  "rev64 v6.4s, v4.4s");
+  COMPARE_MACRO(Rev64(v1.V8B(), v8.V8B()),
+                "rev64 v1.8b, "
+                "v8.8b");
+  COMPARE_MACRO(Rev64(v2.V16B(), v9.V16B()),
+                "rev64 v2.16b, "
+                "v9.16b");
+  COMPARE_MACRO(Rev64(v3.V4H(), v1.V4H()),
+                "rev64 v3.4h, "
+                "v1.4h");
+  COMPARE_MACRO(Rev64(v4.V8H(), v2.V8H()),
+                "rev64 v4.8h, "
+                "v2.8h");
+  COMPARE_MACRO(Rev64(v5.V2S(), v3.V2S()),
+                "rev64 v5.2s, "
+                "v3.2s");
+  COMPARE_MACRO(Rev64(v6.V4S(), v4.V4S()),
+                "rev64 v6.4s, "
+                "v4.4s");
 
-  COMPARE(Rev32(v1.V8B(),  v8.V8B()),  "rev32 v1.8b, v8.8b");
-  COMPARE(Rev32(v2.V16B(), v9.V16B()), "rev32 v2.16b, v9.16b");
-  COMPARE(Rev32(v3.V4H(),  v1.V4H()),  "rev32 v3.4h, v1.4h");
-  COMPARE(Rev32(v4.V8H(),  v2.V8H()),  "rev32 v4.8h, v2.8h");
+  COMPARE_MACRO(Rev32(v1.V8B(), v8.V8B()),
+                "rev32 v1.8b, "
+                "v8.8b");
+  COMPARE_MACRO(Rev32(v2.V16B(), v9.V16B()),
+                "rev32 v2.16b, "
+                "v9.16b");
+  COMPARE_MACRO(Rev32(v3.V4H(), v1.V4H()),
+                "rev32 v3.4h, "
+                "v1.4h");
+  COMPARE_MACRO(Rev32(v4.V8H(), v2.V8H()),
+                "rev32 v4.8h, "
+                "v2.8h");
 
-  COMPARE(Rev16(v1.V8B(),  v8.V8B()),  "rev16 v1.8b, v8.8b");
-  COMPARE(Rev16(v2.V16B(), v9.V16B()), "rev16 v2.16b, v9.16b");
+  COMPARE_MACRO(Rev16(v1.V8B(), v8.V8B()),
+                "rev16 v1.8b, "
+                "v8.8b");
+  COMPARE_MACRO(Rev16(v2.V16B(), v9.V16B()),
+                "rev16 v2.16b, "
+                "v9.16b");
 
-  COMPARE(Rbit(v1.V8B(),  v8.V8B()),  "rbit v1.8b, v8.8b");
-  COMPARE(Rbit(v2.V16B(), v9.V16B()), "rbit v2.16b, v9.16b");
+  COMPARE_MACRO(Rbit(v1.V8B(), v8.V8B()),
+                "rbit v1.8b, "
+                "v8.8b");
+  COMPARE_MACRO(Rbit(v2.V16B(), v9.V16B()),
+                "rbit v2.16b, "
+                "v9.16b");
 
-  COMPARE(Ursqrte(v2.V2S(), v9.V2S()),   "ursqrte v2.2s, v9.2s");
-  COMPARE(Ursqrte(v16.V4S(), v23.V4S()), "ursqrte v16.4s, v23.4s");
+  COMPARE_MACRO(Ursqrte(v2.V2S(), v9.V2S()),
+                "ursqrte v2.2s, "
+                "v9.2s");
+  COMPARE_MACRO(Ursqrte(v16.V4S(), v23.V4S()),
+                "ursqrte v16.4s, "
+                "v23.4s");
 
-  COMPARE(Urecpe(v2.V2S(), v9.V2S()),   "urecpe v2.2s, v9.2s");
-  COMPARE(Urecpe(v16.V4S(), v23.V4S()), "urecpe v16.4s, v23.4s");
+  COMPARE_MACRO(Urecpe(v2.V2S(), v9.V2S()),
+                "urecpe v2.2s, "
+                "v9.2s");
+  COMPARE_MACRO(Urecpe(v16.V4S(), v23.V4S()),
+                "urecpe v16.4s, "
+                "v23.4s");
 
-  COMPARE(Frsqrte(v2.V2S(), v9.V2S()),   "frsqrte v2.2s, v9.2s");
-  COMPARE(Frsqrte(v16.V4S(), v23.V4S()), "frsqrte v16.4s, v23.4s");
-  COMPARE(Frsqrte(v2.V2D(), v9.V2D()),   "frsqrte v2.2d, v9.2d");
-  COMPARE(Frsqrte(v0.S(), v1.S()), "frsqrte s0, s1");
-  COMPARE(Frsqrte(v0.D(), v1.D()), "frsqrte d0, d1");
+  COMPARE_MACRO(Frsqrte(v2.V2S(), v9.V2S()),
+                "frsqrte v2.2s, "
+                "v9.2s");
+  COMPARE_MACRO(Frsqrte(v16.V4S(), v23.V4S()),
+                "frsqrte v16.4s, "
+                "v23.4s");
+  COMPARE_MACRO(Frsqrte(v2.V2D(), v9.V2D()),
+                "frsqrte v2.2d, "
+                "v9.2d");
+  COMPARE_MACRO(Frsqrte(v0.S(), v1.S()), "frsqrte s0, s1");
+  COMPARE_MACRO(Frsqrte(v0.D(), v1.D()), "frsqrte d0, d1");
 
-  COMPARE(Frecpe(v2.V2S(), v9.V2S()),   "frecpe v2.2s, v9.2s");
-  COMPARE(Frecpe(v16.V4S(), v23.V4S()), "frecpe v16.4s, v23.4s");
-  COMPARE(Frecpe(v2.V2D(), v9.V2D()),   "frecpe v2.2d, v9.2d");
-  COMPARE(Frecpe(v0.S(), v1.S()), "frecpe s0, s1");
-  COMPARE(Frecpe(v0.D(), v1.D()), "frecpe d0, d1");
+  COMPARE_MACRO(Frecpe(v2.V2S(), v9.V2S()),
+                "frecpe v2.2s, "
+                "v9.2s");
+  COMPARE_MACRO(Frecpe(v16.V4S(), v23.V4S()),
+                "frecpe v16.4s, "
+                "v23.4s");
+  COMPARE_MACRO(Frecpe(v2.V2D(), v9.V2D()),
+                "frecpe v2.2d, "
+                "v9.2d");
+  COMPARE_MACRO(Frecpe(v0.S(), v1.S()), "frecpe s0, s1");
+  COMPARE_MACRO(Frecpe(v0.D(), v1.D()), "frecpe d0, d1");
 
-  COMPARE(Fabs(v2.V2S(), v9.V2S()),   "fabs v2.2s, v9.2s");
-  COMPARE(Fabs(v16.V4S(), v23.V4S()), "fabs v16.4s, v23.4s");
-  COMPARE(Fabs(v31.V2D(), v30.V2D()), "fabs v31.2d, v30.2d");
+  COMPARE_MACRO(Fabs(v2.V2S(), v9.V2S()),
+                "fabs v2.2s, "
+                "v9.2s");
+  COMPARE_MACRO(Fabs(v16.V4S(), v23.V4S()),
+                "fabs v16.4s, "
+                "v23.4s");
+  COMPARE_MACRO(Fabs(v31.V2D(), v30.V2D()),
+                "fabs v31.2d, "
+                "v30.2d");
 
-  COMPARE(Fneg(v2.V2S(), v9.V2S()),   "fneg v2.2s, v9.2s");
-  COMPARE(Fneg(v16.V4S(), v23.V4S()), "fneg v16.4s, v23.4s");
-  COMPARE(Fneg(v31.V2D(), v30.V2D()), "fneg v31.2d, v30.2d");
+  COMPARE_MACRO(Fneg(v2.V2S(), v9.V2S()),
+                "fneg v2.2s, "
+                "v9.2s");
+  COMPARE_MACRO(Fneg(v16.V4S(), v23.V4S()),
+                "fneg v16.4s, "
+                "v23.4s");
+  COMPARE_MACRO(Fneg(v31.V2D(), v30.V2D()),
+                "fneg v31.2d, "
+                "v30.2d");
 
-  COMPARE(Frintn(v2.V2S(), v9.V2S()),   "frintn v2.2s, v9.2s");
-  COMPARE(Frintn(v16.V4S(), v23.V4S()), "frintn v16.4s, v23.4s");
-  COMPARE(Frintn(v31.V2D(), v30.V2D()), "frintn v31.2d, v30.2d");
+  COMPARE_MACRO(Frintn(v2.V2S(), v9.V2S()),
+                "frintn v2.2s, "
+                "v9.2s");
+  COMPARE_MACRO(Frintn(v16.V4S(), v23.V4S()),
+                "frintn v16.4s, "
+                "v23.4s");
+  COMPARE_MACRO(Frintn(v31.V2D(), v30.V2D()),
+                "frintn v31.2d, "
+                "v30.2d");
 
-  COMPARE(Frinta(v2.V2S(), v9.V2S()),   "frinta v2.2s, v9.2s");
-  COMPARE(Frinta(v16.V4S(), v23.V4S()), "frinta v16.4s, v23.4s");
-  COMPARE(Frinta(v31.V2D(), v30.V2D()), "frinta v31.2d, v30.2d");
+  COMPARE_MACRO(Frinta(v2.V2S(), v9.V2S()),
+                "frinta v2.2s, "
+                "v9.2s");
+  COMPARE_MACRO(Frinta(v16.V4S(), v23.V4S()),
+                "frinta v16.4s, "
+                "v23.4s");
+  COMPARE_MACRO(Frinta(v31.V2D(), v30.V2D()),
+                "frinta v31.2d, "
+                "v30.2d");
 
-  COMPARE(Frintp(v2.V2S(), v9.V2S()),   "frintp v2.2s, v9.2s");
-  COMPARE(Frintp(v16.V4S(), v23.V4S()), "frintp v16.4s, v23.4s");
-  COMPARE(Frintp(v31.V2D(), v30.V2D()), "frintp v31.2d, v30.2d");
+  COMPARE_MACRO(Frintp(v2.V2S(), v9.V2S()),
+                "frintp v2.2s, "
+                "v9.2s");
+  COMPARE_MACRO(Frintp(v16.V4S(), v23.V4S()),
+                "frintp v16.4s, "
+                "v23.4s");
+  COMPARE_MACRO(Frintp(v31.V2D(), v30.V2D()),
+                "frintp v31.2d, "
+                "v30.2d");
 
-  COMPARE(Frintm(v2.V2S(), v9.V2S()),   "frintm v2.2s, v9.2s");
-  COMPARE(Frintm(v16.V4S(), v23.V4S()), "frintm v16.4s, v23.4s");
-  COMPARE(Frintm(v31.V2D(), v30.V2D()), "frintm v31.2d, v30.2d");
+  COMPARE_MACRO(Frintm(v2.V2S(), v9.V2S()),
+                "frintm v2.2s, "
+                "v9.2s");
+  COMPARE_MACRO(Frintm(v16.V4S(), v23.V4S()),
+                "frintm v16.4s, "
+                "v23.4s");
+  COMPARE_MACRO(Frintm(v31.V2D(), v30.V2D()),
+                "frintm v31.2d, "
+                "v30.2d");
 
-  COMPARE(Frintx(v2.V2S(), v9.V2S()),   "frintx v2.2s, v9.2s");
-  COMPARE(Frintx(v16.V4S(), v23.V4S()), "frintx v16.4s, v23.4s");
-  COMPARE(Frintx(v31.V2D(), v30.V2D()), "frintx v31.2d, v30.2d");
+  COMPARE_MACRO(Frintx(v2.V2S(), v9.V2S()),
+                "frintx v2.2s, "
+                "v9.2s");
+  COMPARE_MACRO(Frintx(v16.V4S(), v23.V4S()),
+                "frintx v16.4s, "
+                "v23.4s");
+  COMPARE_MACRO(Frintx(v31.V2D(), v30.V2D()),
+                "frintx v31.2d, "
+                "v30.2d");
 
-  COMPARE(Frintz(v2.V2S(), v9.V2S()),   "frintz v2.2s, v9.2s");
-  COMPARE(Frintz(v16.V4S(), v23.V4S()), "frintz v16.4s, v23.4s");
-  COMPARE(Frintz(v31.V2D(), v30.V2D()), "frintz v31.2d, v30.2d");
+  COMPARE_MACRO(Frintz(v2.V2S(), v9.V2S()),
+                "frintz v2.2s, "
+                "v9.2s");
+  COMPARE_MACRO(Frintz(v16.V4S(), v23.V4S()),
+                "frintz v16.4s, "
+                "v23.4s");
+  COMPARE_MACRO(Frintz(v31.V2D(), v30.V2D()),
+                "frintz v31.2d, "
+                "v30.2d");
 
-  COMPARE(Frinti(v2.V2S(), v9.V2S()),   "frinti v2.2s, v9.2s");
-  COMPARE(Frinti(v16.V4S(), v23.V4S()), "frinti v16.4s, v23.4s");
-  COMPARE(Frinti(v31.V2D(), v30.V2D()), "frinti v31.2d, v30.2d");
+  COMPARE_MACRO(Frinti(v2.V2S(), v9.V2S()),
+                "frinti v2.2s, "
+                "v9.2s");
+  COMPARE_MACRO(Frinti(v16.V4S(), v23.V4S()),
+                "frinti v16.4s, "
+                "v23.4s");
+  COMPARE_MACRO(Frinti(v31.V2D(), v30.V2D()),
+                "frinti v31.2d, "
+                "v30.2d");
 
-  COMPARE(Fsqrt(v3.V2S(), v10.V2S()),  "fsqrt v3.2s, v10.2s");
-  COMPARE(Fsqrt(v22.V4S(), v11.V4S()), "fsqrt v22.4s, v11.4s");
-  COMPARE(Fsqrt(v31.V2D(), v0.V2D()),  "fsqrt v31.2d, v0.2d");
+  COMPARE_MACRO(Fsqrt(v3.V2S(), v10.V2S()),
+                "fsqrt v3.2s, "
+                "v10.2s");
+  COMPARE_MACRO(Fsqrt(v22.V4S(), v11.V4S()),
+                "fsqrt v22.4s, "
+                "v11.4s");
+  COMPARE_MACRO(Fsqrt(v31.V2D(), v0.V2D()),
+                "fsqrt v31.2d, "
+                "v0.2d");
 
-  COMPARE(Fcvtns(v4.V2S(), v11.V2S()),  "fcvtns v4.2s, v11.2s");
-  COMPARE(Fcvtns(v23.V4S(), v12.V4S()), "fcvtns v23.4s, v12.4s");
-  COMPARE(Fcvtns(v30.V2D(), v1.V2D()),  "fcvtns v30.2d, v1.2d");
-  COMPARE(Fcvtnu(v4.V2S(), v11.V2S()),  "fcvtnu v4.2s, v11.2s");
-  COMPARE(Fcvtnu(v23.V4S(), v12.V4S()), "fcvtnu v23.4s, v12.4s");
-  COMPARE(Fcvtnu(v30.V2D(), v1.V2D()),  "fcvtnu v30.2d, v1.2d");
+  COMPARE_MACRO(Fcvtns(v4.V2S(), v11.V2S()),
+                "fcvtns v4.2s, "
+                "v11.2s");
+  COMPARE_MACRO(Fcvtns(v23.V4S(), v12.V4S()),
+                "fcvtns v23.4s, "
+                "v12.4s");
+  COMPARE_MACRO(Fcvtns(v30.V2D(), v1.V2D()),
+                "fcvtns v30.2d, "
+                "v1.2d");
+  COMPARE_MACRO(Fcvtnu(v4.V2S(), v11.V2S()),
+                "fcvtnu v4.2s, "
+                "v11.2s");
+  COMPARE_MACRO(Fcvtnu(v23.V4S(), v12.V4S()),
+                "fcvtnu v23.4s, "
+                "v12.4s");
+  COMPARE_MACRO(Fcvtnu(v30.V2D(), v1.V2D()),
+                "fcvtnu v30.2d, "
+                "v1.2d");
 
-  COMPARE(Fcvtps(v4.V2S(), v11.V2S()),  "fcvtps v4.2s, v11.2s");
-  COMPARE(Fcvtps(v23.V4S(), v12.V4S()), "fcvtps v23.4s, v12.4s");
-  COMPARE(Fcvtps(v30.V2D(), v1.V2D()),  "fcvtps v30.2d, v1.2d");
-  COMPARE(Fcvtpu(v4.V2S(), v11.V2S()),  "fcvtpu v4.2s, v11.2s");
-  COMPARE(Fcvtpu(v23.V4S(), v12.V4S()), "fcvtpu v23.4s, v12.4s");
-  COMPARE(Fcvtpu(v30.V2D(), v1.V2D()),  "fcvtpu v30.2d, v1.2d");
+  COMPARE_MACRO(Fcvtps(v4.V2S(), v11.V2S()),
+                "fcvtps v4.2s, "
+                "v11.2s");
+  COMPARE_MACRO(Fcvtps(v23.V4S(), v12.V4S()),
+                "fcvtps v23.4s, "
+                "v12.4s");
+  COMPARE_MACRO(Fcvtps(v30.V2D(), v1.V2D()),
+                "fcvtps v30.2d, "
+                "v1.2d");
+  COMPARE_MACRO(Fcvtpu(v4.V2S(), v11.V2S()),
+                "fcvtpu v4.2s, "
+                "v11.2s");
+  COMPARE_MACRO(Fcvtpu(v23.V4S(), v12.V4S()),
+                "fcvtpu v23.4s, "
+                "v12.4s");
+  COMPARE_MACRO(Fcvtpu(v30.V2D(), v1.V2D()),
+                "fcvtpu v30.2d, "
+                "v1.2d");
 
-  COMPARE(Fcvtms(v4.V2S(), v11.V2S()),  "fcvtms v4.2s, v11.2s");
-  COMPARE(Fcvtms(v23.V4S(), v12.V4S()), "fcvtms v23.4s, v12.4s");
-  COMPARE(Fcvtms(v30.V2D(), v1.V2D()),  "fcvtms v30.2d, v1.2d");
-  COMPARE(Fcvtmu(v4.V2S(), v11.V2S()),  "fcvtmu v4.2s, v11.2s");
-  COMPARE(Fcvtmu(v23.V4S(), v12.V4S()), "fcvtmu v23.4s, v12.4s");
-  COMPARE(Fcvtmu(v30.V2D(), v1.V2D()),  "fcvtmu v30.2d, v1.2d");
+  COMPARE_MACRO(Fcvtms(v4.V2S(), v11.V2S()),
+                "fcvtms v4.2s, "
+                "v11.2s");
+  COMPARE_MACRO(Fcvtms(v23.V4S(), v12.V4S()),
+                "fcvtms v23.4s, "
+                "v12.4s");
+  COMPARE_MACRO(Fcvtms(v30.V2D(), v1.V2D()),
+                "fcvtms v30.2d, "
+                "v1.2d");
+  COMPARE_MACRO(Fcvtmu(v4.V2S(), v11.V2S()),
+                "fcvtmu v4.2s, "
+                "v11.2s");
+  COMPARE_MACRO(Fcvtmu(v23.V4S(), v12.V4S()),
+                "fcvtmu v23.4s, "
+                "v12.4s");
+  COMPARE_MACRO(Fcvtmu(v30.V2D(), v1.V2D()),
+                "fcvtmu v30.2d, "
+                "v1.2d");
 
-  COMPARE(Fcvtzs(v4.V2S(), v11.V2S()),  "fcvtzs v4.2s, v11.2s");
-  COMPARE(Fcvtzs(v23.V4S(), v12.V4S()), "fcvtzs v23.4s, v12.4s");
-  COMPARE(Fcvtzs(v30.V2D(), v1.V2D()),  "fcvtzs v30.2d, v1.2d");
-  COMPARE(Fcvtzu(v4.V2S(), v11.V2S()),  "fcvtzu v4.2s, v11.2s");
-  COMPARE(Fcvtzu(v23.V4S(), v12.V4S()), "fcvtzu v23.4s, v12.4s");
-  COMPARE(Fcvtzu(v30.V2D(), v1.V2D()),  "fcvtzu v30.2d, v1.2d");
+  COMPARE_MACRO(Fcvtzs(v4.V2S(), v11.V2S()),
+                "fcvtzs v4.2s, "
+                "v11.2s");
+  COMPARE_MACRO(Fcvtzs(v23.V4S(), v12.V4S()),
+                "fcvtzs v23.4s, "
+                "v12.4s");
+  COMPARE_MACRO(Fcvtzs(v30.V2D(), v1.V2D()),
+                "fcvtzs v30.2d, "
+                "v1.2d");
+  COMPARE_MACRO(Fcvtzu(v4.V2S(), v11.V2S()),
+                "fcvtzu v4.2s, "
+                "v11.2s");
+  COMPARE_MACRO(Fcvtzu(v23.V4S(), v12.V4S()),
+                "fcvtzu v23.4s, "
+                "v12.4s");
+  COMPARE_MACRO(Fcvtzu(v30.V2D(), v1.V2D()),
+                "fcvtzu v30.2d, "
+                "v1.2d");
 
-  COMPARE(Fcvtas(v4.V2S(), v11.V2S()),  "fcvtas v4.2s, v11.2s");
-  COMPARE(Fcvtas(v23.V4S(), v12.V4S()), "fcvtas v23.4s, v12.4s");
-  COMPARE(Fcvtas(v30.V2D(), v1.V2D()),  "fcvtas v30.2d, v1.2d");
-  COMPARE(Fcvtau(v4.V2S(), v11.V2S()),  "fcvtau v4.2s, v11.2s");
-  COMPARE(Fcvtau(v23.V4S(), v12.V4S()), "fcvtau v23.4s, v12.4s");
-  COMPARE(Fcvtau(v30.V2D(), v1.V2D()),  "fcvtau v30.2d, v1.2d");
+  COMPARE_MACRO(Fcvtas(v4.V2S(), v11.V2S()),
+                "fcvtas v4.2s, "
+                "v11.2s");
+  COMPARE_MACRO(Fcvtas(v23.V4S(), v12.V4S()),
+                "fcvtas v23.4s, "
+                "v12.4s");
+  COMPARE_MACRO(Fcvtas(v30.V2D(), v1.V2D()),
+                "fcvtas v30.2d, "
+                "v1.2d");
+  COMPARE_MACRO(Fcvtau(v4.V2S(), v11.V2S()),
+                "fcvtau v4.2s, "
+                "v11.2s");
+  COMPARE_MACRO(Fcvtau(v23.V4S(), v12.V4S()),
+                "fcvtau v23.4s, "
+                "v12.4s");
+  COMPARE_MACRO(Fcvtau(v30.V2D(), v1.V2D()),
+                "fcvtau v30.2d, "
+                "v1.2d");
 
-  COMPARE(Fcvtns(s0, s1), "fcvtns s0, s1");
-  COMPARE(Fcvtns(d2, d3), "fcvtns d2, d3");
-  COMPARE(Fcvtnu(s4, s5), "fcvtnu s4, s5");
-  COMPARE(Fcvtnu(d6, d7), "fcvtnu d6, d7");
-  COMPARE(Fcvtps(s8, s9), "fcvtps s8, s9");
-  COMPARE(Fcvtps(d10, d11), "fcvtps d10, d11");
-  COMPARE(Fcvtpu(s12, s13), "fcvtpu s12, s13");
-  COMPARE(Fcvtpu(d14, d15), "fcvtpu d14, d15");
-  COMPARE(Fcvtms(s16, s17), "fcvtms s16, s17");
-  COMPARE(Fcvtms(d18, d19), "fcvtms d18, d19");
-  COMPARE(Fcvtmu(s20, s21), "fcvtmu s20, s21");
-  COMPARE(Fcvtmu(d22, d23), "fcvtmu d22, d23");
-  COMPARE(Fcvtzs(s24, s25), "fcvtzs s24, s25");
-  COMPARE(Fcvtzs(d26, d27), "fcvtzs d26, d27");
-  COMPARE(Fcvtzu(s28, s29), "fcvtzu s28, s29");
-  COMPARE(Fcvtzu(d30, d31), "fcvtzu d30, d31");
-  COMPARE(Fcvtas(s0, s1), "fcvtas s0, s1");
-  COMPARE(Fcvtas(d2, d3), "fcvtas d2, d3");
-  COMPARE(Fcvtau(s4, s5), "fcvtau s4, s5");
-  COMPARE(Fcvtau(d6, d7), "fcvtau d6, d7");
+  COMPARE_MACRO(Fcvtns(s0, s1), "fcvtns s0, s1");
+  COMPARE_MACRO(Fcvtns(d2, d3), "fcvtns d2, d3");
+  COMPARE_MACRO(Fcvtnu(s4, s5), "fcvtnu s4, s5");
+  COMPARE_MACRO(Fcvtnu(d6, d7), "fcvtnu d6, d7");
+  COMPARE_MACRO(Fcvtps(s8, s9), "fcvtps s8, s9");
+  COMPARE_MACRO(Fcvtps(d10, d11), "fcvtps d10, d11");
+  COMPARE_MACRO(Fcvtpu(s12, s13), "fcvtpu s12, s13");
+  COMPARE_MACRO(Fcvtpu(d14, d15), "fcvtpu d14, d15");
+  COMPARE_MACRO(Fcvtms(s16, s17), "fcvtms s16, s17");
+  COMPARE_MACRO(Fcvtms(d18, d19), "fcvtms d18, d19");
+  COMPARE_MACRO(Fcvtmu(s20, s21), "fcvtmu s20, s21");
+  COMPARE_MACRO(Fcvtmu(d22, d23), "fcvtmu d22, d23");
+  COMPARE_MACRO(Fcvtzs(s24, s25), "fcvtzs s24, s25");
+  COMPARE_MACRO(Fcvtzs(d26, d27), "fcvtzs d26, d27");
+  COMPARE_MACRO(Fcvtzu(s28, s29), "fcvtzu s28, s29");
+  COMPARE_MACRO(Fcvtzu(d30, d31), "fcvtzu d30, d31");
+  COMPARE_MACRO(Fcvtas(s0, s1), "fcvtas s0, s1");
+  COMPARE_MACRO(Fcvtas(d2, d3), "fcvtas d2, d3");
+  COMPARE_MACRO(Fcvtau(s4, s5), "fcvtau s4, s5");
+  COMPARE_MACRO(Fcvtau(d6, d7), "fcvtau d6, d7");
 
-  COMPARE(Fcvtl(v3.V4S(), v5.V4H()), "fcvtl v3.4s, v5.4h");
-  COMPARE(Fcvtl(v7.V2D(), v11.V2S()), "fcvtl v7.2d, v11.2s");
-  COMPARE(Fcvtl2(v13.V4S(), v17.V8H()), "fcvtl2 v13.4s, v17.8h");
-  COMPARE(Fcvtl2(v23.V2D(), v29.V4S()), "fcvtl2 v23.2d, v29.4s");
+  COMPARE_MACRO(Fcvtl(v3.V4S(), v5.V4H()),
+                "fcvtl v3.4s, "
+                "v5.4h");
+  COMPARE_MACRO(Fcvtl(v7.V2D(), v11.V2S()),
+                "fcvtl v7.2d, "
+                "v11.2s");
+  COMPARE_MACRO(Fcvtl2(v13.V4S(), v17.V8H()),
+                "fcvtl2 v13.4s, "
+                "v17.8h");
+  COMPARE_MACRO(Fcvtl2(v23.V2D(), v29.V4S()),
+                "fcvtl2 v23.2d, "
+                "v29.4s");
 
-  COMPARE(Fcvtn(v3.V4H(), v5.V4S()), "fcvtn v3.4h, v5.4s");
-  COMPARE(Fcvtn(v7.V2S(), v11.V2D()), "fcvtn v7.2s, v11.2d");
-  COMPARE(Fcvtn2(v13.V8H(), v17.V4S()), "fcvtn2 v13.8h, v17.4s");
-  COMPARE(Fcvtn2(v23.V4S(), v29.V2D()), "fcvtn2 v23.4s, v29.2d");
+  COMPARE_MACRO(Fcvtn(v3.V4H(), v5.V4S()),
+                "fcvtn v3.4h, "
+                "v5.4s");
+  COMPARE_MACRO(Fcvtn(v7.V2S(), v11.V2D()),
+                "fcvtn v7.2s, "
+                "v11.2d");
+  COMPARE_MACRO(Fcvtn2(v13.V8H(), v17.V4S()),
+                "fcvtn2 v13.8h, "
+                "v17.4s");
+  COMPARE_MACRO(Fcvtn2(v23.V4S(), v29.V2D()),
+                "fcvtn2 v23.4s, "
+                "v29.2d");
 
-  COMPARE(Fcvtxn(v5.V2S(), v7.V2D()), "fcvtxn v5.2s, v7.2d");
-  COMPARE(Fcvtxn2(v8.V4S(), v13.V2D()), "fcvtxn2 v8.4s, v13.2d");
-  COMPARE(Fcvtxn(s17, d31), "fcvtxn s17, d31");
+  COMPARE_MACRO(Fcvtxn(v5.V2S(), v7.V2D()),
+                "fcvtxn v5.2s, "
+                "v7.2d");
+  COMPARE_MACRO(Fcvtxn2(v8.V4S(), v13.V2D()),
+                "fcvtxn2 v8.4s, "
+                "v13.2d");
+  COMPARE_MACRO(Fcvtxn(s17, d31), "fcvtxn s17, d31");
 
-  COMPARE(Frecpx(s0, s1), "frecpx s0, s1");
-  COMPARE(Frecpx(s31, s30), "frecpx s31, s30");
-  COMPARE(Frecpx(d2, d3), "frecpx d2, d3");
-  COMPARE(Frecpx(d31, d30), "frecpx d31, d30");
+  COMPARE_MACRO(Frecpx(s0, s1), "frecpx s0, s1");
+  COMPARE_MACRO(Frecpx(s31, s30), "frecpx s31, s30");
+  COMPARE_MACRO(Frecpx(d2, d3), "frecpx d2, d3");
+  COMPARE_MACRO(Frecpx(d31, d30), "frecpx d31, d30");
 
-  COMPARE(Scvtf(v5.V2S(), v3.V2S()), "scvtf v5.2s, v3.2s");
-  COMPARE(Scvtf(v6.V4S(), v4.V4S()), "scvtf v6.4s, v4.4s");
-  COMPARE(Scvtf(v7.V2D(), v5.V2D()), "scvtf v7.2d, v5.2d");
-  COMPARE(Scvtf(s8, s6),             "scvtf s8, s6");
-  COMPARE(Scvtf(d8, d6),             "scvtf d8, d6");
+  COMPARE_MACRO(Scvtf(v5.V2S(), v3.V2S()),
+                "scvtf v5.2s, "
+                "v3.2s");
+  COMPARE_MACRO(Scvtf(v6.V4S(), v4.V4S()),
+                "scvtf v6.4s, "
+                "v4.4s");
+  COMPARE_MACRO(Scvtf(v7.V2D(), v5.V2D()),
+                "scvtf v7.2d, "
+                "v5.2d");
+  COMPARE_MACRO(Scvtf(s8, s6), "scvtf s8, s6");
+  COMPARE_MACRO(Scvtf(d8, d6), "scvtf d8, d6");
 
-  COMPARE(Ucvtf(v5.V2S(), v3.V2S()), "ucvtf v5.2s, v3.2s");
-  COMPARE(Ucvtf(v6.V4S(), v4.V4S()), "ucvtf v6.4s, v4.4s");
-  COMPARE(Ucvtf(v7.V2D(), v5.V2D()), "ucvtf v7.2d, v5.2d");
-  COMPARE(Ucvtf(s8, s6),             "ucvtf s8, s6");
-  COMPARE(Ucvtf(d8, d6),             "ucvtf d8, d6");
+  COMPARE_MACRO(Ucvtf(v5.V2S(), v3.V2S()),
+                "ucvtf v5.2s, "
+                "v3.2s");
+  COMPARE_MACRO(Ucvtf(v6.V4S(), v4.V4S()),
+                "ucvtf v6.4s, "
+                "v4.4s");
+  COMPARE_MACRO(Ucvtf(v7.V2D(), v5.V2D()),
+                "ucvtf v7.2d, "
+                "v5.2d");
+  COMPARE_MACRO(Ucvtf(s8, s6), "ucvtf s8, s6");
+  COMPARE_MACRO(Ucvtf(d8, d6), "ucvtf d8, d6");
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Saddlp(v0.TA, v1.TB), "saddlp v0." TAS ", v1." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS) \
+  COMPARE_MACRO(Saddlp(v0.TA, v1.TB), "saddlp v0." TAS ", v1." TBS);
   NEON_FORMAT_LIST_LP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Uaddlp(v0.TA, v1.TB), "uaddlp v0." TAS ", v1." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS) \
+  COMPARE_MACRO(Uaddlp(v0.TA, v1.TB), "uaddlp v0." TAS ", v1." TBS);
   NEON_FORMAT_LIST_LP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Sadalp(v0.TA, v1.TB), "sadalp v0." TAS ", v1." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS) \
+  COMPARE_MACRO(Sadalp(v0.TA, v1.TB), "sadalp v0." TAS ", v1." TBS);
   NEON_FORMAT_LIST_LP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
-  #define DISASM_INST(TA, TAS, TB, TBS)  \
-  COMPARE(Uadalp(v0.TA, v1.TB), "uadalp v0." TAS ", v1." TBS);
+#define DISASM_INST(TA, TAS, TB, TBS) \
+  COMPARE_MACRO(Uadalp(v0.TA, v1.TB), "uadalp v0." TAS ", v1." TBS);
   NEON_FORMAT_LIST_LP(DISASM_INST)
-  #undef DISASM_INST
+#undef DISASM_INST
 
   CLEANUP();
 }
 
 TEST(neon_acrosslanes) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Smaxv(b4, v5.V8B()),  "smaxv b4, v5.8b");
-  COMPARE(Smaxv(b4, v5.V16B()), "smaxv b4, v5.16b");
-  COMPARE(Smaxv(h4, v5.V4H()),  "smaxv h4, v5.4h");
-  COMPARE(Smaxv(h4, v5.V8H()),  "smaxv h4, v5.8h");
-  COMPARE(Smaxv(s4, v5.V4S()),  "smaxv s4, v5.4s");
+  COMPARE_MACRO(Smaxv(b4, v5.V8B()), "smaxv b4, v5.8b");
+  COMPARE_MACRO(Smaxv(b4, v5.V16B()), "smaxv b4, v5.16b");
+  COMPARE_MACRO(Smaxv(h4, v5.V4H()), "smaxv h4, v5.4h");
+  COMPARE_MACRO(Smaxv(h4, v5.V8H()), "smaxv h4, v5.8h");
+  COMPARE_MACRO(Smaxv(s4, v5.V4S()), "smaxv s4, v5.4s");
 
-  COMPARE(Sminv(b4, v5.V8B()),  "sminv b4, v5.8b");
-  COMPARE(Sminv(b4, v5.V16B()), "sminv b4, v5.16b");
-  COMPARE(Sminv(h4, v5.V4H()),  "sminv h4, v5.4h");
-  COMPARE(Sminv(h4, v5.V8H()),  "sminv h4, v5.8h");
-  COMPARE(Sminv(s4, v5.V4S()),  "sminv s4, v5.4s");
+  COMPARE_MACRO(Sminv(b4, v5.V8B()), "sminv b4, v5.8b");
+  COMPARE_MACRO(Sminv(b4, v5.V16B()), "sminv b4, v5.16b");
+  COMPARE_MACRO(Sminv(h4, v5.V4H()), "sminv h4, v5.4h");
+  COMPARE_MACRO(Sminv(h4, v5.V8H()), "sminv h4, v5.8h");
+  COMPARE_MACRO(Sminv(s4, v5.V4S()), "sminv s4, v5.4s");
 
-  COMPARE(Umaxv(b4, v5.V8B()),  "umaxv b4, v5.8b");
-  COMPARE(Umaxv(b4, v5.V16B()), "umaxv b4, v5.16b");
-  COMPARE(Umaxv(h4, v5.V4H()),  "umaxv h4, v5.4h");
-  COMPARE(Umaxv(h4, v5.V8H()),  "umaxv h4, v5.8h");
-  COMPARE(Umaxv(s4, v5.V4S()),  "umaxv s4, v5.4s");
+  COMPARE_MACRO(Umaxv(b4, v5.V8B()), "umaxv b4, v5.8b");
+  COMPARE_MACRO(Umaxv(b4, v5.V16B()), "umaxv b4, v5.16b");
+  COMPARE_MACRO(Umaxv(h4, v5.V4H()), "umaxv h4, v5.4h");
+  COMPARE_MACRO(Umaxv(h4, v5.V8H()), "umaxv h4, v5.8h");
+  COMPARE_MACRO(Umaxv(s4, v5.V4S()), "umaxv s4, v5.4s");
 
-  COMPARE(Uminv(b4, v5.V8B()),  "uminv b4, v5.8b");
-  COMPARE(Uminv(b4, v5.V16B()), "uminv b4, v5.16b");
-  COMPARE(Uminv(h4, v5.V4H()),  "uminv h4, v5.4h");
-  COMPARE(Uminv(h4, v5.V8H()),  "uminv h4, v5.8h");
-  COMPARE(Uminv(s4, v5.V4S()),  "uminv s4, v5.4s");
+  COMPARE_MACRO(Uminv(b4, v5.V8B()), "uminv b4, v5.8b");
+  COMPARE_MACRO(Uminv(b4, v5.V16B()), "uminv b4, v5.16b");
+  COMPARE_MACRO(Uminv(h4, v5.V4H()), "uminv h4, v5.4h");
+  COMPARE_MACRO(Uminv(h4, v5.V8H()), "uminv h4, v5.8h");
+  COMPARE_MACRO(Uminv(s4, v5.V4S()), "uminv s4, v5.4s");
 
-  COMPARE(Addv(b4, v5.V8B()),  "addv b4, v5.8b");
-  COMPARE(Addv(b4, v5.V16B()), "addv b4, v5.16b");
-  COMPARE(Addv(h4, v5.V4H()),  "addv h4, v5.4h");
-  COMPARE(Addv(h4, v5.V8H()),  "addv h4, v5.8h");
-  COMPARE(Addv(s4, v5.V4S()),  "addv s4, v5.4s");
+  COMPARE_MACRO(Addv(b4, v5.V8B()), "addv b4, v5.8b");
+  COMPARE_MACRO(Addv(b4, v5.V16B()), "addv b4, v5.16b");
+  COMPARE_MACRO(Addv(h4, v5.V4H()), "addv h4, v5.4h");
+  COMPARE_MACRO(Addv(h4, v5.V8H()), "addv h4, v5.8h");
+  COMPARE_MACRO(Addv(s4, v5.V4S()), "addv s4, v5.4s");
 
-  COMPARE(Saddlv(h4, v5.V8B()),  "saddlv h4, v5.8b");
-  COMPARE(Saddlv(h4, v5.V16B()), "saddlv h4, v5.16b");
-  COMPARE(Saddlv(s4, v5.V4H()),  "saddlv s4, v5.4h");
-  COMPARE(Saddlv(s4, v5.V8H()),  "saddlv s4, v5.8h");
-  COMPARE(Saddlv(d4, v5.V4S()),  "saddlv d4, v5.4s");
+  COMPARE_MACRO(Saddlv(h4, v5.V8B()), "saddlv h4, v5.8b");
+  COMPARE_MACRO(Saddlv(h4, v5.V16B()), "saddlv h4, v5.16b");
+  COMPARE_MACRO(Saddlv(s4, v5.V4H()), "saddlv s4, v5.4h");
+  COMPARE_MACRO(Saddlv(s4, v5.V8H()), "saddlv s4, v5.8h");
+  COMPARE_MACRO(Saddlv(d4, v5.V4S()), "saddlv d4, v5.4s");
 
-  COMPARE(Uaddlv(h4, v5.V8B()),  "uaddlv h4, v5.8b");
-  COMPARE(Uaddlv(h4, v5.V16B()), "uaddlv h4, v5.16b");
-  COMPARE(Uaddlv(s4, v5.V4H()),  "uaddlv s4, v5.4h");
-  COMPARE(Uaddlv(s4, v5.V8H()),  "uaddlv s4, v5.8h");
-  COMPARE(Uaddlv(d4, v5.V4S()),  "uaddlv d4, v5.4s");
+  COMPARE_MACRO(Uaddlv(h4, v5.V8B()), "uaddlv h4, v5.8b");
+  COMPARE_MACRO(Uaddlv(h4, v5.V16B()), "uaddlv h4, v5.16b");
+  COMPARE_MACRO(Uaddlv(s4, v5.V4H()), "uaddlv s4, v5.4h");
+  COMPARE_MACRO(Uaddlv(s4, v5.V8H()), "uaddlv s4, v5.8h");
+  COMPARE_MACRO(Uaddlv(d4, v5.V4S()), "uaddlv d4, v5.4s");
 
-  COMPARE(Fmaxv(s4, v5.V4S()), "fmaxv s4, v5.4s");
-  COMPARE(Fminv(s4, v5.V4S()), "fminv s4, v5.4s");
-  COMPARE(Fmaxnmv(s4, v5.V4S()), "fmaxnmv s4, v5.4s");
-  COMPARE(Fminnmv(s4, v5.V4S()), "fminnmv s4, v5.4s");
+  COMPARE_MACRO(Fmaxv(s4, v5.V4S()), "fmaxv s4, v5.4s");
+  COMPARE_MACRO(Fminv(s4, v5.V4S()), "fminv s4, v5.4s");
+  COMPARE_MACRO(Fmaxnmv(s4, v5.V4S()), "fmaxnmv s4, v5.4s");
+  COMPARE_MACRO(Fminnmv(s4, v5.V4S()), "fminnmv s4, v5.4s");
 
   CLEANUP();
 }
 
 TEST(neon_scalar_pairwise) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Addp(d0, v1.V2D()), "addp d0, v1.2d");
-  COMPARE(Faddp(s0, v1.V2S()), "faddp s0, v1.2s");
-  COMPARE(Faddp(d2, v3.V2D()), "faddp d2, v3.2d");
-  COMPARE(Fmaxp(s4, v5.V2S()), "fmaxp s4, v5.2s");
-  COMPARE(Fmaxp(d6, v7.V2D()), "fmaxp d6, v7.2d");
-  COMPARE(Fmaxnmp(s8, v9.V2S()), "fmaxnmp s8, v9.2s");
-  COMPARE(Fmaxnmp(d10, v11.V2D()), "fmaxnmp d10, v11.2d");
-  COMPARE(Fminp(s12, v13.V2S()), "fminp s12, v13.2s");
-  COMPARE(Fminp(d14, v15.V2D()), "fminp d14, v15.2d");
-  COMPARE(Fminnmp(s16, v17.V2S()), "fminnmp s16, v17.2s");
-  COMPARE(Fminnmp(d18, v19.V2D()), "fminnmp d18, v19.2d");
+  COMPARE_MACRO(Addp(d0, v1.V2D()), "addp d0, v1.2d");
+  COMPARE_MACRO(Faddp(s0, v1.V2S()), "faddp s0, v1.2s");
+  COMPARE_MACRO(Faddp(d2, v3.V2D()), "faddp d2, v3.2d");
+  COMPARE_MACRO(Fmaxp(s4, v5.V2S()), "fmaxp s4, v5.2s");
+  COMPARE_MACRO(Fmaxp(d6, v7.V2D()), "fmaxp d6, v7.2d");
+  COMPARE_MACRO(Fmaxnmp(s8, v9.V2S()), "fmaxnmp s8, v9.2s");
+  COMPARE_MACRO(Fmaxnmp(d10, v11.V2D()), "fmaxnmp d10, v11.2d");
+  COMPARE_MACRO(Fminp(s12, v13.V2S()), "fminp s12, v13.2s");
+  COMPARE_MACRO(Fminp(d14, v15.V2D()), "fminp d14, v15.2d");
+  COMPARE_MACRO(Fminnmp(s16, v17.V2S()), "fminnmp s16, v17.2s");
+  COMPARE_MACRO(Fminnmp(d18, v19.V2D()), "fminnmp d18, v19.2d");
   CLEANUP();
 }
 
 TEST(neon_shift_immediate) {
-  SETUP_MACRO();
+  SETUP();
 
-  COMPARE(Sshr(v0.V8B(), v1.V8B(), 1),  "sshr v0.8b, v1.8b, #1");
-  COMPARE(Sshr(v2.V8B(), v3.V8B(), 8),  "sshr v2.8b, v3.8b, #8");
-  COMPARE(Sshr(v4.V16B(), v5.V16B(), 1),  "sshr v4.16b, v5.16b, #1");
-  COMPARE(Sshr(v6.V16B(), v7.V16B(), 8),  "sshr v6.16b, v7.16b, #8");
-  COMPARE(Sshr(v8.V4H(), v9.V4H(), 1),  "sshr v8.4h, v9.4h, #1");
-  COMPARE(Sshr(v10.V4H(), v11.V4H(), 16),  "sshr v10.4h, v11.4h, #16");
-  COMPARE(Sshr(v12.V8H(), v13.V8H(), 1),  "sshr v12.8h, v13.8h, #1");
-  COMPARE(Sshr(v14.V8H(), v15.V8H(), 16),  "sshr v14.8h, v15.8h, #16");
-  COMPARE(Sshr(v16.V2S(), v17.V2S(), 1),  "sshr v16.2s, v17.2s, #1");
-  COMPARE(Sshr(v18.V2S(), v19.V2S(), 32),  "sshr v18.2s, v19.2s, #32");
-  COMPARE(Sshr(v20.V4S(), v21.V4S(), 1),  "sshr v20.4s, v21.4s, #1");
-  COMPARE(Sshr(v22.V4S(), v23.V4S(), 32),  "sshr v22.4s, v23.4s, #32");
-  COMPARE(Sshr(v28.V2D(), v29.V2D(), 1),  "sshr v28.2d, v29.2d, #1");
-  COMPARE(Sshr(v30.V2D(), v31.V2D(), 64),  "sshr v30.2d, v31.2d, #64");
-  COMPARE(Sshr(d0, d1, 7), "sshr d0, d1, #7");
+  COMPARE_MACRO(Sshr(v0.V8B(), v1.V8B(), 1), "sshr v0.8b, v1.8b, #1");
+  COMPARE_MACRO(Sshr(v2.V8B(), v3.V8B(), 8), "sshr v2.8b, v3.8b, #8");
+  COMPARE_MACRO(Sshr(v4.V16B(), v5.V16B(), 1), "sshr v4.16b, v5.16b, #1");
+  COMPARE_MACRO(Sshr(v6.V16B(), v7.V16B(), 8), "sshr v6.16b, v7.16b, #8");
+  COMPARE_MACRO(Sshr(v8.V4H(), v9.V4H(), 1), "sshr v8.4h, v9.4h, #1");
+  COMPARE_MACRO(Sshr(v10.V4H(), v11.V4H(), 16), "sshr v10.4h, v11.4h, #16");
+  COMPARE_MACRO(Sshr(v12.V8H(), v13.V8H(), 1), "sshr v12.8h, v13.8h, #1");
+  COMPARE_MACRO(Sshr(v14.V8H(), v15.V8H(), 16), "sshr v14.8h, v15.8h, #16");
+  COMPARE_MACRO(Sshr(v16.V2S(), v17.V2S(), 1), "sshr v16.2s, v17.2s, #1");
+  COMPARE_MACRO(Sshr(v18.V2S(), v19.V2S(), 32), "sshr v18.2s, v19.2s, #32");
+  COMPARE_MACRO(Sshr(v20.V4S(), v21.V4S(), 1), "sshr v20.4s, v21.4s, #1");
+  COMPARE_MACRO(Sshr(v22.V4S(), v23.V4S(), 32), "sshr v22.4s, v23.4s, #32");
+  COMPARE_MACRO(Sshr(v28.V2D(), v29.V2D(), 1), "sshr v28.2d, v29.2d, #1");
+  COMPARE_MACRO(Sshr(v30.V2D(), v31.V2D(), 64), "sshr v30.2d, v31.2d, #64");
+  COMPARE_MACRO(Sshr(d0, d1, 7), "sshr d0, d1, #7");
 
-  COMPARE(Ushr(v0.V8B(), v1.V8B(), 1),  "ushr v0.8b, v1.8b, #1");
-  COMPARE(Ushr(v2.V8B(), v3.V8B(), 8),  "ushr v2.8b, v3.8b, #8");
-  COMPARE(Ushr(v4.V16B(), v5.V16B(), 1),  "ushr v4.16b, v5.16b, #1");
-  COMPARE(Ushr(v6.V16B(), v7.V16B(), 8),  "ushr v6.16b, v7.16b, #8");
-  COMPARE(Ushr(v8.V4H(), v9.V4H(), 1),  "ushr v8.4h, v9.4h, #1");
-  COMPARE(Ushr(v10.V4H(), v11.V4H(), 16),  "ushr v10.4h, v11.4h, #16");
-  COMPARE(Ushr(v12.V8H(), v13.V8H(), 1),  "ushr v12.8h, v13.8h, #1");
-  COMPARE(Ushr(v14.V8H(), v15.V8H(), 16),  "ushr v14.8h, v15.8h, #16");
-  COMPARE(Ushr(v16.V2S(), v17.V2S(), 1),  "ushr v16.2s, v17.2s, #1");
-  COMPARE(Ushr(v18.V2S(), v19.V2S(), 32),  "ushr v18.2s, v19.2s, #32");
-  COMPARE(Ushr(v20.V4S(), v21.V4S(), 1),  "ushr v20.4s, v21.4s, #1");
-  COMPARE(Ushr(v22.V4S(), v23.V4S(), 32),  "ushr v22.4s, v23.4s, #32");
-  COMPARE(Ushr(v28.V2D(), v29.V2D(), 1),  "ushr v28.2d, v29.2d, #1");
-  COMPARE(Ushr(v30.V2D(), v31.V2D(), 64),  "ushr v30.2d, v31.2d, #64");
-  COMPARE(Ushr(d0, d1, 7), "ushr d0, d1, #7");
+  COMPARE_MACRO(Ushr(v0.V8B(), v1.V8B(), 1), "ushr v0.8b, v1.8b, #1");
+  COMPARE_MACRO(Ushr(v2.V8B(), v3.V8B(), 8), "ushr v2.8b, v3.8b, #8");
+  COMPARE_MACRO(Ushr(v4.V16B(), v5.V16B(), 1), "ushr v4.16b, v5.16b, #1");
+  COMPARE_MACRO(Ushr(v6.V16B(), v7.V16B(), 8), "ushr v6.16b, v7.16b, #8");
+  COMPARE_MACRO(Ushr(v8.V4H(), v9.V4H(), 1), "ushr v8.4h, v9.4h, #1");
+  COMPARE_MACRO(Ushr(v10.V4H(), v11.V4H(), 16), "ushr v10.4h, v11.4h, #16");
+  COMPARE_MACRO(Ushr(v12.V8H(), v13.V8H(), 1), "ushr v12.8h, v13.8h, #1");
+  COMPARE_MACRO(Ushr(v14.V8H(), v15.V8H(), 16), "ushr v14.8h, v15.8h, #16");
+  COMPARE_MACRO(Ushr(v16.V2S(), v17.V2S(), 1), "ushr v16.2s, v17.2s, #1");
+  COMPARE_MACRO(Ushr(v18.V2S(), v19.V2S(), 32), "ushr v18.2s, v19.2s, #32");
+  COMPARE_MACRO(Ushr(v20.V4S(), v21.V4S(), 1), "ushr v20.4s, v21.4s, #1");
+  COMPARE_MACRO(Ushr(v22.V4S(), v23.V4S(), 32), "ushr v22.4s, v23.4s, #32");
+  COMPARE_MACRO(Ushr(v28.V2D(), v29.V2D(), 1), "ushr v28.2d, v29.2d, #1");
+  COMPARE_MACRO(Ushr(v30.V2D(), v31.V2D(), 64), "ushr v30.2d, v31.2d, #64");
+  COMPARE_MACRO(Ushr(d0, d1, 7), "ushr d0, d1, #7");
 
-  COMPARE(Srshr(v0.V8B(), v1.V8B(), 1),  "srshr v0.8b, v1.8b, #1");
-  COMPARE(Srshr(v2.V8B(), v3.V8B(), 8),  "srshr v2.8b, v3.8b, #8");
-  COMPARE(Srshr(v4.V16B(), v5.V16B(), 1),  "srshr v4.16b, v5.16b, #1");
-  COMPARE(Srshr(v6.V16B(), v7.V16B(), 8),  "srshr v6.16b, v7.16b, #8");
-  COMPARE(Srshr(v8.V4H(), v9.V4H(), 1),  "srshr v8.4h, v9.4h, #1");
-  COMPARE(Srshr(v10.V4H(), v11.V4H(), 16),  "srshr v10.4h, v11.4h, #16");
-  COMPARE(Srshr(v12.V8H(), v13.V8H(), 1),  "srshr v12.8h, v13.8h, #1");
-  COMPARE(Srshr(v14.V8H(), v15.V8H(), 16),  "srshr v14.8h, v15.8h, #16");
-  COMPARE(Srshr(v16.V2S(), v17.V2S(), 1),  "srshr v16.2s, v17.2s, #1");
-  COMPARE(Srshr(v18.V2S(), v19.V2S(), 32),  "srshr v18.2s, v19.2s, #32");
-  COMPARE(Srshr(v20.V4S(), v21.V4S(), 1),  "srshr v20.4s, v21.4s, #1");
-  COMPARE(Srshr(v22.V4S(), v23.V4S(), 32),  "srshr v22.4s, v23.4s, #32");
-  COMPARE(Srshr(v28.V2D(), v29.V2D(), 1),  "srshr v28.2d, v29.2d, #1");
-  COMPARE(Srshr(v30.V2D(), v31.V2D(), 64),  "srshr v30.2d, v31.2d, #64");
-  COMPARE(Srshr(d0, d1, 7), "srshr d0, d1, #7");
+  COMPARE_MACRO(Srshr(v0.V8B(), v1.V8B(), 1), "srshr v0.8b, v1.8b, #1");
+  COMPARE_MACRO(Srshr(v2.V8B(), v3.V8B(), 8), "srshr v2.8b, v3.8b, #8");
+  COMPARE_MACRO(Srshr(v4.V16B(), v5.V16B(), 1), "srshr v4.16b, v5.16b, #1");
+  COMPARE_MACRO(Srshr(v6.V16B(), v7.V16B(), 8), "srshr v6.16b, v7.16b, #8");
+  COMPARE_MACRO(Srshr(v8.V4H(), v9.V4H(), 1), "srshr v8.4h, v9.4h, #1");
+  COMPARE_MACRO(Srshr(v10.V4H(), v11.V4H(), 16), "srshr v10.4h, v11.4h, #16");
+  COMPARE_MACRO(Srshr(v12.V8H(), v13.V8H(), 1), "srshr v12.8h, v13.8h, #1");
+  COMPARE_MACRO(Srshr(v14.V8H(), v15.V8H(), 16), "srshr v14.8h, v15.8h, #16");
+  COMPARE_MACRO(Srshr(v16.V2S(), v17.V2S(), 1), "srshr v16.2s, v17.2s, #1");
+  COMPARE_MACRO(Srshr(v18.V2S(), v19.V2S(), 32), "srshr v18.2s, v19.2s, #32");
+  COMPARE_MACRO(Srshr(v20.V4S(), v21.V4S(), 1), "srshr v20.4s, v21.4s, #1");
+  COMPARE_MACRO(Srshr(v22.V4S(), v23.V4S(), 32), "srshr v22.4s, v23.4s, #32");
+  COMPARE_MACRO(Srshr(v28.V2D(), v29.V2D(), 1), "srshr v28.2d, v29.2d, #1");
+  COMPARE_MACRO(Srshr(v30.V2D(), v31.V2D(), 64), "srshr v30.2d, v31.2d, #64");
+  COMPARE_MACRO(Srshr(d0, d1, 7), "srshr d0, d1, #7");
 
-  COMPARE(Urshr(v0.V8B(), v1.V8B(), 1),  "urshr v0.8b, v1.8b, #1");
-  COMPARE(Urshr(v2.V8B(), v3.V8B(), 8),  "urshr v2.8b, v3.8b, #8");
-  COMPARE(Urshr(v4.V16B(), v5.V16B(), 1),  "urshr v4.16b, v5.16b, #1");
-  COMPARE(Urshr(v6.V16B(), v7.V16B(), 8),  "urshr v6.16b, v7.16b, #8");
-  COMPARE(Urshr(v8.V4H(), v9.V4H(), 1),  "urshr v8.4h, v9.4h, #1");
-  COMPARE(Urshr(v10.V4H(), v11.V4H(), 16),  "urshr v10.4h, v11.4h, #16");
-  COMPARE(Urshr(v12.V8H(), v13.V8H(), 1),  "urshr v12.8h, v13.8h, #1");
-  COMPARE(Urshr(v14.V8H(), v15.V8H(), 16),  "urshr v14.8h, v15.8h, #16");
-  COMPARE(Urshr(v16.V2S(), v17.V2S(), 1),  "urshr v16.2s, v17.2s, #1");
-  COMPARE(Urshr(v18.V2S(), v19.V2S(), 32),  "urshr v18.2s, v19.2s, #32");
-  COMPARE(Urshr(v20.V4S(), v21.V4S(), 1),  "urshr v20.4s, v21.4s, #1");
-  COMPARE(Urshr(v22.V4S(), v23.V4S(), 32),  "urshr v22.4s, v23.4s, #32");
-  COMPARE(Urshr(v28.V2D(), v29.V2D(), 1),  "urshr v28.2d, v29.2d, #1");
-  COMPARE(Urshr(v30.V2D(), v31.V2D(), 64),  "urshr v30.2d, v31.2d, #64");
-  COMPARE(Urshr(d0, d1, 7), "urshr d0, d1, #7");
+  COMPARE_MACRO(Urshr(v0.V8B(), v1.V8B(), 1), "urshr v0.8b, v1.8b, #1");
+  COMPARE_MACRO(Urshr(v2.V8B(), v3.V8B(), 8), "urshr v2.8b, v3.8b, #8");
+  COMPARE_MACRO(Urshr(v4.V16B(), v5.V16B(), 1), "urshr v4.16b, v5.16b, #1");
+  COMPARE_MACRO(Urshr(v6.V16B(), v7.V16B(), 8), "urshr v6.16b, v7.16b, #8");
+  COMPARE_MACRO(Urshr(v8.V4H(), v9.V4H(), 1), "urshr v8.4h, v9.4h, #1");
+  COMPARE_MACRO(Urshr(v10.V4H(), v11.V4H(), 16), "urshr v10.4h, v11.4h, #16");
+  COMPARE_MACRO(Urshr(v12.V8H(), v13.V8H(), 1), "urshr v12.8h, v13.8h, #1");
+  COMPARE_MACRO(Urshr(v14.V8H(), v15.V8H(), 16), "urshr v14.8h, v15.8h, #16");
+  COMPARE_MACRO(Urshr(v16.V2S(), v17.V2S(), 1), "urshr v16.2s, v17.2s, #1");
+  COMPARE_MACRO(Urshr(v18.V2S(), v19.V2S(), 32), "urshr v18.2s, v19.2s, #32");
+  COMPARE_MACRO(Urshr(v20.V4S(), v21.V4S(), 1), "urshr v20.4s, v21.4s, #1");
+  COMPARE_MACRO(Urshr(v22.V4S(), v23.V4S(), 32), "urshr v22.4s, v23.4s, #32");
+  COMPARE_MACRO(Urshr(v28.V2D(), v29.V2D(), 1), "urshr v28.2d, v29.2d, #1");
+  COMPARE_MACRO(Urshr(v30.V2D(), v31.V2D(), 64), "urshr v30.2d, v31.2d, #64");
+  COMPARE_MACRO(Urshr(d0, d1, 7), "urshr d0, d1, #7");
 
-  COMPARE(Srsra(v0.V8B(), v1.V8B(), 1),  "srsra v0.8b, v1.8b, #1");
-  COMPARE(Srsra(v2.V8B(), v3.V8B(), 8),  "srsra v2.8b, v3.8b, #8");
-  COMPARE(Srsra(v4.V16B(), v5.V16B(), 1),  "srsra v4.16b, v5.16b, #1");
-  COMPARE(Srsra(v6.V16B(), v7.V16B(), 8),  "srsra v6.16b, v7.16b, #8");
-  COMPARE(Srsra(v8.V4H(), v9.V4H(), 1),  "srsra v8.4h, v9.4h, #1");
-  COMPARE(Srsra(v10.V4H(), v11.V4H(), 16),  "srsra v10.4h, v11.4h, #16");
-  COMPARE(Srsra(v12.V8H(), v13.V8H(), 1),  "srsra v12.8h, v13.8h, #1");
-  COMPARE(Srsra(v14.V8H(), v15.V8H(), 16),  "srsra v14.8h, v15.8h, #16");
-  COMPARE(Srsra(v16.V2S(), v17.V2S(), 1),  "srsra v16.2s, v17.2s, #1");
-  COMPARE(Srsra(v18.V2S(), v19.V2S(), 32),  "srsra v18.2s, v19.2s, #32");
-  COMPARE(Srsra(v20.V4S(), v21.V4S(), 1),  "srsra v20.4s, v21.4s, #1");
-  COMPARE(Srsra(v22.V4S(), v23.V4S(), 32),  "srsra v22.4s, v23.4s, #32");
-  COMPARE(Srsra(v28.V2D(), v29.V2D(), 1),  "srsra v28.2d, v29.2d, #1");
-  COMPARE(Srsra(v30.V2D(), v31.V2D(), 64),  "srsra v30.2d, v31.2d, #64");
-  COMPARE(Srsra(d0, d1, 7), "srsra d0, d1, #7");
+  COMPARE_MACRO(Srsra(v0.V8B(), v1.V8B(), 1), "srsra v0.8b, v1.8b, #1");
+  COMPARE_MACRO(Srsra(v2.V8B(), v3.V8B(), 8), "srsra v2.8b, v3.8b, #8");
+  COMPARE_MACRO(Srsra(v4.V16B(), v5.V16B(), 1), "srsra v4.16b, v5.16b, #1");
+  COMPARE_MACRO(Srsra(v6.V16B(), v7.V16B(), 8), "srsra v6.16b, v7.16b, #8");
+  COMPARE_MACRO(Srsra(v8.V4H(), v9.V4H(), 1), "srsra v8.4h, v9.4h, #1");
+  COMPARE_MACRO(Srsra(v10.V4H(), v11.V4H(), 16), "srsra v10.4h, v11.4h, #16");
+  COMPARE_MACRO(Srsra(v12.V8H(), v13.V8H(), 1), "srsra v12.8h, v13.8h, #1");
+  COMPARE_MACRO(Srsra(v14.V8H(), v15.V8H(), 16), "srsra v14.8h, v15.8h, #16");
+  COMPARE_MACRO(Srsra(v16.V2S(), v17.V2S(), 1), "srsra v16.2s, v17.2s, #1");
+  COMPARE_MACRO(Srsra(v18.V2S(), v19.V2S(), 32), "srsra v18.2s, v19.2s, #32");
+  COMPARE_MACRO(Srsra(v20.V4S(), v21.V4S(), 1), "srsra v20.4s, v21.4s, #1");
+  COMPARE_MACRO(Srsra(v22.V4S(), v23.V4S(), 32), "srsra v22.4s, v23.4s, #32");
+  COMPARE_MACRO(Srsra(v28.V2D(), v29.V2D(), 1), "srsra v28.2d, v29.2d, #1");
+  COMPARE_MACRO(Srsra(v30.V2D(), v31.V2D(), 64), "srsra v30.2d, v31.2d, #64");
+  COMPARE_MACRO(Srsra(d0, d1, 7), "srsra d0, d1, #7");
 
-  COMPARE(Ssra(v0.V8B(), v1.V8B(), 1),  "ssra v0.8b, v1.8b, #1");
-  COMPARE(Ssra(v2.V8B(), v3.V8B(), 8),  "ssra v2.8b, v3.8b, #8");
-  COMPARE(Ssra(v4.V16B(), v5.V16B(), 1),  "ssra v4.16b, v5.16b, #1");
-  COMPARE(Ssra(v6.V16B(), v7.V16B(), 8),  "ssra v6.16b, v7.16b, #8");
-  COMPARE(Ssra(v8.V4H(), v9.V4H(), 1),  "ssra v8.4h, v9.4h, #1");
-  COMPARE(Ssra(v10.V4H(), v11.V4H(), 16),  "ssra v10.4h, v11.4h, #16");
-  COMPARE(Ssra(v12.V8H(), v13.V8H(), 1),  "ssra v12.8h, v13.8h, #1");
-  COMPARE(Ssra(v14.V8H(), v15.V8H(), 16),  "ssra v14.8h, v15.8h, #16");
-  COMPARE(Ssra(v16.V2S(), v17.V2S(), 1),  "ssra v16.2s, v17.2s, #1");
-  COMPARE(Ssra(v18.V2S(), v19.V2S(), 32),  "ssra v18.2s, v19.2s, #32");
-  COMPARE(Ssra(v20.V4S(), v21.V4S(), 1),  "ssra v20.4s, v21.4s, #1");
-  COMPARE(Ssra(v22.V4S(), v23.V4S(), 32),  "ssra v22.4s, v23.4s, #32");
-  COMPARE(Ssra(v28.V2D(), v29.V2D(), 1),  "ssra v28.2d, v29.2d, #1");
-  COMPARE(Ssra(v30.V2D(), v31.V2D(), 64),  "ssra v30.2d, v31.2d, #64");
-  COMPARE(Ssra(d0, d1, 7), "ssra d0, d1, #7");
+  COMPARE_MACRO(Ssra(v0.V8B(), v1.V8B(), 1), "ssra v0.8b, v1.8b, #1");
+  COMPARE_MACRO(Ssra(v2.V8B(), v3.V8B(), 8), "ssra v2.8b, v3.8b, #8");
+  COMPARE_MACRO(Ssra(v4.V16B(), v5.V16B(), 1), "ssra v4.16b, v5.16b, #1");
+  COMPARE_MACRO(Ssra(v6.V16B(), v7.V16B(), 8), "ssra v6.16b, v7.16b, #8");
+  COMPARE_MACRO(Ssra(v8.V4H(), v9.V4H(), 1), "ssra v8.4h, v9.4h, #1");
+  COMPARE_MACRO(Ssra(v10.V4H(), v11.V4H(), 16), "ssra v10.4h, v11.4h, #16");
+  COMPARE_MACRO(Ssra(v12.V8H(), v13.V8H(), 1), "ssra v12.8h, v13.8h, #1");
+  COMPARE_MACRO(Ssra(v14.V8H(), v15.V8H(), 16), "ssra v14.8h, v15.8h, #16");
+  COMPARE_MACRO(Ssra(v16.V2S(), v17.V2S(), 1), "ssra v16.2s, v17.2s, #1");
+  COMPARE_MACRO(Ssra(v18.V2S(), v19.V2S(), 32), "ssra v18.2s, v19.2s, #32");
+  COMPARE_MACRO(Ssra(v20.V4S(), v21.V4S(), 1), "ssra v20.4s, v21.4s, #1");
+  COMPARE_MACRO(Ssra(v22.V4S(), v23.V4S(), 32), "ssra v22.4s, v23.4s, #32");
+  COMPARE_MACRO(Ssra(v28.V2D(), v29.V2D(), 1), "ssra v28.2d, v29.2d, #1");
+  COMPARE_MACRO(Ssra(v30.V2D(), v31.V2D(), 64), "ssra v30.2d, v31.2d, #64");
+  COMPARE_MACRO(Ssra(d0, d1, 7), "ssra d0, d1, #7");
 
-  COMPARE(Ursra(v0.V8B(), v1.V8B(), 1),  "ursra v0.8b, v1.8b, #1");
-  COMPARE(Ursra(v2.V8B(), v3.V8B(), 8),  "ursra v2.8b, v3.8b, #8");
-  COMPARE(Ursra(v4.V16B(), v5.V16B(), 1),  "ursra v4.16b, v5.16b, #1");
-  COMPARE(Ursra(v6.V16B(), v7.V16B(), 8),  "ursra v6.16b, v7.16b, #8");
-  COMPARE(Ursra(v8.V4H(), v9.V4H(), 1),  "ursra v8.4h, v9.4h, #1");
-  COMPARE(Ursra(v10.V4H(), v11.V4H(), 16),  "ursra v10.4h, v11.4h, #16");
-  COMPARE(Ursra(v12.V8H(), v13.V8H(), 1),  "ursra v12.8h, v13.8h, #1");
-  COMPARE(Ursra(v14.V8H(), v15.V8H(), 16),  "ursra v14.8h, v15.8h, #16");
-  COMPARE(Ursra(v16.V2S(), v17.V2S(), 1),  "ursra v16.2s, v17.2s, #1");
-  COMPARE(Ursra(v18.V2S(), v19.V2S(), 32),  "ursra v18.2s, v19.2s, #32");
-  COMPARE(Ursra(v20.V4S(), v21.V4S(), 1),  "ursra v20.4s, v21.4s, #1");
-  COMPARE(Ursra(v22.V4S(), v23.V4S(), 32),  "ursra v22.4s, v23.4s, #32");
-  COMPARE(Ursra(v28.V2D(), v29.V2D(), 1),  "ursra v28.2d, v29.2d, #1");
-  COMPARE(Ursra(v30.V2D(), v31.V2D(), 64),  "ursra v30.2d, v31.2d, #64");
-  COMPARE(Ursra(d0, d1, 7), "ursra d0, d1, #7");
+  COMPARE_MACRO(Ursra(v0.V8B(), v1.V8B(), 1), "ursra v0.8b, v1.8b, #1");
+  COMPARE_MACRO(Ursra(v2.V8B(), v3.V8B(), 8), "ursra v2.8b, v3.8b, #8");
+  COMPARE_MACRO(Ursra(v4.V16B(), v5.V16B(), 1), "ursra v4.16b, v5.16b, #1");
+  COMPARE_MACRO(Ursra(v6.V16B(), v7.V16B(), 8), "ursra v6.16b, v7.16b, #8");
+  COMPARE_MACRO(Ursra(v8.V4H(), v9.V4H(), 1), "ursra v8.4h, v9.4h, #1");
+  COMPARE_MACRO(Ursra(v10.V4H(), v11.V4H(), 16), "ursra v10.4h, v11.4h, #16");
+  COMPARE_MACRO(Ursra(v12.V8H(), v13.V8H(), 1), "ursra v12.8h, v13.8h, #1");
+  COMPARE_MACRO(Ursra(v14.V8H(), v15.V8H(), 16), "ursra v14.8h, v15.8h, #16");
+  COMPARE_MACRO(Ursra(v16.V2S(), v17.V2S(), 1), "ursra v16.2s, v17.2s, #1");
+  COMPARE_MACRO(Ursra(v18.V2S(), v19.V2S(), 32), "ursra v18.2s, v19.2s, #32");
+  COMPARE_MACRO(Ursra(v20.V4S(), v21.V4S(), 1), "ursra v20.4s, v21.4s, #1");
+  COMPARE_MACRO(Ursra(v22.V4S(), v23.V4S(), 32), "ursra v22.4s, v23.4s, #32");
+  COMPARE_MACRO(Ursra(v28.V2D(), v29.V2D(), 1), "ursra v28.2d, v29.2d, #1");
+  COMPARE_MACRO(Ursra(v30.V2D(), v31.V2D(), 64), "ursra v30.2d, v31.2d, #64");
+  COMPARE_MACRO(Ursra(d0, d1, 7), "ursra d0, d1, #7");
 
-  COMPARE(Usra(v0.V8B(), v1.V8B(), 1),  "usra v0.8b, v1.8b, #1");
-  COMPARE(Usra(v2.V8B(), v3.V8B(), 8),  "usra v2.8b, v3.8b, #8");
-  COMPARE(Usra(v4.V16B(), v5.V16B(), 1),  "usra v4.16b, v5.16b, #1");
-  COMPARE(Usra(v6.V16B(), v7.V16B(), 8),  "usra v6.16b, v7.16b, #8");
-  COMPARE(Usra(v8.V4H(), v9.V4H(), 1),  "usra v8.4h, v9.4h, #1");
-  COMPARE(Usra(v10.V4H(), v11.V4H(), 16),  "usra v10.4h, v11.4h, #16");
-  COMPARE(Usra(v12.V8H(), v13.V8H(), 1),  "usra v12.8h, v13.8h, #1");
-  COMPARE(Usra(v14.V8H(), v15.V8H(), 16),  "usra v14.8h, v15.8h, #16");
-  COMPARE(Usra(v16.V2S(), v17.V2S(), 1),  "usra v16.2s, v17.2s, #1");
-  COMPARE(Usra(v18.V2S(), v19.V2S(), 32),  "usra v18.2s, v19.2s, #32");
-  COMPARE(Usra(v20.V4S(), v21.V4S(), 1),  "usra v20.4s, v21.4s, #1");
-  COMPARE(Usra(v22.V4S(), v23.V4S(), 32),  "usra v22.4s, v23.4s, #32");
-  COMPARE(Usra(v28.V2D(), v29.V2D(), 1),  "usra v28.2d, v29.2d, #1");
-  COMPARE(Usra(v30.V2D(), v31.V2D(), 64),  "usra v30.2d, v31.2d, #64");
-  COMPARE(Usra(d0, d1, 7), "usra d0, d1, #7");
+  COMPARE_MACRO(Usra(v0.V8B(), v1.V8B(), 1), "usra v0.8b, v1.8b, #1");
+  COMPARE_MACRO(Usra(v2.V8B(), v3.V8B(), 8), "usra v2.8b, v3.8b, #8");
+  COMPARE_MACRO(Usra(v4.V16B(), v5.V16B(), 1), "usra v4.16b, v5.16b, #1");
+  COMPARE_MACRO(Usra(v6.V16B(), v7.V16B(), 8), "usra v6.16b, v7.16b, #8");
+  COMPARE_MACRO(Usra(v8.V4H(), v9.V4H(), 1), "usra v8.4h, v9.4h, #1");
+  COMPARE_MACRO(Usra(v10.V4H(), v11.V4H(), 16), "usra v10.4h, v11.4h, #16");
+  COMPARE_MACRO(Usra(v12.V8H(), v13.V8H(), 1), "usra v12.8h, v13.8h, #1");
+  COMPARE_MACRO(Usra(v14.V8H(), v15.V8H(), 16), "usra v14.8h, v15.8h, #16");
+  COMPARE_MACRO(Usra(v16.V2S(), v17.V2S(), 1), "usra v16.2s, v17.2s, #1");
+  COMPARE_MACRO(Usra(v18.V2S(), v19.V2S(), 32), "usra v18.2s, v19.2s, #32");
+  COMPARE_MACRO(Usra(v20.V4S(), v21.V4S(), 1), "usra v20.4s, v21.4s, #1");
+  COMPARE_MACRO(Usra(v22.V4S(), v23.V4S(), 32), "usra v22.4s, v23.4s, #32");
+  COMPARE_MACRO(Usra(v28.V2D(), v29.V2D(), 1), "usra v28.2d, v29.2d, #1");
+  COMPARE_MACRO(Usra(v30.V2D(), v31.V2D(), 64), "usra v30.2d, v31.2d, #64");
+  COMPARE_MACRO(Usra(d0, d1, 7), "usra d0, d1, #7");
 
-  COMPARE(Sli(v1.V8B(),  v8.V8B(),  1), "sli v1.8b, v8.8b, #1");
-  COMPARE(Sli(v2.V16B(), v9.V16B(), 2), "sli v2.16b, v9.16b, #2");
-  COMPARE(Sli(v3.V4H(),  v1.V4H(),  3), "sli v3.4h, v1.4h, #3");
-  COMPARE(Sli(v4.V8H(),  v2.V8H(),  4), "sli v4.8h, v2.8h, #4");
-  COMPARE(Sli(v5.V2S(),  v3.V2S(),  5), "sli v5.2s, v3.2s, #5");
-  COMPARE(Sli(v6.V4S(),  v4.V4S(),  6), "sli v6.4s, v4.4s, #6");
-  COMPARE(Sli(v7.V2D(),  v5.V2D(),  7), "sli v7.2d, v5.2d, #7");
-  COMPARE(Sli(d8,  d6,  8),             "sli d8, d6, #8");
+  COMPARE_MACRO(Sli(v1.V8B(), v8.V8B(), 1), "sli v1.8b, v8.8b, #1");
+  COMPARE_MACRO(Sli(v2.V16B(), v9.V16B(), 2), "sli v2.16b, v9.16b, #2");
+  COMPARE_MACRO(Sli(v3.V4H(), v1.V4H(), 3), "sli v3.4h, v1.4h, #3");
+  COMPARE_MACRO(Sli(v4.V8H(), v2.V8H(), 4), "sli v4.8h, v2.8h, #4");
+  COMPARE_MACRO(Sli(v5.V2S(), v3.V2S(), 5), "sli v5.2s, v3.2s, #5");
+  COMPARE_MACRO(Sli(v6.V4S(), v4.V4S(), 6), "sli v6.4s, v4.4s, #6");
+  COMPARE_MACRO(Sli(v7.V2D(), v5.V2D(), 7), "sli v7.2d, v5.2d, #7");
+  COMPARE_MACRO(Sli(d8, d6, 8), "sli d8, d6, #8");
 
-  COMPARE(Shl(v1.V8B(),  v8.V8B(),  1), "shl v1.8b, v8.8b, #1");
-  COMPARE(Shl(v2.V16B(), v9.V16B(), 2), "shl v2.16b, v9.16b, #2");
-  COMPARE(Shl(v3.V4H(),  v1.V4H(),  3), "shl v3.4h, v1.4h, #3");
-  COMPARE(Shl(v4.V8H(),  v2.V8H(),  4), "shl v4.8h, v2.8h, #4");
-  COMPARE(Shl(v5.V2S(),  v3.V2S(),  5), "shl v5.2s, v3.2s, #5");
-  COMPARE(Shl(v6.V4S(),  v4.V4S(),  6), "shl v6.4s, v4.4s, #6");
-  COMPARE(Shl(v7.V2D(),  v5.V2D(),  7), "shl v7.2d, v5.2d, #7");
-  COMPARE(Shl(d8,  d6,  8),             "shl d8, d6, #8");
+  COMPARE_MACRO(Shl(v1.V8B(), v8.V8B(), 1), "shl v1.8b, v8.8b, #1");
+  COMPARE_MACRO(Shl(v2.V16B(), v9.V16B(), 2), "shl v2.16b, v9.16b, #2");
+  COMPARE_MACRO(Shl(v3.V4H(), v1.V4H(), 3), "shl v3.4h, v1.4h, #3");
+  COMPARE_MACRO(Shl(v4.V8H(), v2.V8H(), 4), "shl v4.8h, v2.8h, #4");
+  COMPARE_MACRO(Shl(v5.V2S(), v3.V2S(), 5), "shl v5.2s, v3.2s, #5");
+  COMPARE_MACRO(Shl(v6.V4S(), v4.V4S(), 6), "shl v6.4s, v4.4s, #6");
+  COMPARE_MACRO(Shl(v7.V2D(), v5.V2D(), 7), "shl v7.2d, v5.2d, #7");
+  COMPARE_MACRO(Shl(d8, d6, 8), "shl d8, d6, #8");
 
-  COMPARE(Sqshl(v1.V8B(),  v8.V8B(),  1), "sqshl v1.8b, v8.8b, #1");
-  COMPARE(Sqshl(v2.V16B(), v9.V16B(), 2), "sqshl v2.16b, v9.16b, #2");
-  COMPARE(Sqshl(v3.V4H(),  v1.V4H(),  3), "sqshl v3.4h, v1.4h, #3");
-  COMPARE(Sqshl(v4.V8H(),  v2.V8H(),  4), "sqshl v4.8h, v2.8h, #4");
-  COMPARE(Sqshl(v5.V2S(),  v3.V2S(),  5), "sqshl v5.2s, v3.2s, #5");
-  COMPARE(Sqshl(v6.V4S(),  v4.V4S(),  6), "sqshl v6.4s, v4.4s, #6");
-  COMPARE(Sqshl(v7.V2D(),  v5.V2D(),  7), "sqshl v7.2d, v5.2d, #7");
-  COMPARE(Sqshl(b8, b7, 1),               "sqshl b8, b7, #1");
-  COMPARE(Sqshl(h9, h8, 2),               "sqshl h9, h8, #2");
-  COMPARE(Sqshl(s10, s9, 3),              "sqshl s10, s9, #3");
-  COMPARE(Sqshl(d11, d10, 4),             "sqshl d11, d10, #4");
+  COMPARE_MACRO(Sqshl(v1.V8B(), v8.V8B(), 1), "sqshl v1.8b, v8.8b, #1");
+  COMPARE_MACRO(Sqshl(v2.V16B(), v9.V16B(), 2), "sqshl v2.16b, v9.16b, #2");
+  COMPARE_MACRO(Sqshl(v3.V4H(), v1.V4H(), 3), "sqshl v3.4h, v1.4h, #3");
+  COMPARE_MACRO(Sqshl(v4.V8H(), v2.V8H(), 4), "sqshl v4.8h, v2.8h, #4");
+  COMPARE_MACRO(Sqshl(v5.V2S(), v3.V2S(), 5), "sqshl v5.2s, v3.2s, #5");
+  COMPARE_MACRO(Sqshl(v6.V4S(), v4.V4S(), 6), "sqshl v6.4s, v4.4s, #6");
+  COMPARE_MACRO(Sqshl(v7.V2D(), v5.V2D(), 7), "sqshl v7.2d, v5.2d, #7");
+  COMPARE_MACRO(Sqshl(b8, b7, 1), "sqshl b8, b7, #1");
+  COMPARE_MACRO(Sqshl(h9, h8, 2), "sqshl h9, h8, #2");
+  COMPARE_MACRO(Sqshl(s10, s9, 3), "sqshl s10, s9, #3");
+  COMPARE_MACRO(Sqshl(d11, d10, 4), "sqshl d11, d10, #4");
 
-  COMPARE(Sqshlu(v1.V8B(),  v8.V8B(),  1), "sqshlu v1.8b, v8.8b, #1");
-  COMPARE(Sqshlu(v2.V16B(), v9.V16B(), 2), "sqshlu v2.16b, v9.16b, #2");
-  COMPARE(Sqshlu(v3.V4H(),  v1.V4H(),  3), "sqshlu v3.4h, v1.4h, #3");
-  COMPARE(Sqshlu(v4.V8H(),  v2.V8H(),  4), "sqshlu v4.8h, v2.8h, #4");
-  COMPARE(Sqshlu(v5.V2S(),  v3.V2S(),  5), "sqshlu v5.2s, v3.2s, #5");
-  COMPARE(Sqshlu(v6.V4S(),  v4.V4S(),  6), "sqshlu v6.4s, v4.4s, #6");
-  COMPARE(Sqshlu(v7.V2D(),  v5.V2D(),  7), "sqshlu v7.2d, v5.2d, #7");
-  COMPARE(Sqshlu(b8, b7, 1),               "sqshlu b8, b7, #1");
-  COMPARE(Sqshlu(h9, h8, 2),               "sqshlu h9, h8, #2");
-  COMPARE(Sqshlu(s10, s9, 3),              "sqshlu s10, s9, #3");
-  COMPARE(Sqshlu(d11, d10, 4),             "sqshlu d11, d10, #4");
+  COMPARE_MACRO(Sqshlu(v1.V8B(), v8.V8B(), 1), "sqshlu v1.8b, v8.8b, #1");
+  COMPARE_MACRO(Sqshlu(v2.V16B(), v9.V16B(), 2), "sqshlu v2.16b, v9.16b, #2");
+  COMPARE_MACRO(Sqshlu(v3.V4H(), v1.V4H(), 3), "sqshlu v3.4h, v1.4h, #3");
+  COMPARE_MACRO(Sqshlu(v4.V8H(), v2.V8H(), 4), "sqshlu v4.8h, v2.8h, #4");
+  COMPARE_MACRO(Sqshlu(v5.V2S(), v3.V2S(), 5), "sqshlu v5.2s, v3.2s, #5");
+  COMPARE_MACRO(Sqshlu(v6.V4S(), v4.V4S(), 6), "sqshlu v6.4s, v4.4s, #6");
+  COMPARE_MACRO(Sqshlu(v7.V2D(), v5.V2D(), 7), "sqshlu v7.2d, v5.2d, #7");
+  COMPARE_MACRO(Sqshlu(b8, b7, 1), "sqshlu b8, b7, #1");
+  COMPARE_MACRO(Sqshlu(h9, h8, 2), "sqshlu h9, h8, #2");
+  COMPARE_MACRO(Sqshlu(s10, s9, 3), "sqshlu s10, s9, #3");
+  COMPARE_MACRO(Sqshlu(d11, d10, 4), "sqshlu d11, d10, #4");
 
-  COMPARE(Uqshl(v1.V8B(),  v8.V8B(),  1), "uqshl v1.8b, v8.8b, #1");
-  COMPARE(Uqshl(v2.V16B(), v9.V16B(), 2), "uqshl v2.16b, v9.16b, #2");
-  COMPARE(Uqshl(v3.V4H(),  v1.V4H(),  3), "uqshl v3.4h, v1.4h, #3");
-  COMPARE(Uqshl(v4.V8H(),  v2.V8H(),  4), "uqshl v4.8h, v2.8h, #4");
-  COMPARE(Uqshl(v5.V2S(),  v3.V2S(),  5), "uqshl v5.2s, v3.2s, #5");
-  COMPARE(Uqshl(v6.V4S(),  v4.V4S(),  6), "uqshl v6.4s, v4.4s, #6");
-  COMPARE(Uqshl(v7.V2D(),  v5.V2D(),  7), "uqshl v7.2d, v5.2d, #7");
-  COMPARE(Uqshl(b8, b7, 1),               "uqshl b8, b7, #1");
-  COMPARE(Uqshl(h9, h8, 2),               "uqshl h9, h8, #2");
-  COMPARE(Uqshl(s10, s9, 3),              "uqshl s10, s9, #3");
-  COMPARE(Uqshl(d11, d10, 4),             "uqshl d11, d10, #4");
+  COMPARE_MACRO(Uqshl(v1.V8B(), v8.V8B(), 1), "uqshl v1.8b, v8.8b, #1");
+  COMPARE_MACRO(Uqshl(v2.V16B(), v9.V16B(), 2), "uqshl v2.16b, v9.16b, #2");
+  COMPARE_MACRO(Uqshl(v3.V4H(), v1.V4H(), 3), "uqshl v3.4h, v1.4h, #3");
+  COMPARE_MACRO(Uqshl(v4.V8H(), v2.V8H(), 4), "uqshl v4.8h, v2.8h, #4");
+  COMPARE_MACRO(Uqshl(v5.V2S(), v3.V2S(), 5), "uqshl v5.2s, v3.2s, #5");
+  COMPARE_MACRO(Uqshl(v6.V4S(), v4.V4S(), 6), "uqshl v6.4s, v4.4s, #6");
+  COMPARE_MACRO(Uqshl(v7.V2D(), v5.V2D(), 7), "uqshl v7.2d, v5.2d, #7");
+  COMPARE_MACRO(Uqshl(b8, b7, 1), "uqshl b8, b7, #1");
+  COMPARE_MACRO(Uqshl(h9, h8, 2), "uqshl h9, h8, #2");
+  COMPARE_MACRO(Uqshl(s10, s9, 3), "uqshl s10, s9, #3");
+  COMPARE_MACRO(Uqshl(d11, d10, 4), "uqshl d11, d10, #4");
 
-  COMPARE(Sshll(v1.V8H(),  v8.V8B(),  1), "sshll v1.8h, v8.8b, #1");
-  COMPARE(Sshll(v3.V4S(),  v1.V4H(),  3), "sshll v3.4s, v1.4h, #3");
-  COMPARE(Sshll(v5.V2D(),  v3.V2S(),  5), "sshll v5.2d, v3.2s, #5");
-  COMPARE(Sshll2(v2.V8H(), v9.V16B(), 2), "sshll2 v2.8h, v9.16b, #2");
-  COMPARE(Sshll2(v4.V4S(), v2.V8H(),  4), "sshll2 v4.4s, v2.8h, #4");
-  COMPARE(Sshll2(v6.V2D(), v4.V4S(),  6), "sshll2 v6.2d, v4.4s, #6");
+  COMPARE_MACRO(Sshll(v1.V8H(), v8.V8B(), 1), "sshll v1.8h, v8.8b, #1");
+  COMPARE_MACRO(Sshll(v3.V4S(), v1.V4H(), 3), "sshll v3.4s, v1.4h, #3");
+  COMPARE_MACRO(Sshll(v5.V2D(), v3.V2S(), 5), "sshll v5.2d, v3.2s, #5");
+  COMPARE_MACRO(Sshll2(v2.V8H(), v9.V16B(), 2), "sshll2 v2.8h, v9.16b, #2");
+  COMPARE_MACRO(Sshll2(v4.V4S(), v2.V8H(), 4), "sshll2 v4.4s, v2.8h, #4");
+  COMPARE_MACRO(Sshll2(v6.V2D(), v4.V4S(), 6), "sshll2 v6.2d, v4.4s, #6");
 
-  COMPARE(Sshll(v1.V8H(),  v8.V8B(),  0), "sxtl v1.8h, v8.8b");
-  COMPARE(Sshll(v3.V4S(),  v1.V4H(),  0), "sxtl v3.4s, v1.4h");
-  COMPARE(Sshll(v5.V2D(),  v3.V2S(),  0), "sxtl v5.2d, v3.2s");
-  COMPARE(Sshll2(v2.V8H(), v9.V16B(), 0), "sxtl2 v2.8h, v9.16b");
-  COMPARE(Sshll2(v4.V4S(), v2.V8H(),  0), "sxtl2 v4.4s, v2.8h");
-  COMPARE(Sshll2(v6.V2D(), v4.V4S(),  0), "sxtl2 v6.2d, v4.4s");
+  COMPARE_MACRO(Sshll(v1.V8H(), v8.V8B(), 0), "sxtl v1.8h, v8.8b");
+  COMPARE_MACRO(Sshll(v3.V4S(), v1.V4H(), 0), "sxtl v3.4s, v1.4h");
+  COMPARE_MACRO(Sshll(v5.V2D(), v3.V2S(), 0), "sxtl v5.2d, v3.2s");
+  COMPARE_MACRO(Sshll2(v2.V8H(), v9.V16B(), 0), "sxtl2 v2.8h, v9.16b");
+  COMPARE_MACRO(Sshll2(v4.V4S(), v2.V8H(), 0), "sxtl2 v4.4s, v2.8h");
+  COMPARE_MACRO(Sshll2(v6.V2D(), v4.V4S(), 0), "sxtl2 v6.2d, v4.4s");
 
-  COMPARE(Sxtl(v1.V8H(),  v8.V8B()),  "sxtl v1.8h, v8.8b");
-  COMPARE(Sxtl(v3.V4S(),  v1.V4H()),  "sxtl v3.4s, v1.4h");
-  COMPARE(Sxtl(v5.V2D(),  v3.V2S()),  "sxtl v5.2d, v3.2s");
-  COMPARE(Sxtl2(v2.V8H(), v9.V16B()), "sxtl2 v2.8h, v9.16b");
-  COMPARE(Sxtl2(v4.V4S(), v2.V8H()),  "sxtl2 v4.4s, v2.8h");
-  COMPARE(Sxtl2(v6.V2D(), v4.V4S()),  "sxtl2 v6.2d, v4.4s");
+  COMPARE_MACRO(Sxtl(v1.V8H(), v8.V8B()), "sxtl v1.8h, v8.8b");
+  COMPARE_MACRO(Sxtl(v3.V4S(), v1.V4H()), "sxtl v3.4s, v1.4h");
+  COMPARE_MACRO(Sxtl(v5.V2D(), v3.V2S()), "sxtl v5.2d, v3.2s");
+  COMPARE_MACRO(Sxtl2(v2.V8H(), v9.V16B()), "sxtl2 v2.8h, v9.16b");
+  COMPARE_MACRO(Sxtl2(v4.V4S(), v2.V8H()), "sxtl2 v4.4s, v2.8h");
+  COMPARE_MACRO(Sxtl2(v6.V2D(), v4.V4S()), "sxtl2 v6.2d, v4.4s");
 
-  COMPARE(Ushll(v1.V8H(),  v8.V8B(),  1), "ushll v1.8h, v8.8b, #1");
-  COMPARE(Ushll(v3.V4S(),  v1.V4H(),  3), "ushll v3.4s, v1.4h, #3");
-  COMPARE(Ushll(v5.V2D(),  v3.V2S(),  5), "ushll v5.2d, v3.2s, #5");
-  COMPARE(Ushll2(v2.V8H(), v9.V16B(), 2), "ushll2 v2.8h, v9.16b, #2");
-  COMPARE(Ushll2(v4.V4S(), v2.V8H(),  4), "ushll2 v4.4s, v2.8h, #4");
-  COMPARE(Ushll2(v6.V2D(), v4.V4S(),  6), "ushll2 v6.2d, v4.4s, #6");
+  COMPARE_MACRO(Ushll(v1.V8H(), v8.V8B(), 1), "ushll v1.8h, v8.8b, #1");
+  COMPARE_MACRO(Ushll(v3.V4S(), v1.V4H(), 3), "ushll v3.4s, v1.4h, #3");
+  COMPARE_MACRO(Ushll(v5.V2D(), v3.V2S(), 5), "ushll v5.2d, v3.2s, #5");
+  COMPARE_MACRO(Ushll2(v2.V8H(), v9.V16B(), 2), "ushll2 v2.8h, v9.16b, #2");
+  COMPARE_MACRO(Ushll2(v4.V4S(), v2.V8H(), 4), "ushll2 v4.4s, v2.8h, #4");
+  COMPARE_MACRO(Ushll2(v6.V2D(), v4.V4S(), 6), "ushll2 v6.2d, v4.4s, #6");
 
-  COMPARE(Ushll(v1.V8H(),  v8.V8B(),  0), "uxtl v1.8h, v8.8b");
-  COMPARE(Ushll(v3.V4S(),  v1.V4H(),  0), "uxtl v3.4s, v1.4h");
-  COMPARE(Ushll(v5.V2D(),  v3.V2S(),  0), "uxtl v5.2d, v3.2s");
-  COMPARE(Ushll2(v2.V8H(), v9.V16B(), 0), "uxtl2 v2.8h, v9.16b");
-  COMPARE(Ushll2(v4.V4S(), v2.V8H(),  0), "uxtl2 v4.4s, v2.8h");
-  COMPARE(Ushll2(v6.V2D(), v4.V4S(),  0), "uxtl2 v6.2d, v4.4s");
+  COMPARE_MACRO(Ushll(v1.V8H(), v8.V8B(), 0), "uxtl v1.8h, v8.8b");
+  COMPARE_MACRO(Ushll(v3.V4S(), v1.V4H(), 0), "uxtl v3.4s, v1.4h");
+  COMPARE_MACRO(Ushll(v5.V2D(), v3.V2S(), 0), "uxtl v5.2d, v3.2s");
+  COMPARE_MACRO(Ushll2(v2.V8H(), v9.V16B(), 0), "uxtl2 v2.8h, v9.16b");
+  COMPARE_MACRO(Ushll2(v4.V4S(), v2.V8H(), 0), "uxtl2 v4.4s, v2.8h");
+  COMPARE_MACRO(Ushll2(v6.V2D(), v4.V4S(), 0), "uxtl2 v6.2d, v4.4s");
 
-  COMPARE(Uxtl(v1.V8H(),  v8.V8B()),  "uxtl v1.8h, v8.8b");
-  COMPARE(Uxtl(v3.V4S(),  v1.V4H()),  "uxtl v3.4s, v1.4h");
-  COMPARE(Uxtl(v5.V2D(),  v3.V2S()),  "uxtl v5.2d, v3.2s");
-  COMPARE(Uxtl2(v2.V8H(), v9.V16B()), "uxtl2 v2.8h, v9.16b");
-  COMPARE(Uxtl2(v4.V4S(), v2.V8H()),  "uxtl2 v4.4s, v2.8h");
-  COMPARE(Uxtl2(v6.V2D(), v4.V4S()),  "uxtl2 v6.2d, v4.4s");
+  COMPARE_MACRO(Uxtl(v1.V8H(), v8.V8B()), "uxtl v1.8h, v8.8b");
+  COMPARE_MACRO(Uxtl(v3.V4S(), v1.V4H()), "uxtl v3.4s, v1.4h");
+  COMPARE_MACRO(Uxtl(v5.V2D(), v3.V2S()), "uxtl v5.2d, v3.2s");
+  COMPARE_MACRO(Uxtl2(v2.V8H(), v9.V16B()), "uxtl2 v2.8h, v9.16b");
+  COMPARE_MACRO(Uxtl2(v4.V4S(), v2.V8H()), "uxtl2 v4.4s, v2.8h");
+  COMPARE_MACRO(Uxtl2(v6.V2D(), v4.V4S()), "uxtl2 v6.2d, v4.4s");
 
-  COMPARE(Sri(v1.V8B(),  v8.V8B(),  1), "sri v1.8b, v8.8b, #1");
-  COMPARE(Sri(v2.V16B(), v9.V16B(), 2), "sri v2.16b, v9.16b, #2");
-  COMPARE(Sri(v3.V4H(),  v1.V4H(),  3), "sri v3.4h, v1.4h, #3");
-  COMPARE(Sri(v4.V8H(),  v2.V8H(),  4), "sri v4.8h, v2.8h, #4");
-  COMPARE(Sri(v5.V2S(),  v3.V2S(),  5), "sri v5.2s, v3.2s, #5");
-  COMPARE(Sri(v6.V4S(),  v4.V4S(),  6), "sri v6.4s, v4.4s, #6");
-  COMPARE(Sri(v7.V2D(),  v5.V2D(),  7), "sri v7.2d, v5.2d, #7");
-  COMPARE(Sri(d8,  d6,  8),             "sri d8, d6, #8");
+  COMPARE_MACRO(Sri(v1.V8B(), v8.V8B(), 1), "sri v1.8b, v8.8b, #1");
+  COMPARE_MACRO(Sri(v2.V16B(), v9.V16B(), 2), "sri v2.16b, v9.16b, #2");
+  COMPARE_MACRO(Sri(v3.V4H(), v1.V4H(), 3), "sri v3.4h, v1.4h, #3");
+  COMPARE_MACRO(Sri(v4.V8H(), v2.V8H(), 4), "sri v4.8h, v2.8h, #4");
+  COMPARE_MACRO(Sri(v5.V2S(), v3.V2S(), 5), "sri v5.2s, v3.2s, #5");
+  COMPARE_MACRO(Sri(v6.V4S(), v4.V4S(), 6), "sri v6.4s, v4.4s, #6");
+  COMPARE_MACRO(Sri(v7.V2D(), v5.V2D(), 7), "sri v7.2d, v5.2d, #7");
+  COMPARE_MACRO(Sri(d8, d6, 8), "sri d8, d6, #8");
 
-  COMPARE(Shrn(v0.V8B(), v1.V8H(), 1), "shrn v0.8b, v1.8h, #1");
-  COMPARE(Shrn(v1.V4H(), v2.V4S(), 2), "shrn v1.4h, v2.4s, #2");
-  COMPARE(Shrn(v2.V2S(), v3.V2D(), 3), "shrn v2.2s, v3.2d, #3");
-  COMPARE(Shrn2(v0.V16B(), v1.V8H(), 4), "shrn2 v0.16b, v1.8h, #4");
-  COMPARE(Shrn2(v1.V8H(), v2.V4S(), 5), "shrn2 v1.8h, v2.4s, #5");
-  COMPARE(Shrn2(v2.V4S(), v3.V2D(), 6), "shrn2 v2.4s, v3.2d, #6");
+  COMPARE_MACRO(Shrn(v0.V8B(), v1.V8H(), 1), "shrn v0.8b, v1.8h, #1");
+  COMPARE_MACRO(Shrn(v1.V4H(), v2.V4S(), 2), "shrn v1.4h, v2.4s, #2");
+  COMPARE_MACRO(Shrn(v2.V2S(), v3.V2D(), 3), "shrn v2.2s, v3.2d, #3");
+  COMPARE_MACRO(Shrn2(v0.V16B(), v1.V8H(), 4), "shrn2 v0.16b, v1.8h, #4");
+  COMPARE_MACRO(Shrn2(v1.V8H(), v2.V4S(), 5), "shrn2 v1.8h, v2.4s, #5");
+  COMPARE_MACRO(Shrn2(v2.V4S(), v3.V2D(), 6), "shrn2 v2.4s, v3.2d, #6");
 
-  COMPARE(Rshrn(v0.V8B(), v1.V8H(), 1), "rshrn v0.8b, v1.8h, #1");
-  COMPARE(Rshrn(v1.V4H(), v2.V4S(), 2), "rshrn v1.4h, v2.4s, #2");
-  COMPARE(Rshrn(v2.V2S(), v3.V2D(), 3), "rshrn v2.2s, v3.2d, #3");
-  COMPARE(Rshrn2(v0.V16B(), v1.V8H(), 4), "rshrn2 v0.16b, v1.8h, #4");
-  COMPARE(Rshrn2(v1.V8H(), v2.V4S(), 5), "rshrn2 v1.8h, v2.4s, #5");
-  COMPARE(Rshrn2(v2.V4S(), v3.V2D(), 6), "rshrn2 v2.4s, v3.2d, #6");
+  COMPARE_MACRO(Rshrn(v0.V8B(), v1.V8H(), 1), "rshrn v0.8b, v1.8h, #1");
+  COMPARE_MACRO(Rshrn(v1.V4H(), v2.V4S(), 2), "rshrn v1.4h, v2.4s, #2");
+  COMPARE_MACRO(Rshrn(v2.V2S(), v3.V2D(), 3), "rshrn v2.2s, v3.2d, #3");
+  COMPARE_MACRO(Rshrn2(v0.V16B(), v1.V8H(), 4), "rshrn2 v0.16b, v1.8h, #4");
+  COMPARE_MACRO(Rshrn2(v1.V8H(), v2.V4S(), 5), "rshrn2 v1.8h, v2.4s, #5");
+  COMPARE_MACRO(Rshrn2(v2.V4S(), v3.V2D(), 6), "rshrn2 v2.4s, v3.2d, #6");
 
-  COMPARE(Uqshrn(v0.V8B(), v1.V8H(), 1), "uqshrn v0.8b, v1.8h, #1");
-  COMPARE(Uqshrn(v1.V4H(), v2.V4S(), 2), "uqshrn v1.4h, v2.4s, #2");
-  COMPARE(Uqshrn(v2.V2S(), v3.V2D(), 3), "uqshrn v2.2s, v3.2d, #3");
-  COMPARE(Uqshrn2(v0.V16B(), v1.V8H(), 4), "uqshrn2 v0.16b, v1.8h, #4");
-  COMPARE(Uqshrn2(v1.V8H(), v2.V4S(), 5), "uqshrn2 v1.8h, v2.4s, #5");
-  COMPARE(Uqshrn2(v2.V4S(), v3.V2D(), 6), "uqshrn2 v2.4s, v3.2d, #6");
-  COMPARE(Uqshrn(b0, h1, 1), "uqshrn b0, h1, #1");
-  COMPARE(Uqshrn(h1, s2, 2), "uqshrn h1, s2, #2");
-  COMPARE(Uqshrn(s2, d3, 3), "uqshrn s2, d3, #3");
+  COMPARE_MACRO(Uqshrn(v0.V8B(), v1.V8H(), 1), "uqshrn v0.8b, v1.8h, #1");
+  COMPARE_MACRO(Uqshrn(v1.V4H(), v2.V4S(), 2), "uqshrn v1.4h, v2.4s, #2");
+  COMPARE_MACRO(Uqshrn(v2.V2S(), v3.V2D(), 3), "uqshrn v2.2s, v3.2d, #3");
+  COMPARE_MACRO(Uqshrn2(v0.V16B(), v1.V8H(), 4), "uqshrn2 v0.16b, v1.8h, #4");
+  COMPARE_MACRO(Uqshrn2(v1.V8H(), v2.V4S(), 5), "uqshrn2 v1.8h, v2.4s, #5");
+  COMPARE_MACRO(Uqshrn2(v2.V4S(), v3.V2D(), 6), "uqshrn2 v2.4s, v3.2d, #6");
+  COMPARE_MACRO(Uqshrn(b0, h1, 1), "uqshrn b0, h1, #1");
+  COMPARE_MACRO(Uqshrn(h1, s2, 2), "uqshrn h1, s2, #2");
+  COMPARE_MACRO(Uqshrn(s2, d3, 3), "uqshrn s2, d3, #3");
 
-  COMPARE(Uqrshrn(v0.V8B(), v1.V8H(), 1), "uqrshrn v0.8b, v1.8h, #1");
-  COMPARE(Uqrshrn(v1.V4H(), v2.V4S(), 2), "uqrshrn v1.4h, v2.4s, #2");
-  COMPARE(Uqrshrn(v2.V2S(), v3.V2D(), 3), "uqrshrn v2.2s, v3.2d, #3");
-  COMPARE(Uqrshrn2(v0.V16B(), v1.V8H(), 4), "uqrshrn2 v0.16b, v1.8h, #4");
-  COMPARE(Uqrshrn2(v1.V8H(), v2.V4S(), 5), "uqrshrn2 v1.8h, v2.4s, #5");
-  COMPARE(Uqrshrn2(v2.V4S(), v3.V2D(), 6), "uqrshrn2 v2.4s, v3.2d, #6");
-  COMPARE(Uqrshrn(b0, h1, 1), "uqrshrn b0, h1, #1");
-  COMPARE(Uqrshrn(h1, s2, 2), "uqrshrn h1, s2, #2");
-  COMPARE(Uqrshrn(s2, d3, 3), "uqrshrn s2, d3, #3");
+  COMPARE_MACRO(Uqrshrn(v0.V8B(), v1.V8H(), 1), "uqrshrn v0.8b, v1.8h, #1");
+  COMPARE_MACRO(Uqrshrn(v1.V4H(), v2.V4S(), 2), "uqrshrn v1.4h, v2.4s, #2");
+  COMPARE_MACRO(Uqrshrn(v2.V2S(), v3.V2D(), 3), "uqrshrn v2.2s, v3.2d, #3");
+  COMPARE_MACRO(Uqrshrn2(v0.V16B(), v1.V8H(), 4), "uqrshrn2 v0.16b, v1.8h, #4");
+  COMPARE_MACRO(Uqrshrn2(v1.V8H(), v2.V4S(), 5), "uqrshrn2 v1.8h, v2.4s, #5");
+  COMPARE_MACRO(Uqrshrn2(v2.V4S(), v3.V2D(), 6), "uqrshrn2 v2.4s, v3.2d, #6");
+  COMPARE_MACRO(Uqrshrn(b0, h1, 1), "uqrshrn b0, h1, #1");
+  COMPARE_MACRO(Uqrshrn(h1, s2, 2), "uqrshrn h1, s2, #2");
+  COMPARE_MACRO(Uqrshrn(s2, d3, 3), "uqrshrn s2, d3, #3");
 
-  COMPARE(Sqshrn(v0.V8B(), v1.V8H(), 1), "sqshrn v0.8b, v1.8h, #1");
-  COMPARE(Sqshrn(v1.V4H(), v2.V4S(), 2), "sqshrn v1.4h, v2.4s, #2");
-  COMPARE(Sqshrn(v2.V2S(), v3.V2D(), 3), "sqshrn v2.2s, v3.2d, #3");
-  COMPARE(Sqshrn2(v0.V16B(), v1.V8H(), 4), "sqshrn2 v0.16b, v1.8h, #4");
-  COMPARE(Sqshrn2(v1.V8H(), v2.V4S(), 5), "sqshrn2 v1.8h, v2.4s, #5");
-  COMPARE(Sqshrn2(v2.V4S(), v3.V2D(), 6), "sqshrn2 v2.4s, v3.2d, #6");
-  COMPARE(Sqshrn(b0, h1, 1), "sqshrn b0, h1, #1");
-  COMPARE(Sqshrn(h1, s2, 2), "sqshrn h1, s2, #2");
-  COMPARE(Sqshrn(s2, d3, 3), "sqshrn s2, d3, #3");
+  COMPARE_MACRO(Sqshrn(v0.V8B(), v1.V8H(), 1), "sqshrn v0.8b, v1.8h, #1");
+  COMPARE_MACRO(Sqshrn(v1.V4H(), v2.V4S(), 2), "sqshrn v1.4h, v2.4s, #2");
+  COMPARE_MACRO(Sqshrn(v2.V2S(), v3.V2D(), 3), "sqshrn v2.2s, v3.2d, #3");
+  COMPARE_MACRO(Sqshrn2(v0.V16B(), v1.V8H(), 4), "sqshrn2 v0.16b, v1.8h, #4");
+  COMPARE_MACRO(Sqshrn2(v1.V8H(), v2.V4S(), 5), "sqshrn2 v1.8h, v2.4s, #5");
+  COMPARE_MACRO(Sqshrn2(v2.V4S(), v3.V2D(), 6), "sqshrn2 v2.4s, v3.2d, #6");
+  COMPARE_MACRO(Sqshrn(b0, h1, 1), "sqshrn b0, h1, #1");
+  COMPARE_MACRO(Sqshrn(h1, s2, 2), "sqshrn h1, s2, #2");
+  COMPARE_MACRO(Sqshrn(s2, d3, 3), "sqshrn s2, d3, #3");
 
-  COMPARE(Sqrshrn(v0.V8B(), v1.V8H(), 1), "sqrshrn v0.8b, v1.8h, #1");
-  COMPARE(Sqrshrn(v1.V4H(), v2.V4S(), 2), "sqrshrn v1.4h, v2.4s, #2");
-  COMPARE(Sqrshrn(v2.V2S(), v3.V2D(), 3), "sqrshrn v2.2s, v3.2d, #3");
-  COMPARE(Sqrshrn2(v0.V16B(), v1.V8H(), 4), "sqrshrn2 v0.16b, v1.8h, #4");
-  COMPARE(Sqrshrn2(v1.V8H(), v2.V4S(), 5), "sqrshrn2 v1.8h, v2.4s, #5");
-  COMPARE(Sqrshrn2(v2.V4S(), v3.V2D(), 6), "sqrshrn2 v2.4s, v3.2d, #6");
-  COMPARE(Sqrshrn(b0, h1, 1), "sqrshrn b0, h1, #1");
-  COMPARE(Sqrshrn(h1, s2, 2), "sqrshrn h1, s2, #2");
-  COMPARE(Sqrshrn(s2, d3, 3), "sqrshrn s2, d3, #3");
+  COMPARE_MACRO(Sqrshrn(v0.V8B(), v1.V8H(), 1), "sqrshrn v0.8b, v1.8h, #1");
+  COMPARE_MACRO(Sqrshrn(v1.V4H(), v2.V4S(), 2), "sqrshrn v1.4h, v2.4s, #2");
+  COMPARE_MACRO(Sqrshrn(v2.V2S(), v3.V2D(), 3), "sqrshrn v2.2s, v3.2d, #3");
+  COMPARE_MACRO(Sqrshrn2(v0.V16B(), v1.V8H(), 4), "sqrshrn2 v0.16b, v1.8h, #4");
+  COMPARE_MACRO(Sqrshrn2(v1.V8H(), v2.V4S(), 5), "sqrshrn2 v1.8h, v2.4s, #5");
+  COMPARE_MACRO(Sqrshrn2(v2.V4S(), v3.V2D(), 6), "sqrshrn2 v2.4s, v3.2d, #6");
+  COMPARE_MACRO(Sqrshrn(b0, h1, 1), "sqrshrn b0, h1, #1");
+  COMPARE_MACRO(Sqrshrn(h1, s2, 2), "sqrshrn h1, s2, #2");
+  COMPARE_MACRO(Sqrshrn(s2, d3, 3), "sqrshrn s2, d3, #3");
 
-  COMPARE(Sqshrun(v0.V8B(), v1.V8H(), 1), "sqshrun v0.8b, v1.8h, #1");
-  COMPARE(Sqshrun(v1.V4H(), v2.V4S(), 2), "sqshrun v1.4h, v2.4s, #2");
-  COMPARE(Sqshrun(v2.V2S(), v3.V2D(), 3), "sqshrun v2.2s, v3.2d, #3");
-  COMPARE(Sqshrun2(v0.V16B(), v1.V8H(), 4), "sqshrun2 v0.16b, v1.8h, #4");
-  COMPARE(Sqshrun2(v1.V8H(), v2.V4S(), 5), "sqshrun2 v1.8h, v2.4s, #5");
-  COMPARE(Sqshrun2(v2.V4S(), v3.V2D(), 6), "sqshrun2 v2.4s, v3.2d, #6");
-  COMPARE(Sqshrun(b0, h1, 1), "sqshrun b0, h1, #1");
-  COMPARE(Sqshrun(h1, s2, 2), "sqshrun h1, s2, #2");
-  COMPARE(Sqshrun(s2, d3, 3), "sqshrun s2, d3, #3");
+  COMPARE_MACRO(Sqshrun(v0.V8B(), v1.V8H(), 1), "sqshrun v0.8b, v1.8h, #1");
+  COMPARE_MACRO(Sqshrun(v1.V4H(), v2.V4S(), 2), "sqshrun v1.4h, v2.4s, #2");
+  COMPARE_MACRO(Sqshrun(v2.V2S(), v3.V2D(), 3), "sqshrun v2.2s, v3.2d, #3");
+  COMPARE_MACRO(Sqshrun2(v0.V16B(), v1.V8H(), 4), "sqshrun2 v0.16b, v1.8h, #4");
+  COMPARE_MACRO(Sqshrun2(v1.V8H(), v2.V4S(), 5), "sqshrun2 v1.8h, v2.4s, #5");
+  COMPARE_MACRO(Sqshrun2(v2.V4S(), v3.V2D(), 6), "sqshrun2 v2.4s, v3.2d, #6");
+  COMPARE_MACRO(Sqshrun(b0, h1, 1), "sqshrun b0, h1, #1");
+  COMPARE_MACRO(Sqshrun(h1, s2, 2), "sqshrun h1, s2, #2");
+  COMPARE_MACRO(Sqshrun(s2, d3, 3), "sqshrun s2, d3, #3");
 
-  COMPARE(Sqrshrun(v0.V8B(), v1.V8H(), 1), "sqrshrun v0.8b, v1.8h, #1");
-  COMPARE(Sqrshrun(v1.V4H(), v2.V4S(), 2), "sqrshrun v1.4h, v2.4s, #2");
-  COMPARE(Sqrshrun(v2.V2S(), v3.V2D(), 3), "sqrshrun v2.2s, v3.2d, #3");
-  COMPARE(Sqrshrun2(v0.V16B(), v1.V8H(), 4), "sqrshrun2 v0.16b, v1.8h, #4");
-  COMPARE(Sqrshrun2(v1.V8H(), v2.V4S(), 5), "sqrshrun2 v1.8h, v2.4s, #5");
-  COMPARE(Sqrshrun2(v2.V4S(), v3.V2D(), 6), "sqrshrun2 v2.4s, v3.2d, #6");
-  COMPARE(Sqrshrun(b0, h1, 1), "sqrshrun b0, h1, #1");
-  COMPARE(Sqrshrun(h1, s2, 2), "sqrshrun h1, s2, #2");
-  COMPARE(Sqrshrun(s2, d3, 3), "sqrshrun s2, d3, #3");
+  COMPARE_MACRO(Sqrshrun(v0.V8B(), v1.V8H(), 1), "sqrshrun v0.8b, v1.8h, #1");
+  COMPARE_MACRO(Sqrshrun(v1.V4H(), v2.V4S(), 2), "sqrshrun v1.4h, v2.4s, #2");
+  COMPARE_MACRO(Sqrshrun(v2.V2S(), v3.V2D(), 3), "sqrshrun v2.2s, v3.2d, #3");
+  COMPARE_MACRO(Sqrshrun2(v0.V16B(), v1.V8H(), 4),
+                "sqrshrun2 v0.16b, v1.8h, #4");
+  COMPARE_MACRO(Sqrshrun2(v1.V8H(), v2.V4S(), 5), "sqrshrun2 v1.8h, v2.4s, #5");
+  COMPARE_MACRO(Sqrshrun2(v2.V4S(), v3.V2D(), 6), "sqrshrun2 v2.4s, v3.2d, #6");
+  COMPARE_MACRO(Sqrshrun(b0, h1, 1), "sqrshrun b0, h1, #1");
+  COMPARE_MACRO(Sqrshrun(h1, s2, 2), "sqrshrun h1, s2, #2");
+  COMPARE_MACRO(Sqrshrun(s2, d3, 3), "sqrshrun s2, d3, #3");
 
-  COMPARE(Scvtf(v5.V2S(), v3.V2S(), 11), "scvtf v5.2s, v3.2s, #11");
-  COMPARE(Scvtf(v6.V4S(), v4.V4S(), 12), "scvtf v6.4s, v4.4s, #12");
-  COMPARE(Scvtf(v7.V2D(), v5.V2D(), 33), "scvtf v7.2d, v5.2d, #33");
-  COMPARE(Scvtf(s8, s6, 13), "scvtf s8, s6, #13");
-  COMPARE(Scvtf(d8, d6, 34), "scvtf d8, d6, #34");
+  COMPARE_MACRO(Scvtf(v5.V2S(), v3.V2S(), 11), "scvtf v5.2s, v3.2s, #11");
+  COMPARE_MACRO(Scvtf(v6.V4S(), v4.V4S(), 12), "scvtf v6.4s, v4.4s, #12");
+  COMPARE_MACRO(Scvtf(v7.V2D(), v5.V2D(), 33), "scvtf v7.2d, v5.2d, #33");
+  COMPARE_MACRO(Scvtf(s8, s6, 13), "scvtf s8, s6, #13");
+  COMPARE_MACRO(Scvtf(d8, d6, 34), "scvtf d8, d6, #34");
 
-  COMPARE(Ucvtf(v5.V2S(), v3.V2S(), 11), "ucvtf v5.2s, v3.2s, #11");
-  COMPARE(Ucvtf(v6.V4S(), v4.V4S(), 12), "ucvtf v6.4s, v4.4s, #12");
-  COMPARE(Ucvtf(v7.V2D(), v5.V2D(), 33), "ucvtf v7.2d, v5.2d, #33");
-  COMPARE(Ucvtf(s8, s6, 13), "ucvtf s8, s6, #13");
-  COMPARE(Ucvtf(d8, d6, 34), "ucvtf d8, d6, #34");
+  COMPARE_MACRO(Ucvtf(v5.V2S(), v3.V2S(), 11), "ucvtf v5.2s, v3.2s, #11");
+  COMPARE_MACRO(Ucvtf(v6.V4S(), v4.V4S(), 12), "ucvtf v6.4s, v4.4s, #12");
+  COMPARE_MACRO(Ucvtf(v7.V2D(), v5.V2D(), 33), "ucvtf v7.2d, v5.2d, #33");
+  COMPARE_MACRO(Ucvtf(s8, s6, 13), "ucvtf s8, s6, #13");
+  COMPARE_MACRO(Ucvtf(d8, d6, 34), "ucvtf d8, d6, #34");
 
-  COMPARE(Fcvtzs(v5.V2S(), v3.V2S(), 11), "fcvtzs v5.2s, v3.2s, #11");
-  COMPARE(Fcvtzs(v6.V4S(), v4.V4S(), 12), "fcvtzs v6.4s, v4.4s, #12");
-  COMPARE(Fcvtzs(v7.V2D(), v5.V2D(), 33), "fcvtzs v7.2d, v5.2d, #33");
-  COMPARE(Fcvtzs(s8, s6, 13), "fcvtzs s8, s6, #13");
-  COMPARE(Fcvtzs(d8, d6, 34), "fcvtzs d8, d6, #34");
+  COMPARE_MACRO(Fcvtzs(v5.V2S(), v3.V2S(), 11), "fcvtzs v5.2s, v3.2s, #11");
+  COMPARE_MACRO(Fcvtzs(v6.V4S(), v4.V4S(), 12), "fcvtzs v6.4s, v4.4s, #12");
+  COMPARE_MACRO(Fcvtzs(v7.V2D(), v5.V2D(), 33), "fcvtzs v7.2d, v5.2d, #33");
+  COMPARE_MACRO(Fcvtzs(s8, s6, 13), "fcvtzs s8, s6, #13");
+  COMPARE_MACRO(Fcvtzs(d8, d6, 34), "fcvtzs d8, d6, #34");
 
-  COMPARE(Fcvtzu(v5.V2S(), v3.V2S(), 11), "fcvtzu v5.2s, v3.2s, #11");
-  COMPARE(Fcvtzu(v6.V4S(), v4.V4S(), 12), "fcvtzu v6.4s, v4.4s, #12");
-  COMPARE(Fcvtzu(v7.V2D(), v5.V2D(), 33), "fcvtzu v7.2d, v5.2d, #33");
-  COMPARE(Fcvtzu(s8, s6, 13), "fcvtzu s8, s6, #13");
-  COMPARE(Fcvtzu(d8, d6, 34), "fcvtzu d8, d6, #34");
-
+  COMPARE_MACRO(Fcvtzu(v5.V2S(), v3.V2S(), 11), "fcvtzu v5.2s, v3.2s, #11");
+  COMPARE_MACRO(Fcvtzu(v6.V4S(), v4.V4S(), 12), "fcvtzu v6.4s, v4.4s, #12");
+  COMPARE_MACRO(Fcvtzu(v7.V2D(), v5.V2D(), 33), "fcvtzu v7.2d, v5.2d, #33");
+  COMPARE_MACRO(Fcvtzu(s8, s6, 13), "fcvtzu s8, s6, #13");
+  COMPARE_MACRO(Fcvtzu(d8, d6, 34), "fcvtzu d8, d6, #34");
   CLEANUP();
 }
 
diff --git a/test/aarch64/test-fuzz-aarch64.cc b/test/aarch64/test-fuzz-aarch64.cc
index 691efbf..56c1c1d 100644
--- a/test/aarch64/test-fuzz-aarch64.cc
+++ b/test/aarch64/test-fuzz-aarch64.cc
@@ -31,7 +31,7 @@
 #include "aarch64/decoder-aarch64.h"
 #include "aarch64/disasm-aarch64.h"
 
-#define TEST(name)  TEST_(AARCH64_FUZZ_##name)
+#define TEST(name) TEST_(AARCH64_FUZZ_##name)
 
 
 namespace vixl {
@@ -117,5 +117,5 @@
 }
 #endif
 
-}   // namespace aarch64
-}   // namespace vixl
+}  // namespace aarch64
+}  // namespace vixl
diff --git a/test/aarch64/test-simulator-aarch64.cc b/test/aarch64/test-simulator-aarch64.cc
index 09705d6..0fa1e72 100644
--- a/test/aarch64/test-simulator-aarch64.cc
+++ b/test/aarch64/test-simulator-aarch64.cc
@@ -53,76 +53,75 @@
 // test-simulator-traces-aarch64.h.
 
 #define __ masm.
-#define TEST(name)  TEST_(AARCH64_SIM_##name)
+#define TEST(name) TEST_(AARCH64_SIM_##name)
 
 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
 
-#define SETUP()                                                               \
-  MacroAssembler masm;                                                        \
-  Decoder decoder;                                                            \
-  Simulator* simulator = Test::run_debugger() ? new Debugger(&decoder)        \
-                                              : new Simulator(&decoder);      \
-  simulator->SetColouredTrace(Test::coloured_trace());                        \
-  simulator->SetInstructionStats(Test::instruction_stats());                  \
+#define SETUP()                                                                \
+  MacroAssembler masm;                                                         \
+  Decoder decoder;                                                             \
+  Simulator* simulator =                                                       \
+      Test::run_debugger() ? new Debugger(&decoder) : new Simulator(&decoder); \
+  simulator->SetColouredTrace(Test::coloured_trace());                         \
+  simulator->SetInstructionStats(Test::instruction_stats());
 
-#define START()                                                               \
-  masm.Reset();                                                               \
-  simulator->ResetState();                                                    \
-  __ PushCalleeSavedRegisters();                                              \
-  if (Test::trace_reg()) {                                                    \
-    __ Trace(LOG_STATE, TRACE_ENABLE);                                        \
-  }                                                                           \
-  if (Test::trace_write()) {                                                  \
-    __ Trace(LOG_WRITE, TRACE_ENABLE);                                        \
-  }                                                                           \
-  if (Test::trace_sim()) {                                                    \
-    __ Trace(LOG_DISASM, TRACE_ENABLE);                                       \
-  }                                                                           \
-  if (Test::instruction_stats()) {                                            \
-    __ EnableInstrumentation();                                               \
+#define START()                         \
+  masm.Reset();                         \
+  simulator->ResetState();              \
+  __ PushCalleeSavedRegisters();        \
+  if (Test::trace_reg()) {              \
+    __ Trace(LOG_STATE, TRACE_ENABLE);  \
+  }                                     \
+  if (Test::trace_write()) {            \
+    __ Trace(LOG_WRITE, TRACE_ENABLE);  \
+  }                                     \
+  if (Test::trace_sim()) {              \
+    __ Trace(LOG_DISASM, TRACE_ENABLE); \
+  }                                     \
+  if (Test::instruction_stats()) {      \
+    __ EnableInstrumentation();         \
   }
 
-#define END()                                                                 \
-  if (Test::instruction_stats()) {                                            \
-    __ DisableInstrumentation();                                              \
-  }                                                                           \
-  __ Trace(LOG_ALL, TRACE_DISABLE);                                           \
-  __ PopCalleeSavedRegisters();                                               \
-  __ Ret();                                                                   \
+#define END()                       \
+  if (Test::instruction_stats()) {  \
+    __ DisableInstrumentation();    \
+  }                                 \
+  __ Trace(LOG_ALL, TRACE_DISABLE); \
+  __ PopCalleeSavedRegisters();     \
+  __ Ret();                         \
   masm.FinalizeCode()
 
-#define RUN()                                                                 \
+#define RUN() \
   simulator->RunFrom(masm.GetBuffer()->GetStartAddress<Instruction*>())
 
-#define TEARDOWN()                                                            \
-  delete simulator;
+#define TEARDOWN() delete simulator;
 
-#else     // VIXL_INCLUDE_SIMULATOR_AARCH64
+#else  // VIXL_INCLUDE_SIMULATOR_AARCH64
 
-#define SETUP()                                                               \
-  MacroAssembler masm;                                                        \
+#define SETUP()        \
+  MacroAssembler masm; \
   CPU::SetUp()
 
-#define START()                                                               \
-  masm.Reset();                                                               \
+#define START() \
+  masm.Reset(); \
   __ PushCalleeSavedRegisters()
 
-#define END()                                                                 \
-  __ PopCalleeSavedRegisters();                                               \
-  __ Ret();                                                                   \
+#define END()                   \
+  __ PopCalleeSavedRegisters(); \
+  __ Ret();                     \
   masm.FinalizeCode()
 
-#define RUN()                                                                 \
-  {                                                                           \
-    masm.GetBuffer()->SetExecutable();                                        \
-    ExecuteMemory(masm.GetBuffer()->GetStartAddress<byte*>(),                 \
-                  masm.GetSizeOfCodeGenerated());                             \
-    masm.GetBuffer()->SetWritable();                                          \
+#define RUN()                                                 \
+  {                                                           \
+    masm.GetBuffer()->SetExecutable();                        \
+    ExecuteMemory(masm.GetBuffer()->GetStartAddress<byte*>(), \
+                  masm.GetSizeOfCodeGenerated());             \
+    masm.GetBuffer()->SetWritable();                          \
   }
 
 #define TEARDOWN()
 
-#endif    // VIXL_INCLUDE_SIMULATOR_AARCH64
+#endif  // VIXL_INCLUDE_SIMULATOR_AARCH64
 
 
 // The maximum number of errors to report in detail for each test.
@@ -131,13 +130,9 @@
 
 // Overloaded versions of RawbitsToDouble and RawbitsToFloat for use in the
 // templated test functions.
-static float rawbits_to_fp(uint32_t bits) {
-  return RawbitsToFloat(bits);
-}
+static float rawbits_to_fp(uint32_t bits) { return RawbitsToFloat(bits); }
 
-static double rawbits_to_fp(uint64_t bits) {
-  return RawbitsToDouble(bits);
-}
+static double rawbits_to_fp(uint64_t bits) { return RawbitsToDouble(bits); }
 
 
 // MacroAssembler member function pointers to pass to the test dispatchers.
@@ -164,22 +159,26 @@
                                                       int fbits);
 // TODO: 'Test2OpNEONHelper_t' and 'Test2OpFPHelper_t' can be
 //       consolidated into one routine.
-typedef void (MacroAssembler::*Test1OpNEONHelper_t)(
-  const VRegister& vd, const VRegister& vn);
-typedef void (MacroAssembler::*Test2OpNEONHelper_t)(
-  const VRegister& vd, const VRegister& vn, const VRegister& vm);
-typedef void (MacroAssembler::*TestByElementNEONHelper_t)(
-  const VRegister& vd, const VRegister& vn, const VRegister& vm, int vm_index);
+typedef void (MacroAssembler::*Test1OpNEONHelper_t)(const VRegister& vd,
+                                                    const VRegister& vn);
+typedef void (MacroAssembler::*Test2OpNEONHelper_t)(const VRegister& vd,
+                                                    const VRegister& vn,
+                                                    const VRegister& vm);
+typedef void (MacroAssembler::*TestByElementNEONHelper_t)(const VRegister& vd,
+                                                          const VRegister& vn,
+                                                          const VRegister& vm,
+                                                          int vm_index);
 typedef void (MacroAssembler::*TestOpImmOpImmVdUpdateNEONHelper_t)(
-  const VRegister& vd, int imm1, const VRegister& vn, int imm2);
+    const VRegister& vd, int imm1, const VRegister& vn, int imm2);
 
 // This helps using the same typename for both the function pointer
 // and the array of immediates passed to helper routines.
 template <typename T>
 class Test2OpImmediateNEONHelper_t {
  public:
-    typedef void (MacroAssembler::*mnemonic)(
-      const VRegister& vd, const VRegister& vn, T imm);
+  typedef void (MacroAssembler::*mnemonic)(const VRegister& vd,
+                                           const VRegister& vn,
+                                           T imm);
 };
 
 
@@ -195,9 +194,12 @@
 // Standard test dispatchers.
 
 
-static void Test1Op_Helper(Test1OpFPHelper_t helper, uintptr_t inputs,
-                           unsigned inputs_length, uintptr_t results,
-                           unsigned d_size, unsigned n_size) {
+static void Test1Op_Helper(Test1OpFPHelper_t helper,
+                           uintptr_t inputs,
+                           unsigned inputs_length,
+                           uintptr_t results,
+                           unsigned d_size,
+                           unsigned n_size) {
   VIXL_ASSERT((d_size == kDRegSize) || (d_size == kSRegSize));
   VIXL_ASSERT((n_size == kDRegSize) || (n_size == kSRegSize));
 
@@ -246,26 +248,34 @@
 // rawbits representations of doubles or floats. This ensures that exact bit
 // comparisons can be performed.
 template <typename Tn, typename Td>
-static void Test1Op(const char * name, Test1OpFPHelper_t helper,
-                    const Tn inputs[], unsigned inputs_length,
-                    const Td expected[], unsigned expected_length) {
+static void Test1Op(const char* name,
+                    Test1OpFPHelper_t helper,
+                    const Tn inputs[],
+                    unsigned inputs_length,
+                    const Td expected[],
+                    unsigned expected_length) {
   VIXL_ASSERT(inputs_length > 0);
 
   const unsigned results_length = inputs_length;
-  Td * results = new Td[results_length];
+  Td* results = new Td[results_length];
 
   const unsigned d_bits = sizeof(Td) * 8;
   const unsigned n_bits = sizeof(Tn) * 8;
 
-  Test1Op_Helper(helper, reinterpret_cast<uintptr_t>(inputs), inputs_length,
-                 reinterpret_cast<uintptr_t>(results), d_bits, n_bits);
+  Test1Op_Helper(helper,
+                 reinterpret_cast<uintptr_t>(inputs),
+                 inputs_length,
+                 reinterpret_cast<uintptr_t>(results),
+                 d_bits,
+                 n_bits);
 
   if (Test::generate_test_trace()) {
     // Print the results.
     printf("const uint%u_t kExpected_%s[] = {\n", d_bits, name);
     for (unsigned d = 0; d < results_length; d++) {
       printf("  0x%0*" PRIx64 ",\n",
-             d_bits / 4, static_cast<uint64_t>(results[d]));
+             d_bits / 4,
+             static_cast<uint64_t>(results[d]));
     }
     printf("};\n");
     printf("const unsigned kExpectedCount_%s = %u;\n", name, results_length);
@@ -279,13 +289,18 @@
         if (++error_count > kErrorReportLimit) continue;
 
         printf("%s 0x%0*" PRIx64 " (%s %g):\n",
-               name, n_bits / 4, static_cast<uint64_t>(inputs[n]),
-               name, rawbits_to_fp(inputs[n]));
+               name,
+               n_bits / 4,
+               static_cast<uint64_t>(inputs[n]),
+               name,
+               rawbits_to_fp(inputs[n]));
         printf("  Expected: 0x%0*" PRIx64 " (%g)\n",
-               d_bits / 4, static_cast<uint64_t>(expected[d]),
+               d_bits / 4,
+               static_cast<uint64_t>(expected[d]),
                rawbits_to_fp(expected[d]));
         printf("  Found:    0x%0*" PRIx64 " (%g)\n",
-               d_bits / 4, static_cast<uint64_t>(results[d]),
+               d_bits / 4,
+               static_cast<uint64_t>(results[d]),
                rawbits_to_fp(results[d]));
         printf("\n");
       }
@@ -301,8 +316,10 @@
 
 
 static void Test2Op_Helper(Test2OpFPHelper_t helper,
-                           uintptr_t inputs, unsigned inputs_length,
-                           uintptr_t results, unsigned reg_size) {
+                           uintptr_t inputs,
+                           unsigned inputs_length,
+                           uintptr_t results,
+                           unsigned reg_size) {
   VIXL_ASSERT((reg_size == kDRegSize) || (reg_size == kSRegSize));
 
   SETUP();
@@ -341,7 +358,7 @@
     SingleEmissionCheckScope guard(&masm);
     (masm.*helper)(fd, fn, fm);
   }
-    __ Str(fd, MemOperand(out, fd.GetSizeInBytes(), PostIndex));
+  __ Str(fd, MemOperand(out, fd.GetSizeInBytes(), PostIndex));
 
   __ Add(index_m, index_m, 1);
   __ Cmp(index_m, inputs_length);
@@ -361,25 +378,32 @@
 // rawbits representations of doubles or floats. This ensures that exact bit
 // comparisons can be performed.
 template <typename T>
-static void Test2Op(const char * name, Test2OpFPHelper_t helper,
-                    const T inputs[], unsigned inputs_length,
-                    const T expected[], unsigned expected_length) {
+static void Test2Op(const char* name,
+                    Test2OpFPHelper_t helper,
+                    const T inputs[],
+                    unsigned inputs_length,
+                    const T expected[],
+                    unsigned expected_length) {
   VIXL_ASSERT(inputs_length > 0);
 
   const unsigned results_length = inputs_length * inputs_length;
-  T * results = new T[results_length];
+  T* results = new T[results_length];
 
   const unsigned bits = sizeof(T) * 8;
 
-  Test2Op_Helper(helper, reinterpret_cast<uintptr_t>(inputs), inputs_length,
-                 reinterpret_cast<uintptr_t>(results), bits);
+  Test2Op_Helper(helper,
+                 reinterpret_cast<uintptr_t>(inputs),
+                 inputs_length,
+                 reinterpret_cast<uintptr_t>(results),
+                 bits);
 
   if (Test::generate_test_trace()) {
     // Print the results.
     printf("const uint%u_t kExpected_%s[] = {\n", bits, name);
     for (unsigned d = 0; d < results_length; d++) {
       printf("  0x%0*" PRIx64 ",\n",
-             bits / 4, static_cast<uint64_t>(results[d]));
+             bits / 4,
+             static_cast<uint64_t>(results[d]));
     }
     printf("};\n");
     printf("const unsigned kExpectedCount_%s = %u;\n", name, results_length);
@@ -395,16 +419,20 @@
 
           printf("%s 0x%0*" PRIx64 ", 0x%0*" PRIx64 " (%s %g %g):\n",
                  name,
-                 bits / 4, static_cast<uint64_t>(inputs[n]),
-                 bits / 4, static_cast<uint64_t>(inputs[m]),
+                 bits / 4,
+                 static_cast<uint64_t>(inputs[n]),
+                 bits / 4,
+                 static_cast<uint64_t>(inputs[m]),
                  name,
                  rawbits_to_fp(inputs[n]),
                  rawbits_to_fp(inputs[m]));
           printf("  Expected: 0x%0*" PRIx64 " (%g)\n",
-                 bits / 4, static_cast<uint64_t>(expected[d]),
+                 bits / 4,
+                 static_cast<uint64_t>(expected[d]),
                  rawbits_to_fp(expected[d]));
           printf("  Found:    0x%0*" PRIx64 " (%g)\n",
-                 bits / 4, static_cast<uint64_t>(results[d]),
+                 bits / 4,
+                 static_cast<uint64_t>(results[d]),
                  rawbits_to_fp(results[d]));
           printf("\n");
         }
@@ -421,8 +449,10 @@
 
 
 static void Test3Op_Helper(Test3OpFPHelper_t helper,
-                           uintptr_t inputs, unsigned inputs_length,
-                           uintptr_t results, unsigned reg_size) {
+                           uintptr_t inputs,
+                           unsigned inputs_length,
+                           uintptr_t results,
+                           unsigned reg_size) {
   VIXL_ASSERT((reg_size == kDRegSize) || (reg_size == kSRegSize));
 
   SETUP();
@@ -491,25 +521,32 @@
 // rawbits representations of doubles or floats. This ensures that exact bit
 // comparisons can be performed.
 template <typename T>
-static void Test3Op(const char * name, Test3OpFPHelper_t helper,
-                    const T inputs[], unsigned inputs_length,
-                    const T expected[], unsigned expected_length) {
+static void Test3Op(const char* name,
+                    Test3OpFPHelper_t helper,
+                    const T inputs[],
+                    unsigned inputs_length,
+                    const T expected[],
+                    unsigned expected_length) {
   VIXL_ASSERT(inputs_length > 0);
 
   const unsigned results_length = inputs_length * inputs_length * inputs_length;
-  T * results = new T[results_length];
+  T* results = new T[results_length];
 
   const unsigned bits = sizeof(T) * 8;
 
-  Test3Op_Helper(helper, reinterpret_cast<uintptr_t>(inputs), inputs_length,
-                 reinterpret_cast<uintptr_t>(results), bits);
+  Test3Op_Helper(helper,
+                 reinterpret_cast<uintptr_t>(inputs),
+                 inputs_length,
+                 reinterpret_cast<uintptr_t>(results),
+                 bits);
 
   if (Test::generate_test_trace()) {
     // Print the results.
     printf("const uint%u_t kExpected_%s[] = {\n", bits, name);
     for (unsigned d = 0; d < results_length; d++) {
       printf("  0x%0*" PRIx64 ",\n",
-             bits / 4, static_cast<uint64_t>(results[d]));
+             bits / 4,
+             static_cast<uint64_t>(results[d]));
     }
     printf("};\n");
     printf("const unsigned kExpectedCount_%s = %u;\n", name, results_length);
@@ -527,18 +564,23 @@
             printf("%s 0x%0*" PRIx64 ", 0x%0*" PRIx64 ", 0x%0*" PRIx64
                    " (%s %g %g %g):\n",
                    name,
-                   bits / 4, static_cast<uint64_t>(inputs[n]),
-                   bits / 4, static_cast<uint64_t>(inputs[m]),
-                   bits / 4, static_cast<uint64_t>(inputs[a]),
+                   bits / 4,
+                   static_cast<uint64_t>(inputs[n]),
+                   bits / 4,
+                   static_cast<uint64_t>(inputs[m]),
+                   bits / 4,
+                   static_cast<uint64_t>(inputs[a]),
                    name,
                    rawbits_to_fp(inputs[n]),
                    rawbits_to_fp(inputs[m]),
                    rawbits_to_fp(inputs[a]));
             printf("  Expected: 0x%0*" PRIx64 " (%g)\n",
-                   bits / 4, static_cast<uint64_t>(expected[d]),
+                   bits / 4,
+                   static_cast<uint64_t>(expected[d]),
                    rawbits_to_fp(expected[d]));
             printf("  Found:    0x%0*" PRIx64 " (%g)\n",
-                   bits / 4, static_cast<uint64_t>(results[d]),
+                   bits / 4,
+                   static_cast<uint64_t>(results[d]),
                    rawbits_to_fp(results[d]));
             printf("\n");
           }
@@ -556,8 +598,10 @@
 
 
 static void TestCmp_Helper(TestFPCmpHelper_t helper,
-                           uintptr_t inputs, unsigned inputs_length,
-                           uintptr_t results, unsigned reg_size) {
+                           uintptr_t inputs,
+                           unsigned inputs_length,
+                           uintptr_t results,
+                           unsigned reg_size) {
   VIXL_ASSERT((reg_size == kDRegSize) || (reg_size == kSRegSize));
 
   SETUP();
@@ -618,18 +662,24 @@
 // rawbits representations of doubles or floats. This ensures that exact bit
 // comparisons can be performed.
 template <typename T>
-static void TestCmp(const char * name, TestFPCmpHelper_t helper,
-                    const T inputs[], unsigned inputs_length,
-                    const uint8_t expected[], unsigned expected_length) {
+static void TestCmp(const char* name,
+                    TestFPCmpHelper_t helper,
+                    const T inputs[],
+                    unsigned inputs_length,
+                    const uint8_t expected[],
+                    unsigned expected_length) {
   VIXL_ASSERT(inputs_length > 0);
 
   const unsigned results_length = inputs_length * inputs_length;
-  uint8_t * results = new uint8_t[results_length];
+  uint8_t* results = new uint8_t[results_length];
 
   const unsigned bits = sizeof(T) * 8;
 
-  TestCmp_Helper(helper, reinterpret_cast<uintptr_t>(inputs), inputs_length,
-                 reinterpret_cast<uintptr_t>(results), bits);
+  TestCmp_Helper(helper,
+                 reinterpret_cast<uintptr_t>(inputs),
+                 inputs_length,
+                 reinterpret_cast<uintptr_t>(results),
+                 bits);
 
   if (Test::generate_test_trace()) {
     // Print the results.
@@ -653,8 +703,10 @@
 
           printf("%s 0x%0*" PRIx64 ", 0x%0*" PRIx64 " (%s %g %g):\n",
                  name,
-                 bits / 4, static_cast<uint64_t>(inputs[n]),
-                 bits / 4, static_cast<uint64_t>(inputs[m]),
+                 bits / 4,
+                 static_cast<uint64_t>(inputs[n]),
+                 bits / 4,
+                 static_cast<uint64_t>(inputs[m]),
                  name,
                  rawbits_to_fp(inputs[n]),
                  rawbits_to_fp(inputs[m]));
@@ -685,8 +737,10 @@
 
 
 static void TestCmpZero_Helper(TestFPCmpZeroHelper_t helper,
-                               uintptr_t inputs, unsigned inputs_length,
-                               uintptr_t results, unsigned reg_size) {
+                               uintptr_t inputs,
+                               unsigned inputs_length,
+                               uintptr_t results,
+                               unsigned reg_size) {
   VIXL_ASSERT((reg_size == kDRegSize) || (reg_size == kSRegSize));
 
   SETUP();
@@ -737,18 +791,24 @@
 // rawbits representations of doubles or floats. This ensures that exact bit
 // comparisons can be performed.
 template <typename T>
-static void TestCmpZero(const char * name, TestFPCmpZeroHelper_t helper,
-                        const T inputs[], unsigned inputs_length,
-                        const uint8_t expected[], unsigned expected_length) {
+static void TestCmpZero(const char* name,
+                        TestFPCmpZeroHelper_t helper,
+                        const T inputs[],
+                        unsigned inputs_length,
+                        const uint8_t expected[],
+                        unsigned expected_length) {
   VIXL_ASSERT(inputs_length > 0);
 
   const unsigned results_length = inputs_length;
-  uint8_t * results = new uint8_t[results_length];
+  uint8_t* results = new uint8_t[results_length];
 
   const unsigned bits = sizeof(T) * 8;
 
-  TestCmpZero_Helper(helper, reinterpret_cast<uintptr_t>(inputs), inputs_length,
-                     reinterpret_cast<uintptr_t>(results), bits);
+  TestCmpZero_Helper(helper,
+                     reinterpret_cast<uintptr_t>(inputs),
+                     inputs_length,
+                     reinterpret_cast<uintptr_t>(results),
+                     bits);
 
   if (Test::generate_test_trace()) {
     // Print the results.
@@ -771,8 +831,10 @@
 
         printf("%s 0x%0*" PRIx64 ", 0x%0*u (%s %g #0.0):\n",
                name,
-               bits / 4, static_cast<uint64_t>(inputs[n]),
-               bits / 4, 0,
+               bits / 4,
+               static_cast<uint64_t>(inputs[n]),
+               bits / 4,
+               0,
                name,
                rawbits_to_fp(inputs[n]));
         printf("  Expected: %c%c%c%c (0x%" PRIx8 ")\n",
@@ -801,9 +863,11 @@
 
 
 static void TestFPToFixed_Helper(TestFPToFixedHelper_t helper,
-                                 uintptr_t inputs, unsigned inputs_length,
+                                 uintptr_t inputs,
+                                 unsigned inputs_length,
                                  uintptr_t results,
-                                 unsigned d_size, unsigned n_size) {
+                                 unsigned d_size,
+                                 unsigned n_size) {
   VIXL_ASSERT((d_size == kXRegSize) || (d_size == kWRegSize));
   VIXL_ASSERT((n_size == kDRegSize) || (n_size == kSRegSize));
 
@@ -821,7 +885,7 @@
   const int n_index_shift =
       (n_size == kDRegSize) ? kDRegSizeInBytesLog2 : kSRegSizeInBytesLog2;
 
-  Register rd = (d_size == kXRegSize) ? x10 : w10;
+  Register rd = (d_size == kXRegSize) ? Register(x10) : Register(w10);
   FPRegister fn = (n_size == kDRegSize) ? d1 : s1;
 
   __ Mov(out, results);
@@ -850,9 +914,12 @@
 }
 
 
-static void TestFPToInt_Helper(TestFPToIntHelper_t helper, uintptr_t inputs,
-                               unsigned inputs_length, uintptr_t results,
-                               unsigned d_size, unsigned n_size) {
+static void TestFPToInt_Helper(TestFPToIntHelper_t helper,
+                               uintptr_t inputs,
+                               unsigned inputs_length,
+                               uintptr_t results,
+                               unsigned d_size,
+                               unsigned n_size) {
   VIXL_ASSERT((d_size == kXRegSize) || (d_size == kWRegSize));
   VIXL_ASSERT((n_size == kDRegSize) || (n_size == kSRegSize));
 
@@ -870,7 +937,7 @@
   const int n_index_shift =
       (n_size == kDRegSize) ? kDRegSizeInBytesLog2 : kSRegSizeInBytesLog2;
 
-  Register rd = (d_size == kXRegSize) ? x10 : w10;
+  Register rd = (d_size == kXRegSize) ? Register(x10) : Register(w10);
   FPRegister fn = (n_size == kDRegSize) ? d1 : s1;
 
   __ Mov(out, results);
@@ -903,19 +970,26 @@
 //    performed.
 //  - The expected[] array should be an array of signed integers.
 template <typename Tn, typename Td>
-static void TestFPToS(const char * name, TestFPToIntHelper_t helper,
-                      const Tn inputs[], unsigned inputs_length,
-                      const Td expected[], unsigned expected_length) {
+static void TestFPToS(const char* name,
+                      TestFPToIntHelper_t helper,
+                      const Tn inputs[],
+                      unsigned inputs_length,
+                      const Td expected[],
+                      unsigned expected_length) {
   VIXL_ASSERT(inputs_length > 0);
 
   const unsigned results_length = inputs_length;
-  Td * results = new Td[results_length];
+  Td* results = new Td[results_length];
 
   const unsigned d_bits = sizeof(Td) * 8;
   const unsigned n_bits = sizeof(Tn) * 8;
 
-  TestFPToInt_Helper(helper, reinterpret_cast<uintptr_t>(inputs), inputs_length,
-                     reinterpret_cast<uintptr_t>(results), d_bits, n_bits);
+  TestFPToInt_Helper(helper,
+                     reinterpret_cast<uintptr_t>(inputs),
+                     inputs_length,
+                     reinterpret_cast<uintptr_t>(results),
+                     d_bits,
+                     n_bits);
 
   if (Test::generate_test_trace()) {
     // Print the results.
@@ -925,7 +999,7 @@
     // Deriving int_d_min in this way (rather than just checking INT64_MIN and
     // the like) avoids warnings about comparing values with differing ranges.
     const int64_t int_d_max = (UINT64_C(1) << (d_bits - 1)) - 1;
-    const int64_t int_d_min = -(int_d_max) - 1;
+    const int64_t int_d_min = -(int_d_max)-1;
     for (unsigned d = 0; d < results_length; d++) {
       if (results[d] == int_d_min) {
         printf("  -INT%u_C(%" PRId64 ") - 1,\n", d_bits, int_d_max);
@@ -953,13 +1027,18 @@
         if (++error_count > kErrorReportLimit) continue;
 
         printf("%s 0x%0*" PRIx64 " (%s %g):\n",
-               name, n_bits / 4, static_cast<uint64_t>(inputs[n]),
-               name, rawbits_to_fp(inputs[n]));
+               name,
+               n_bits / 4,
+               static_cast<uint64_t>(inputs[n]),
+               name,
+               rawbits_to_fp(inputs[n]));
         printf("  Expected: 0x%0*" PRIx64 " (%" PRId64 ")\n",
-               d_bits / 4, static_cast<uint64_t>(expected[d]),
+               d_bits / 4,
+               static_cast<uint64_t>(expected[d]),
                static_cast<int64_t>(expected[d]));
         printf("  Found:    0x%0*" PRIx64 " (%" PRId64 ")\n",
-               d_bits / 4, static_cast<uint64_t>(results[d]),
+               d_bits / 4,
+               static_cast<uint64_t>(results[d]),
                static_cast<int64_t>(results[d]));
         printf("\n");
       }
@@ -980,20 +1059,26 @@
 //    performed.
 //  - The expected[] array should be an array of unsigned integers.
 template <typename Tn, typename Td>
-static void TestFPToU(const char * name, TestFPToIntHelper_t helper,
-                      const Tn inputs[], unsigned inputs_length,
-                      const Td expected[], unsigned expected_length) {
+static void TestFPToU(const char* name,
+                      TestFPToIntHelper_t helper,
+                      const Tn inputs[],
+                      unsigned inputs_length,
+                      const Td expected[],
+                      unsigned expected_length) {
   VIXL_ASSERT(inputs_length > 0);
 
   const unsigned results_length = inputs_length;
-  Td * results = new Td[results_length];
+  Td* results = new Td[results_length];
 
   const unsigned d_bits = sizeof(Td) * 8;
   const unsigned n_bits = sizeof(Tn) * 8;
 
   TestFPToInt_Helper(helper,
-                     reinterpret_cast<uintptr_t>(inputs), inputs_length,
-                     reinterpret_cast<uintptr_t>(results), d_bits, n_bits);
+                     reinterpret_cast<uintptr_t>(inputs),
+                     inputs_length,
+                     reinterpret_cast<uintptr_t>(results),
+                     d_bits,
+                     n_bits);
 
   if (Test::generate_test_trace()) {
     // Print the results.
@@ -1013,13 +1098,18 @@
         if (++error_count > kErrorReportLimit) continue;
 
         printf("%s 0x%0*" PRIx64 " (%s %g):\n",
-               name, n_bits / 4, static_cast<uint64_t>(inputs[n]),
-               name, rawbits_to_fp(inputs[n]));
+               name,
+               n_bits / 4,
+               static_cast<uint64_t>(inputs[n]),
+               name,
+               rawbits_to_fp(inputs[n]));
         printf("  Expected: 0x%0*" PRIx64 " (%" PRIu64 ")\n",
-               d_bits / 4, static_cast<uint64_t>(expected[d]),
+               d_bits / 4,
+               static_cast<uint64_t>(expected[d]),
                static_cast<uint64_t>(expected[d]));
         printf("  Found:    0x%0*" PRIx64 " (%" PRIu64 ")\n",
-               d_bits / 4, static_cast<uint64_t>(results[d]),
+               d_bits / 4,
+               static_cast<uint64_t>(results[d]),
                static_cast<uint64_t>(results[d]));
         printf("\n");
       }
@@ -1040,20 +1130,26 @@
 //    performed.
 //  - The expected[] array should be an array of signed integers.
 template <typename Tn, typename Td>
-static void TestFPToFixedS(const char * name, TestFPToFixedHelper_t helper,
-                           const Tn inputs[], unsigned inputs_length,
-                           const Td expected[], unsigned expected_length) {
+static void TestFPToFixedS(const char* name,
+                           TestFPToFixedHelper_t helper,
+                           const Tn inputs[],
+                           unsigned inputs_length,
+                           const Td expected[],
+                           unsigned expected_length) {
   VIXL_ASSERT(inputs_length > 0);
 
   const unsigned d_bits = sizeof(Td) * 8;
   const unsigned n_bits = sizeof(Tn) * 8;
 
   const unsigned results_length = inputs_length * (d_bits + 1);
-  Td * results = new Td[results_length];
+  Td* results = new Td[results_length];
 
   TestFPToFixed_Helper(helper,
-                       reinterpret_cast<uintptr_t>(inputs), inputs_length,
-                       reinterpret_cast<uintptr_t>(results), d_bits, n_bits);
+                       reinterpret_cast<uintptr_t>(inputs),
+                       inputs_length,
+                       reinterpret_cast<uintptr_t>(results),
+                       d_bits,
+                       n_bits);
 
   if (Test::generate_test_trace()) {
     // Print the results.
@@ -1063,7 +1159,7 @@
     // Deriving int_d_min in this way (rather than just checking INT64_MIN and
     // the like) avoids warnings about comparing values with differing ranges.
     const int64_t int_d_max = (UINT64_C(1) << (d_bits - 1)) - 1;
-    const int64_t int_d_min = -(int_d_max) - 1;
+    const int64_t int_d_min = -(int_d_max)-1;
     for (unsigned d = 0; d < results_length; d++) {
       if (results[d] == int_d_min) {
         printf("  -INT%u_C(%" PRId64 ") - 1,\n", d_bits, int_d_max);
@@ -1092,13 +1188,20 @@
           if (++error_count > kErrorReportLimit) continue;
 
           printf("%s 0x%0*" PRIx64 " #%d (%s %g #%d):\n",
-                 name, n_bits / 4, static_cast<uint64_t>(inputs[n]), fbits,
-                 name, rawbits_to_fp(inputs[n]), fbits);
+                 name,
+                 n_bits / 4,
+                 static_cast<uint64_t>(inputs[n]),
+                 fbits,
+                 name,
+                 rawbits_to_fp(inputs[n]),
+                 fbits);
           printf("  Expected: 0x%0*" PRIx64 " (%" PRId64 ")\n",
-                 d_bits / 4, static_cast<uint64_t>(expected[d]),
+                 d_bits / 4,
+                 static_cast<uint64_t>(expected[d]),
                  static_cast<int64_t>(expected[d]));
           printf("  Found:    0x%0*" PRIx64 " (%" PRId64 ")\n",
-                 d_bits / 4, static_cast<uint64_t>(results[d]),
+                 d_bits / 4,
+                 static_cast<uint64_t>(results[d]),
                  static_cast<int64_t>(results[d]));
           printf("\n");
         }
@@ -1120,20 +1223,26 @@
 //    performed.
 //  - The expected[] array should be an array of unsigned integers.
 template <typename Tn, typename Td>
-static void TestFPToFixedU(const char * name, TestFPToFixedHelper_t helper,
-                           const Tn inputs[], unsigned inputs_length,
-                           const Td expected[], unsigned expected_length) {
+static void TestFPToFixedU(const char* name,
+                           TestFPToFixedHelper_t helper,
+                           const Tn inputs[],
+                           unsigned inputs_length,
+                           const Td expected[],
+                           unsigned expected_length) {
   VIXL_ASSERT(inputs_length > 0);
 
   const unsigned d_bits = sizeof(Td) * 8;
   const unsigned n_bits = sizeof(Tn) * 8;
 
   const unsigned results_length = inputs_length * (d_bits + 1);
-  Td * results = new Td[results_length];
+  Td* results = new Td[results_length];
 
   TestFPToFixed_Helper(helper,
-                       reinterpret_cast<uintptr_t>(inputs), inputs_length,
-                       reinterpret_cast<uintptr_t>(results), d_bits, n_bits);
+                       reinterpret_cast<uintptr_t>(inputs),
+                       inputs_length,
+                       reinterpret_cast<uintptr_t>(results),
+                       d_bits,
+                       n_bits);
 
   if (Test::generate_test_trace()) {
     // Print the results.
@@ -1154,13 +1263,20 @@
           if (++error_count > kErrorReportLimit) continue;
 
           printf("%s 0x%0*" PRIx64 " #%d (%s %g #%d):\n",
-                 name, n_bits / 4, static_cast<uint64_t>(inputs[n]), fbits,
-                 name, rawbits_to_fp(inputs[n]), fbits);
+                 name,
+                 n_bits / 4,
+                 static_cast<uint64_t>(inputs[n]),
+                 fbits,
+                 name,
+                 rawbits_to_fp(inputs[n]),
+                 fbits);
           printf("  Expected: 0x%0*" PRIx64 " (%" PRIu64 ")\n",
-                 d_bits / 4, static_cast<uint64_t>(expected[d]),
+                 d_bits / 4,
+                 static_cast<uint64_t>(expected[d]),
                  static_cast<uint64_t>(expected[d]));
           printf("  Found:    0x%0*" PRIx64 " (%" PRIu64 ")\n",
-                 d_bits / 4, static_cast<uint64_t>(results[d]),
+                 d_bits / 4,
+                 static_cast<uint64_t>(results[d]),
                  static_cast<uint64_t>(results[d]));
           printf("\n");
         }
@@ -1180,7 +1296,8 @@
 
 
 static void Test1OpNEON_Helper(Test1OpNEONHelper_t helper,
-                               uintptr_t inputs_n, unsigned inputs_n_length,
+                               uintptr_t inputs_n,
+                               unsigned inputs_n_length,
                                uintptr_t results,
                                VectorFormat vd_form,
                                VectorFormat vn_form) {
@@ -1233,8 +1350,8 @@
   __ Mov(index_n, 0);
   __ Bind(&loop_n);
 
-  __ Ldr(vntmp_single, MemOperand(inputs_n_base, index_n, LSL,
-                                  vn_lane_bytes_log2));
+  __ Ldr(vntmp_single,
+         MemOperand(inputs_n_base, index_n, LSL, vn_lane_bytes_log2));
   __ Ext(vn, vn, vntmp, vn_lane_bytes);
 
   // Set the destination to zero.
@@ -1263,9 +1380,12 @@
 // arrays of rawbit representation of input values. This ensures that
 // exact bit comparisons can be performed.
 template <typename Td, typename Tn>
-static void Test1OpNEON(const char * name, Test1OpNEONHelper_t helper,
-                        const Tn inputs_n[], unsigned inputs_n_length,
-                        const Td expected[], unsigned expected_length,
+static void Test1OpNEON(const char* name,
+                        Test1OpNEONHelper_t helper,
+                        const Tn inputs_n[],
+                        unsigned inputs_n_length,
+                        const Td expected[],
+                        unsigned expected_length,
                         VectorFormat vd_form,
                         VectorFormat vn_form) {
   VIXL_ASSERT(inputs_n_length > 0);
@@ -1283,7 +1403,8 @@
                      reinterpret_cast<uintptr_t>(inputs_n),
                      inputs_n_length,
                      reinterpret_cast<uintptr_t>(results),
-                     vd_form, vn_form);
+                     vd_form,
+                     vn_form);
 
   if (Test::generate_test_trace()) {
     // Print the results.
@@ -1326,27 +1447,29 @@
       if (error_in_vector && (++error_count <= kErrorReportLimit)) {
         printf("%s\n", name);
         printf(" Vn%.*s| Vd%.*s| Expected\n",
-                lane_len_in_hex+1, padding,
-                lane_len_in_hex+1, padding);
+               lane_len_in_hex + 1,
+               padding,
+               lane_len_in_hex + 1,
+               padding);
 
         const unsigned first_index_n =
-          inputs_n_length - (16 / vn_lane_bytes) + n + 1;
+            inputs_n_length - (16 / vn_lane_bytes) + n + 1;
 
-        for (unsigned lane = 0;
-             lane < std::max(vd_lane_count, vn_lane_count);
+        for (unsigned lane = 0; lane < std::max(vd_lane_count, vn_lane_count);
              lane++) {
           unsigned output_index = (n * vd_lane_count) + lane;
           unsigned input_index_n = (first_index_n + lane) % inputs_n_length;
 
-          printf("%c0x%0*" PRIx64 " | 0x%0*" PRIx64 " "
-                  "| 0x%0*" PRIx64 "\n",
-                  results[output_index] != expected[output_index] ? '*' : ' ',
-                  lane_len_in_hex,
-                  static_cast<uint64_t>(inputs_n[input_index_n]),
-                  lane_len_in_hex,
-                  static_cast<uint64_t>(results[output_index]),
-                  lane_len_in_hex,
-                  static_cast<uint64_t>(expected[output_index]));
+          printf("%c0x%0*" PRIx64 " | 0x%0*" PRIx64
+                 " "
+                 "| 0x%0*" PRIx64 "\n",
+                 results[output_index] != expected[output_index] ? '*' : ' ',
+                 lane_len_in_hex,
+                 static_cast<uint64_t>(inputs_n[input_index_n]),
+                 lane_len_in_hex,
+                 static_cast<uint64_t>(results[output_index]),
+                 lane_len_in_hex,
+                 static_cast<uint64_t>(expected[output_index]));
         }
       }
     }
@@ -1432,8 +1555,8 @@
   __ Mov(index_n, 0);
   __ Bind(&loop_n);
 
-  __ Ldr(vntmp_single, MemOperand(inputs_n_base, index_n, LSL,
-                                  vn_lane_bytes_log2));
+  __ Ldr(vntmp_single,
+         MemOperand(inputs_n_base, index_n, LSL, vn_lane_bytes_log2));
   __ Ext(vn_ext, vn_ext, vntmp_ext, vn_lane_bytes);
 
   if (destructive) {
@@ -1460,9 +1583,12 @@
 // arrays of rawbit representation of input values. This ensures that
 // exact bit comparisons can be performed.
 template <typename Td, typename Tn>
-static void Test1OpAcrossNEON(const char * name, Test1OpNEONHelper_t helper,
-                              const Tn inputs_n[], unsigned inputs_n_length,
-                              const Td expected[], unsigned expected_length,
+static void Test1OpAcrossNEON(const char* name,
+                              Test1OpNEONHelper_t helper,
+                              const Tn inputs_n[],
+                              unsigned inputs_n_length,
+                              const Td expected[],
+                              unsigned expected_length,
                               VectorFormat vd_form,
                               VectorFormat vn_form) {
   VIXL_ASSERT(inputs_n_length > 0);
@@ -1479,7 +1605,8 @@
                            reinterpret_cast<uintptr_t>(inputs_n),
                            inputs_n_length,
                            reinterpret_cast<uintptr_t>(results),
-                           vd_form, vn_form);
+                           vd_form,
+                           vn_form);
 
   if (Test::generate_test_trace()) {
     // Print the results.
@@ -1534,8 +1661,10 @@
 
         printf("%s\n", name);
         printf(" Vn%.*s| Vd%.*s| Expected\n",
-                lane_len_in_hex + 1, padding,
-                lane_len_in_hex + 1, padding);
+               lane_len_in_hex + 1,
+               padding,
+               lane_len_in_hex + 1,
+               padding);
 
         // TODO: In case of an error, all tests print out as many elements as
         //       there are lanes in the output or input vectors. This way
@@ -1546,9 +1675,11 @@
         //       This output for the 'Across' category has the required
         //       modifications.
         for (unsigned lane = 0; lane < vn_lane_count; lane++) {
-          unsigned results_index = (n * vd_lanes_per_q) + ((vn_lane_count - 1)  - lane);
-          unsigned input_index_n = (inputs_n_length - vn_lane_count +
-              n + 1 + lane) % inputs_n_length;
+          unsigned results_index =
+              (n * vd_lanes_per_q) + ((vn_lane_count - 1) - lane);
+          unsigned input_index_n =
+              (inputs_n_length - vn_lane_count + n + 1 + lane) %
+              inputs_n_length;
 
           Td expect = 0;
           if ((vn_lane_count - 1) == lane) {
@@ -1584,8 +1715,10 @@
 
 static void Test2OpNEON_Helper(Test2OpNEONHelper_t helper,
                                uintptr_t inputs_d,
-                               uintptr_t inputs_n, unsigned inputs_n_length,
-                               uintptr_t inputs_m, unsigned inputs_m_length,
+                               uintptr_t inputs_n,
+                               unsigned inputs_n_length,
+                               uintptr_t inputs_m,
+                               unsigned inputs_m_length,
                                uintptr_t results,
                                VectorFormat vd_form,
                                VectorFormat vn_form,
@@ -1659,15 +1792,15 @@
   __ Mov(index_n, 0);
   __ Bind(&loop_n);
 
-  __ Ldr(vntmp_single, MemOperand(inputs_n_base, index_n, LSL,
-                                  vn_lane_bytes_log2));
+  __ Ldr(vntmp_single,
+         MemOperand(inputs_n_base, index_n, LSL, vn_lane_bytes_log2));
   __ Ext(vn, vn, vntmp, vn_lane_bytes);
 
   __ Mov(index_m, 0);
   __ Bind(&loop_m);
 
-  __ Ldr(vmtmp_single, MemOperand(inputs_m_base, index_m, LSL,
-                                  vm_lane_bytes_log2));
+  __ Ldr(vmtmp_single,
+         MemOperand(inputs_m_base, index_m, LSL, vm_lane_bytes_log2));
   __ Ext(vm, vm, vmtmp, vm_lane_bytes);
 
   __ Mov(vres, vd);
@@ -1695,11 +1828,15 @@
 // arrays of rawbit representation of input values. This ensures that
 // exact bit comparisons can be performed.
 template <typename Td, typename Tn, typename Tm>
-static void Test2OpNEON(const char * name, Test2OpNEONHelper_t helper,
+static void Test2OpNEON(const char* name,
+                        Test2OpNEONHelper_t helper,
                         const Td inputs_d[],
-                        const Tn inputs_n[], unsigned inputs_n_length,
-                        const Tm inputs_m[], unsigned inputs_m_length,
-                        const Td expected[], unsigned expected_length,
+                        const Tn inputs_n[],
+                        unsigned inputs_n_length,
+                        const Tm inputs_m[],
+                        unsigned inputs_m_length,
+                        const Td expected[],
+                        unsigned expected_length,
                         VectorFormat vd_form,
                         VectorFormat vn_form,
                         VectorFormat vm_form) {
@@ -1714,10 +1851,14 @@
 
   Test2OpNEON_Helper(helper,
                      reinterpret_cast<uintptr_t>(inputs_d),
-                     reinterpret_cast<uintptr_t>(inputs_n), inputs_n_length,
-                     reinterpret_cast<uintptr_t>(inputs_m), inputs_m_length,
+                     reinterpret_cast<uintptr_t>(inputs_n),
+                     inputs_n_length,
+                     reinterpret_cast<uintptr_t>(inputs_m),
+                     inputs_m_length,
                      reinterpret_cast<uintptr_t>(results),
-                     vd_form, vn_form, vm_form);
+                     vd_form,
+                     vn_form,
+                     vm_form);
 
   if (Test::generate_test_trace()) {
     // Print the results.
@@ -1751,7 +1892,7 @@
 
         for (unsigned lane = 0; lane < vd_lane_count; lane++) {
           unsigned output_index = (n * inputs_m_length * vd_lane_count) +
-              (m * vd_lane_count) + lane;
+                                  (m * vd_lane_count) + lane;
 
           if (results[output_index] != expected[output_index]) {
             error_in_vector = true;
@@ -1762,20 +1903,27 @@
         if (error_in_vector && (++error_count <= kErrorReportLimit)) {
           printf("%s\n", name);
           printf(" Vd%.*s| Vn%.*s| Vm%.*s| Vd%.*s| Expected\n",
-                 lane_len_in_hex+1, padding,
-                 lane_len_in_hex+1, padding,
-                 lane_len_in_hex+1, padding,
-                 lane_len_in_hex+1, padding);
+                 lane_len_in_hex + 1,
+                 padding,
+                 lane_len_in_hex + 1,
+                 padding,
+                 lane_len_in_hex + 1,
+                 padding,
+                 lane_len_in_hex + 1,
+                 padding);
 
           for (unsigned lane = 0; lane < vd_lane_count; lane++) {
             unsigned output_index = (n * inputs_m_length * vd_lane_count) +
-                (m * vd_lane_count) + lane;
-            unsigned input_index_n = (inputs_n_length - vd_lane_count +
-                n + 1 + lane) % inputs_n_length;
-            unsigned input_index_m = (inputs_m_length - vd_lane_count +
-                m + 1 + lane) % inputs_m_length;
+                                    (m * vd_lane_count) + lane;
+            unsigned input_index_n =
+                (inputs_n_length - vd_lane_count + n + 1 + lane) %
+                inputs_n_length;
+            unsigned input_index_m =
+                (inputs_m_length - vd_lane_count + m + 1 + lane) %
+                inputs_m_length;
 
-            printf("%c0x%0*" PRIx64 " | 0x%0*" PRIx64 " | 0x%0*" PRIx64 " "
+            printf("%c0x%0*" PRIx64 " | 0x%0*" PRIx64 " | 0x%0*" PRIx64
+                   " "
                    "| 0x%0*" PRIx64 " | 0x%0*" PRIx64 "\n",
                    results[output_index] != expected[output_index] ? '*' : ' ',
                    lane_len_in_hex,
@@ -1885,15 +2033,15 @@
   __ Mov(index_n, 0);
   __ Bind(&loop_n);
 
-  __ Ldr(vntmp_single, MemOperand(inputs_n_base, index_n, LSL,
-                                  vn_lane_bytes_log2));
+  __ Ldr(vntmp_single,
+         MemOperand(inputs_n_base, index_n, LSL, vn_lane_bytes_log2));
   __ Ext(vn, vn, vntmp, vn_lane_bytes);
 
   __ Mov(index_m, 0);
   __ Bind(&loop_m);
 
-  __ Ldr(vmtmp_single, MemOperand(inputs_m_base, index_m, LSL,
-                                  vm_lane_bytes_log2));
+  __ Ldr(vmtmp_single,
+         MemOperand(inputs_m_base, index_m, LSL, vm_lane_bytes_log2));
   __ Ext(vm, vm, vmtmp, vm_lane_bytes);
 
   __ Mov(vres, vd);
@@ -1921,18 +2069,21 @@
 }
 
 
-
 // Test NEON instructions. The inputs_*[] and expected[] arrays should be
 // arrays of rawbit representation of input values. This ensures that
 // exact bit comparisons can be performed.
 template <typename Td, typename Tn, typename Tm>
-static void TestByElementNEON(const char *name,
+static void TestByElementNEON(const char* name,
                               TestByElementNEONHelper_t helper,
                               const Td inputs_d[],
-                              const Tn inputs_n[], unsigned inputs_n_length,
-                              const Tm inputs_m[], unsigned inputs_m_length,
-                              const int indices[], unsigned indices_length,
-                              const Td expected[], unsigned expected_length,
+                              const Tn inputs_n[],
+                              unsigned inputs_n_length,
+                              const Tm inputs_m[],
+                              unsigned inputs_m_length,
+                              const int indices[],
+                              unsigned indices_length,
+                              const Td expected[],
+                              unsigned expected_length,
                               VectorFormat vd_form,
                               VectorFormat vn_form,
                               VectorFormat vm_form) {
@@ -1942,19 +2093,24 @@
 
   const unsigned vd_lane_count = MaxLaneCountFromFormat(vd_form);
 
-  const unsigned results_length = inputs_n_length * inputs_m_length *
-                                  indices_length;
+  const unsigned results_length =
+      inputs_n_length * inputs_m_length * indices_length;
   Td* results = new Td[results_length * vd_lane_count];
   const unsigned lane_bit = sizeof(Td) * 8;
   const unsigned lane_len_in_hex = MaxHexCharCount<Td, Tm>();
 
   TestByElementNEON_Helper(helper,
-    reinterpret_cast<uintptr_t>(inputs_d),
-    reinterpret_cast<uintptr_t>(inputs_n), inputs_n_length,
-    reinterpret_cast<uintptr_t>(inputs_m), inputs_m_length,
-    indices, indices_length,
-    reinterpret_cast<uintptr_t>(results),
-    vd_form, vn_form, vm_form);
+                           reinterpret_cast<uintptr_t>(inputs_d),
+                           reinterpret_cast<uintptr_t>(inputs_n),
+                           inputs_n_length,
+                           reinterpret_cast<uintptr_t>(inputs_m),
+                           inputs_m_length,
+                           indices,
+                           indices_length,
+                           reinterpret_cast<uintptr_t>(results),
+                           vd_form,
+                           vn_form,
+                           vm_form);
 
   if (Test::generate_test_trace()) {
     // Print the results.
@@ -1990,8 +2146,8 @@
           for (unsigned lane = 0; lane < vd_lane_count; lane++) {
             unsigned output_index =
                 (n * inputs_m_length * indices_length * vd_lane_count) +
-                (m * indices_length * vd_lane_count) +
-                (index * vd_lane_count) + lane;
+                (m * indices_length * vd_lane_count) + (index * vd_lane_count) +
+                lane;
 
             if (results[output_index] != expected[output_index]) {
               error_in_vector = true;
@@ -2002,35 +2158,43 @@
           if (error_in_vector && (++error_count <= kErrorReportLimit)) {
             printf("%s\n", name);
             printf(" Vd%.*s| Vn%.*s| Vm%.*s| Index | Vd%.*s| Expected\n",
-                  lane_len_in_hex+1, padding,
-                  lane_len_in_hex+1, padding,
-                  lane_len_in_hex+1, padding,
-                  lane_len_in_hex+1, padding);
+                   lane_len_in_hex + 1,
+                   padding,
+                   lane_len_in_hex + 1,
+                   padding,
+                   lane_len_in_hex + 1,
+                   padding,
+                   lane_len_in_hex + 1,
+                   padding);
 
             for (unsigned lane = 0; lane < vd_lane_count; lane++) {
               unsigned output_index =
                   (n * inputs_m_length * indices_length * vd_lane_count) +
                   (m * indices_length * vd_lane_count) +
                   (index * vd_lane_count) + lane;
-              unsigned input_index_n = (inputs_n_length - vd_lane_count +
-                  n + 1 + lane) % inputs_n_length;
-              unsigned input_index_m = (inputs_m_length - vd_lane_count +
-                  m + 1 + lane) % inputs_m_length;
+              unsigned input_index_n =
+                  (inputs_n_length - vd_lane_count + n + 1 + lane) %
+                  inputs_n_length;
+              unsigned input_index_m =
+                  (inputs_m_length - vd_lane_count + m + 1 + lane) %
+                  inputs_m_length;
 
-              printf("%c0x%0*" PRIx64 " | 0x%0*" PRIx64 " | 0x%0*" PRIx64 " "
-                "| [%3d] | 0x%0*" PRIx64 " | 0x%0*" PRIx64 "\n",
-                results[output_index] != expected[output_index] ? '*' : ' ',
-                lane_len_in_hex,
-                static_cast<uint64_t>(inputs_d[lane]),
-                lane_len_in_hex,
-                static_cast<uint64_t>(inputs_n[input_index_n]),
-                lane_len_in_hex,
-                static_cast<uint64_t>(inputs_m[input_index_m]),
-                indices[index],
-                lane_len_in_hex,
-                static_cast<uint64_t>(results[output_index]),
-                lane_len_in_hex,
-                static_cast<uint64_t>(expected[output_index]));
+              printf("%c0x%0*" PRIx64 " | 0x%0*" PRIx64 " | 0x%0*" PRIx64
+                     " "
+                     "| [%3d] | 0x%0*" PRIx64 " | 0x%0*" PRIx64 "\n",
+                     results[output_index] != expected[output_index] ? '*'
+                                                                     : ' ',
+                     lane_len_in_hex,
+                     static_cast<uint64_t>(inputs_d[lane]),
+                     lane_len_in_hex,
+                     static_cast<uint64_t>(inputs_n[input_index_n]),
+                     lane_len_in_hex,
+                     static_cast<uint64_t>(inputs_m[input_index_m]),
+                     indices[index],
+                     lane_len_in_hex,
+                     static_cast<uint64_t>(results[output_index]),
+                     lane_len_in_hex,
+                     static_cast<uint64_t>(expected[output_index]));
             }
           }
         }
@@ -2059,8 +2223,7 @@
     uintptr_t results,
     VectorFormat vd_form,
     VectorFormat vn_form) {
-  VIXL_ASSERT(vd_form != kFormatUndefined &&
-              vn_form != kFormatUndefined);
+  VIXL_ASSERT(vd_form != kFormatUndefined && vn_form != kFormatUndefined);
 
   SETUP();
   START();
@@ -2108,8 +2271,8 @@
   __ Mov(index_n, 0);
   __ Bind(&loop_n);
 
-  __ Ldr(vntmp_single, MemOperand(inputs_n_base, index_n, LSL,
-                                  vn_lane_bytes_log2));
+  __ Ldr(vntmp_single,
+         MemOperand(inputs_n_base, index_n, LSL, vn_lane_bytes_log2));
   __ Ext(vn, vn, vntmp, vn_lane_bytes);
 
   // Set the destination to zero for tests such as '[r]shrn2'.
@@ -2142,11 +2305,14 @@
 // exact bit comparisons can be performed.
 template <typename Td, typename Tn, typename Tm>
 static void Test2OpImmNEON(
-    const char * name,
+    const char* name,
     typename Test2OpImmediateNEONHelper_t<Tm>::mnemonic helper,
-    const Tn inputs_n[], unsigned inputs_n_length,
-    const Tm inputs_m[], unsigned inputs_m_length,
-    const Td expected[], unsigned expected_length,
+    const Tn inputs_n[],
+    unsigned inputs_n_length,
+    const Tm inputs_m[],
+    unsigned inputs_m_length,
+    const Td expected[],
+    unsigned expected_length,
     VectorFormat vd_form,
     VectorFormat vn_form) {
   VIXL_ASSERT(inputs_n_length > 0 && inputs_m_length > 0);
@@ -2161,10 +2327,13 @@
   const unsigned lane_len_in_hex = MaxHexCharCount<Td, Tn>();
 
   Test2OpImmNEON_Helper(helper,
-                        reinterpret_cast<uintptr_t>(inputs_n), inputs_n_length,
-                        inputs_m, inputs_m_length,
+                        reinterpret_cast<uintptr_t>(inputs_n),
+                        inputs_n_length,
+                        inputs_m,
+                        inputs_m_length,
                         reinterpret_cast<uintptr_t>(results),
-                        vd_form, vn_form);
+                        vd_form,
+                        vn_form);
 
   if (Test::generate_test_trace()) {
     // Print the results.
@@ -2198,7 +2367,7 @@
 
         for (unsigned lane = 0; lane < vd_lane_count; lane++) {
           unsigned output_index = (n * inputs_m_length * vd_lane_count) +
-              (m * vd_lane_count) + lane;
+                                  (m * vd_lane_count) + lane;
 
           if (results[output_index] != expected[output_index]) {
             error_in_vector = true;
@@ -2209,22 +2378,25 @@
         if (error_in_vector && (++error_count <= kErrorReportLimit)) {
           printf("%s\n", name);
           printf(" Vn%.*s| Imm%.*s| Vd%.*s| Expected\n",
-                 lane_len_in_hex+1, padding,
-                 lane_len_in_hex, padding,
-                 lane_len_in_hex+1, padding);
+                 lane_len_in_hex + 1,
+                 padding,
+                 lane_len_in_hex,
+                 padding,
+                 lane_len_in_hex + 1,
+                 padding);
 
-        const unsigned first_index_n =
-          inputs_n_length - (16 / vn_lane_bytes) + n + 1;
+          const unsigned first_index_n =
+              inputs_n_length - (16 / vn_lane_bytes) + n + 1;
 
-        for (unsigned lane = 0;
-             lane < std::max(vd_lane_count, vn_lane_count);
-             lane++) {
+          for (unsigned lane = 0; lane < std::max(vd_lane_count, vn_lane_count);
+               lane++) {
             unsigned output_index = (n * inputs_m_length * vd_lane_count) +
-                (m * vd_lane_count) + lane;
+                                    (m * vd_lane_count) + lane;
             unsigned input_index_n = (first_index_n + lane) % inputs_n_length;
             unsigned input_index_m = m;
 
-            printf("%c0x%0*" PRIx64 " | 0x%0*" PRIx64 " "
+            printf("%c0x%0*" PRIx64 " | 0x%0*" PRIx64
+                   " "
                    "| 0x%0*" PRIx64 " | 0x%0*" PRIx64 "\n",
                    results[output_index] != expected[output_index] ? '*' : ' ',
                    lane_len_in_hex,
@@ -2252,14 +2424,17 @@
 // ==== Tests for instructions of the form <INST> VReg, #Imm, VReg, #Imm. ====
 
 
-static void TestOpImmOpImmNEON_Helper(
-  TestOpImmOpImmVdUpdateNEONHelper_t helper,
-  uintptr_t inputs_d,
-  const int inputs_imm1[], unsigned inputs_imm1_length,
-  uintptr_t inputs_n, unsigned inputs_n_length,
-  const int inputs_imm2[], unsigned inputs_imm2_length,
-  uintptr_t results,
-  VectorFormat vd_form, VectorFormat vn_form) {
+static void TestOpImmOpImmNEON_Helper(TestOpImmOpImmVdUpdateNEONHelper_t helper,
+                                      uintptr_t inputs_d,
+                                      const int inputs_imm1[],
+                                      unsigned inputs_imm1_length,
+                                      uintptr_t inputs_n,
+                                      unsigned inputs_n_length,
+                                      const int inputs_imm2[],
+                                      unsigned inputs_imm2_length,
+                                      uintptr_t results,
+                                      VectorFormat vd_form,
+                                      VectorFormat vn_form) {
   VIXL_ASSERT(vd_form != kFormatUndefined);
   VIXL_ASSERT(vn_form != kFormatUndefined);
 
@@ -2318,13 +2493,14 @@
   __ Mov(index_n, 0);
   __ Bind(&loop_n);
 
-  __ Ldr(vntmp_single, MemOperand(inputs_n_base, index_n, LSL,
-                                  vn_lane_bytes_log2));
+  __ Ldr(vntmp_single,
+         MemOperand(inputs_n_base, index_n, LSL, vn_lane_bytes_log2));
   __ Ext(vn_ext, vn_ext, vntmp_ext, vn_lane_bytes);
 
   {
     EmissionCheckScope guard(&masm,
-        kInstructionSize * inputs_imm1_length * inputs_imm2_length * 3);
+                             kInstructionSize * inputs_imm1_length *
+                                 inputs_imm2_length * 3);
     for (unsigned i = 0; i < inputs_imm1_length; i++) {
       for (unsigned j = 0; j < inputs_imm2_length; j++) {
         __ Mov(vres, vd);
@@ -2348,7 +2524,7 @@
 // arrays of rawbit representation of input values. This ensures that
 // exact bit comparisons can be performed.
 template <typename Td, typename Tn>
-static void TestOpImmOpImmNEON(const char * name,
+static void TestOpImmOpImmNEON(const char* name,
                                TestOpImmOpImmVdUpdateNEONHelper_t helper,
                                const Td inputs_d[],
                                const int inputs_imm1[],
@@ -2367,8 +2543,8 @@
 
   const unsigned vd_lane_count = LaneCountFromFormat(vd_form);
 
-  const unsigned results_length = inputs_n_length *
-      inputs_imm1_length * inputs_imm2_length;
+  const unsigned results_length =
+      inputs_n_length * inputs_imm1_length * inputs_imm2_length;
 
   Td* results = new Td[results_length * vd_lane_count];
   const unsigned lane_bit = sizeof(Td) * 8;
@@ -2383,7 +2559,8 @@
                             inputs_imm2,
                             inputs_imm2_length,
                             reinterpret_cast<uintptr_t>(results),
-                            vd_form, vn_form);
+                            vd_form,
+                            vn_form);
 
   if (Test::generate_test_trace()) {
     // Print the results.
@@ -2420,8 +2597,7 @@
 
           for (unsigned lane = 0; lane < vd_lane_count; lane++) {
             unsigned output_index =
-                (n * inputs_imm1_length *
-                 inputs_imm2_length * vd_lane_count) +
+                (n * inputs_imm1_length * inputs_imm2_length * vd_lane_count) +
                 (imm1 * inputs_imm2_length * vd_lane_count) +
                 (imm2 * vd_lane_count) + lane;
 
@@ -2434,39 +2610,46 @@
           if (error_in_vector && (++error_count <= kErrorReportLimit)) {
             printf("%s\n", name);
             printf(" Vd%.*s| Imm%.*s| Vn%.*s| Imm%.*s| Vd%.*s| Expected\n",
-                   lane_len_in_hex+1, padding,
-                   lane_len_in_hex, padding,
-                   lane_len_in_hex+1, padding,
-                   lane_len_in_hex, padding,
-                   lane_len_in_hex+1, padding);
+                   lane_len_in_hex + 1,
+                   padding,
+                   lane_len_in_hex,
+                   padding,
+                   lane_len_in_hex + 1,
+                   padding,
+                   lane_len_in_hex,
+                   padding,
+                   lane_len_in_hex + 1,
+                   padding);
 
             for (unsigned lane = 0; lane < vd_lane_count; lane++) {
               unsigned output_index =
-                (n * inputs_imm1_length *
-                 inputs_imm2_length * vd_lane_count) +
-                (imm1 * inputs_imm2_length * vd_lane_count) +
-                (imm2 * vd_lane_count) + lane;
-              unsigned input_index_n = (inputs_n_length - vd_lane_count +
-                  n + 1 + lane) % inputs_n_length;
+                  (n * inputs_imm1_length * inputs_imm2_length *
+                   vd_lane_count) +
+                  (imm1 * inputs_imm2_length * vd_lane_count) +
+                  (imm2 * vd_lane_count) + lane;
+              unsigned input_index_n =
+                  (inputs_n_length - vd_lane_count + n + 1 + lane) %
+                  inputs_n_length;
               unsigned input_index_imm1 = imm1;
               unsigned input_index_imm2 = imm2;
 
-              printf("%c0x%0*" PRIx64 " | 0x%0*" PRIx64 " | 0x%0*" PRIx64 " "
-                "| 0x%0*" PRIx64 " | 0x%0*" PRIx64 " | 0x%0*" PRIx64 "\n",
-                results[output_index] !=
-                  expected[output_index] ? '*' : ' ',
-                lane_len_in_hex,
-                static_cast<uint64_t>(inputs_d[lane]),
-                lane_len_in_hex,
-                static_cast<uint64_t>(inputs_imm1[input_index_imm1]),
-                lane_len_in_hex,
-                static_cast<uint64_t>(inputs_n[input_index_n]),
-                lane_len_in_hex,
-                static_cast<uint64_t>(inputs_imm2[input_index_imm2]),
-                lane_len_in_hex,
-                static_cast<uint64_t>(results[output_index]),
-                lane_len_in_hex,
-                static_cast<uint64_t>(expected[output_index]));
+              printf("%c0x%0*" PRIx64 " | 0x%0*" PRIx64 " | 0x%0*" PRIx64
+                     " "
+                     "| 0x%0*" PRIx64 " | 0x%0*" PRIx64 " | 0x%0*" PRIx64 "\n",
+                     results[output_index] != expected[output_index] ? '*'
+                                                                     : ' ',
+                     lane_len_in_hex,
+                     static_cast<uint64_t>(inputs_d[lane]),
+                     lane_len_in_hex,
+                     static_cast<uint64_t>(inputs_imm1[input_index_imm1]),
+                     lane_len_in_hex,
+                     static_cast<uint64_t>(inputs_n[input_index_n]),
+                     lane_len_in_hex,
+                     static_cast<uint64_t>(inputs_imm2[input_index_imm2]),
+                     lane_len_in_hex,
+                     static_cast<uint64_t>(results[output_index]),
+                     lane_len_in_hex,
+                     static_cast<uint64_t>(expected[output_index]));
             }
           }
         }
@@ -2489,20 +2672,21 @@
 // operations.
 #define STRINGIFY(s) #s
 
-#define CALL_TEST_FP_HELPER(mnemonic, variant, type, input)         \
-    Test##type(STRINGIFY(mnemonic) "_" STRINGIFY(variant),          \
-               &MacroAssembler::mnemonic,                           \
-               input, sizeof(input) / sizeof(input[0]),             \
-               kExpected_##mnemonic##_##variant,                    \
-               kExpectedCount_##mnemonic##_##variant)
+#define CALL_TEST_FP_HELPER(mnemonic, variant, type, input) \
+  Test##type(STRINGIFY(mnemonic) "_" STRINGIFY(variant),    \
+             &MacroAssembler::mnemonic,                     \
+             input,                                         \
+             sizeof(input) / sizeof(input[0]),              \
+             kExpected_##mnemonic##_##variant,              \
+             kExpectedCount_##mnemonic##_##variant)
 
-#define DEFINE_TEST_FP(mnemonic, type, input)                       \
-    TEST(mnemonic##_d) {                                            \
-      CALL_TEST_FP_HELPER(mnemonic, d, type, kInputDouble##input);  \
-    }                                                               \
-    TEST(mnemonic##_s) {                                            \
-      CALL_TEST_FP_HELPER(mnemonic, s, type, kInputFloat##input);   \
-    }
+#define DEFINE_TEST_FP(mnemonic, type, input)                    \
+  TEST(mnemonic##_d) {                                           \
+    CALL_TEST_FP_HELPER(mnemonic, d, type, kInputDouble##input); \
+  }                                                              \
+  TEST(mnemonic##_s) {                                           \
+    CALL_TEST_FP_HELPER(mnemonic, s, type, kInputFloat##input);  \
+  }
 
 // TODO: Test with a newer version of valgrind.
 //
@@ -2544,19 +2728,19 @@
 TEST(fcvt_sd) { CALL_TEST_FP_HELPER(fcvt, sd, 1Op, kInputDoubleConversions); }
 TEST(fcvt_ds) { CALL_TEST_FP_HELPER(fcvt, ds, 1Op, kInputFloatConversions); }
 
-#define DEFINE_TEST_FP_TO_INT(mnemonic, type, input)                \
-    TEST(mnemonic##_xd) {                                           \
-      CALL_TEST_FP_HELPER(mnemonic, xd, type, kInputDouble##input); \
-    }                                                               \
-    TEST(mnemonic##_xs) {                                           \
-      CALL_TEST_FP_HELPER(mnemonic, xs, type, kInputFloat##input);  \
-    }                                                               \
-    TEST(mnemonic##_wd) {                                           \
-      CALL_TEST_FP_HELPER(mnemonic, wd, type, kInputDouble##input); \
-    }                                                               \
-    TEST(mnemonic##_ws) {                                           \
-      CALL_TEST_FP_HELPER(mnemonic, ws, type, kInputFloat##input);  \
-    }
+#define DEFINE_TEST_FP_TO_INT(mnemonic, type, input)              \
+  TEST(mnemonic##_xd) {                                           \
+    CALL_TEST_FP_HELPER(mnemonic, xd, type, kInputDouble##input); \
+  }                                                               \
+  TEST(mnemonic##_xs) {                                           \
+    CALL_TEST_FP_HELPER(mnemonic, xs, type, kInputFloat##input);  \
+  }                                                               \
+  TEST(mnemonic##_wd) {                                           \
+    CALL_TEST_FP_HELPER(mnemonic, wd, type, kInputDouble##input); \
+  }                                                               \
+  TEST(mnemonic##_ws) {                                           \
+    CALL_TEST_FP_HELPER(mnemonic, ws, type, kInputFloat##input);  \
+  }
 
 DEFINE_TEST_FP_TO_INT(fcvtas, FPToS, Conversions)
 DEFINE_TEST_FP_TO_INT(fcvtau, FPToU, Conversions)
@@ -2578,1139 +2762,1307 @@
 
 // ==== NEON Tests. ====
 
-#define CALL_TEST_NEON_HELPER_1Op(mnemonic,                                  \
-                                  vdform, vnform,                            \
-                                  input_n)                                   \
-    Test1OpNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform),                   \
-                &MacroAssembler::mnemonic,                                   \
-                input_n,                                                     \
-                (sizeof(input_n) / sizeof(input_n[0])),                      \
-                kExpected_NEON_##mnemonic##_##vdform,                        \
-                kExpectedCount_NEON_##mnemonic##_##vdform,                   \
-                kFormat##vdform,                                             \
-                kFormat##vnform)
+#define CALL_TEST_NEON_HELPER_1Op(mnemonic, vdform, vnform, input_n) \
+  Test1OpNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform),             \
+              &MacroAssembler::mnemonic,                             \
+              input_n,                                               \
+              (sizeof(input_n) / sizeof(input_n[0])),                \
+              kExpected_NEON_##mnemonic##_##vdform,                  \
+              kExpectedCount_NEON_##mnemonic##_##vdform,             \
+              kFormat##vdform,                                       \
+              kFormat##vnform)
 
-#define CALL_TEST_NEON_HELPER_1OpAcross(mnemonic,                            \
-                                        vdform, vnform,                      \
-                                        input_n)                             \
-    Test1OpAcrossNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform)              \
-                                          "_" STRINGIFY(vnform),             \
-                      &MacroAssembler::mnemonic,                             \
-                      input_n,                                               \
-                      (sizeof(input_n) / sizeof(input_n[0])),                \
-                      kExpected_NEON_##mnemonic##_##vdform##_##vnform,       \
-                      kExpectedCount_NEON_##mnemonic##_##vdform##_##vnform,  \
-                      kFormat##vdform,                                       \
-                      kFormat##vnform)
+#define CALL_TEST_NEON_HELPER_1OpAcross(mnemonic, vdform, vnform, input_n)   \
+  Test1OpAcrossNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform) "_" STRINGIFY( \
+                        vnform),                                             \
+                    &MacroAssembler::mnemonic,                               \
+                    input_n,                                                 \
+                    (sizeof(input_n) / sizeof(input_n[0])),                  \
+                    kExpected_NEON_##mnemonic##_##vdform##_##vnform,         \
+                    kExpectedCount_NEON_##mnemonic##_##vdform##_##vnform,    \
+                    kFormat##vdform,                                         \
+                    kFormat##vnform)
 
-#define CALL_TEST_NEON_HELPER_2Op(mnemonic,                                  \
-                                  vdform, vnform, vmform,                    \
-                                  input_d, input_n, input_m)                 \
-    Test2OpNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform),                   \
-                &MacroAssembler::mnemonic,                                   \
-                input_d,                                                     \
-                input_n,                                                     \
-                (sizeof(input_n) / sizeof(input_n[0])),                      \
-                input_m,                                                     \
-                (sizeof(input_m) / sizeof(input_m[0])),                      \
-                kExpected_NEON_##mnemonic##_##vdform,                        \
-                kExpectedCount_NEON_##mnemonic##_##vdform,                   \
-                kFormat##vdform,                                             \
-                kFormat##vnform,                                             \
-                kFormat##vmform)
+#define CALL_TEST_NEON_HELPER_2Op(                               \
+    mnemonic, vdform, vnform, vmform, input_d, input_n, input_m) \
+  Test2OpNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform),         \
+              &MacroAssembler::mnemonic,                         \
+              input_d,                                           \
+              input_n,                                           \
+              (sizeof(input_n) / sizeof(input_n[0])),            \
+              input_m,                                           \
+              (sizeof(input_m) / sizeof(input_m[0])),            \
+              kExpected_NEON_##mnemonic##_##vdform,              \
+              kExpectedCount_NEON_##mnemonic##_##vdform,         \
+              kFormat##vdform,                                   \
+              kFormat##vnform,                                   \
+              kFormat##vmform)
 
-#define CALL_TEST_NEON_HELPER_2OpImm(mnemonic,                               \
-                                     vdform, vnform,                         \
-                                     input_n, input_m)                       \
-    Test2OpImmNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform) "_2OPIMM",      \
-                   &MacroAssembler::mnemonic,                                \
-                   input_n,                                                  \
-                   (sizeof(input_n) / sizeof(input_n[0])),                   \
-                   input_m,                                                  \
-                   (sizeof(input_m) / sizeof(input_m[0])),                   \
-                   kExpected_NEON_##mnemonic##_##vdform##_2OPIMM,            \
-                   kExpectedCount_NEON_##mnemonic##_##vdform##_2OPIMM,       \
-                   kFormat##vdform,                                          \
-                   kFormat##vnform)
+#define CALL_TEST_NEON_HELPER_2OpImm(                                 \
+    mnemonic, vdform, vnform, input_n, input_m)                       \
+  Test2OpImmNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform) "_2OPIMM", \
+                 &MacroAssembler::mnemonic,                           \
+                 input_n,                                             \
+                 (sizeof(input_n) / sizeof(input_n[0])),              \
+                 input_m,                                             \
+                 (sizeof(input_m) / sizeof(input_m[0])),              \
+                 kExpected_NEON_##mnemonic##_##vdform##_2OPIMM,       \
+                 kExpectedCount_NEON_##mnemonic##_##vdform##_2OPIMM,  \
+                 kFormat##vdform,                                     \
+                 kFormat##vnform)
 
-#define CALL_TEST_NEON_HELPER_ByElement(mnemonic,                            \
-                                        vdform, vnform, vmform,              \
-                                        input_d, input_n, input_m, indices)  \
-    TestByElementNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform)              \
-        "_" STRINGIFY(vnform) "_" STRINGIFY(vmform),                         \
-        &MacroAssembler::mnemonic,                                           \
-        input_d,                                                             \
-        input_n,                                                             \
-        (sizeof(input_n) / sizeof(input_n[0])),                              \
-        input_m,                                                             \
-        (sizeof(input_m) / sizeof(input_m[0])),                              \
-        indices,                                                             \
-        (sizeof(indices) / sizeof(indices[0])),                              \
-        kExpected_NEON_##mnemonic##_##vdform##_##vnform##_##vmform,          \
-        kExpectedCount_NEON_##mnemonic##_##vdform##_##vnform##_##vmform,     \
-        kFormat##vdform,                                                     \
-        kFormat##vnform,                                                     \
-        kFormat##vmform)
+#define CALL_TEST_NEON_HELPER_ByElement(                                  \
+    mnemonic, vdform, vnform, vmform, input_d, input_n, input_m, indices) \
+  TestByElementNEON(                                                      \
+      STRINGIFY(mnemonic) "_" STRINGIFY(vdform) "_" STRINGIFY(            \
+          vnform) "_" STRINGIFY(vmform),                                  \
+      &MacroAssembler::mnemonic,                                          \
+      input_d,                                                            \
+      input_n,                                                            \
+      (sizeof(input_n) / sizeof(input_n[0])),                             \
+      input_m,                                                            \
+      (sizeof(input_m) / sizeof(input_m[0])),                             \
+      indices,                                                            \
+      (sizeof(indices) / sizeof(indices[0])),                             \
+      kExpected_NEON_##mnemonic##_##vdform##_##vnform##_##vmform,         \
+      kExpectedCount_NEON_##mnemonic##_##vdform##_##vnform##_##vmform,    \
+      kFormat##vdform,                                                    \
+      kFormat##vnform,                                                    \
+      kFormat##vmform)
 
-#define CALL_TEST_NEON_HELPER_OpImmOpImm(helper,                             \
-                                         mnemonic,                           \
-                                         vdform, vnform,                     \
-                                         input_d, input_imm1,                \
-                                         input_n, input_imm2)                \
-    TestOpImmOpImmNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform),            \
-                       helper,                                               \
-                       input_d,                                              \
-                       input_imm1,                                           \
-                       (sizeof(input_imm1) / sizeof(input_imm1[0])),         \
-                       input_n,                                              \
-                       (sizeof(input_n) / sizeof(input_n[0])),               \
-                       input_imm2,                                           \
-                       (sizeof(input_imm2) / sizeof(input_imm2[0])),         \
-                       kExpected_NEON_##mnemonic##_##vdform,                 \
-                       kExpectedCount_NEON_##mnemonic##_##vdform,            \
-                       kFormat##vdform,                                      \
-                       kFormat##vnform)
+#define CALL_TEST_NEON_HELPER_OpImmOpImm(helper,                   \
+                                         mnemonic,                 \
+                                         vdform,                   \
+                                         vnform,                   \
+                                         input_d,                  \
+                                         input_imm1,               \
+                                         input_n,                  \
+                                         input_imm2)               \
+  TestOpImmOpImmNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform),    \
+                     helper,                                       \
+                     input_d,                                      \
+                     input_imm1,                                   \
+                     (sizeof(input_imm1) / sizeof(input_imm1[0])), \
+                     input_n,                                      \
+                     (sizeof(input_n) / sizeof(input_n[0])),       \
+                     input_imm2,                                   \
+                     (sizeof(input_imm2) / sizeof(input_imm2[0])), \
+                     kExpected_NEON_##mnemonic##_##vdform,         \
+                     kExpectedCount_NEON_##mnemonic##_##vdform,    \
+                     kFormat##vdform,                              \
+                     kFormat##vnform)
 
-#define CALL_TEST_NEON_HELPER_2SAME(mnemonic, variant, input)                \
-    CALL_TEST_NEON_HELPER_1Op(mnemonic,                                      \
-                              variant, variant,                              \
-                              input)
+#define CALL_TEST_NEON_HELPER_2SAME(mnemonic, variant, input) \
+  CALL_TEST_NEON_HELPER_1Op(mnemonic, variant, variant, input)
 
-#define DEFINE_TEST_NEON_2SAME_8B_16B(mnemonic, input)                       \
-    TEST(mnemonic##_8B) {                                                    \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, 8B, kInput8bits##input);         \
-    }                                                                        \
-    TEST(mnemonic##_16B) {                                                   \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, 16B, kInput8bits##input);        \
-    }
+#define DEFINE_TEST_NEON_2SAME_8B_16B(mnemonic, input)              \
+  TEST(mnemonic##_8B) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, 8B, kInput8bits##input);  \
+  }                                                                 \
+  TEST(mnemonic##_16B) {                                            \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, 16B, kInput8bits##input); \
+  }
 
-#define DEFINE_TEST_NEON_2SAME_4H_8H(mnemonic, input)                        \
-    TEST(mnemonic##_4H) {                                                    \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, 4H, kInput16bits##input);        \
-    }                                                                        \
-    TEST(mnemonic##_8H) {                                                    \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, 8H, kInput16bits##input);        \
-    }
+#define DEFINE_TEST_NEON_2SAME_4H_8H(mnemonic, input)               \
+  TEST(mnemonic##_4H) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, 4H, kInput16bits##input); \
+  }                                                                 \
+  TEST(mnemonic##_8H) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, 8H, kInput16bits##input); \
+  }
 
-#define DEFINE_TEST_NEON_2SAME_2S_4S(mnemonic, input)                        \
-    TEST(mnemonic##_2S) {                                                    \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2S, kInput32bits##input);        \
-    }                                                                        \
-    TEST(mnemonic##_4S) {                                                    \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, 4S, kInput32bits##input);        \
-    }
+#define DEFINE_TEST_NEON_2SAME_2S_4S(mnemonic, input)               \
+  TEST(mnemonic##_2S) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2S, kInput32bits##input); \
+  }                                                                 \
+  TEST(mnemonic##_4S) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, 4S, kInput32bits##input); \
+  }
 
-#define DEFINE_TEST_NEON_2SAME_BH(mnemonic, input)                           \
-    DEFINE_TEST_NEON_2SAME_8B_16B(mnemonic, input)                           \
-    DEFINE_TEST_NEON_2SAME_4H_8H(mnemonic, input)
+#define DEFINE_TEST_NEON_2SAME_BH(mnemonic, input) \
+  DEFINE_TEST_NEON_2SAME_8B_16B(mnemonic, input)   \
+  DEFINE_TEST_NEON_2SAME_4H_8H(mnemonic, input)
 
-#define DEFINE_TEST_NEON_2SAME_NO2D(mnemonic, input)                         \
-    DEFINE_TEST_NEON_2SAME_BH(mnemonic, input)                               \
-    DEFINE_TEST_NEON_2SAME_2S_4S(mnemonic, input)
+#define DEFINE_TEST_NEON_2SAME_NO2D(mnemonic, input) \
+  DEFINE_TEST_NEON_2SAME_BH(mnemonic, input)         \
+  DEFINE_TEST_NEON_2SAME_2S_4S(mnemonic, input)
 
-#define DEFINE_TEST_NEON_2SAME(mnemonic, input)                              \
-    DEFINE_TEST_NEON_2SAME_NO2D(mnemonic, input)                             \
-    TEST(mnemonic##_2D) {                                                    \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2D, kInput64bits##input);        \
-    }
-#define DEFINE_TEST_NEON_2SAME_SD(mnemonic, input)                           \
-    DEFINE_TEST_NEON_2SAME_2S_4S(mnemonic, input)                            \
-    TEST(mnemonic##_2D) {                                                    \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2D, kInput64bits##input);        \
-    }
+#define DEFINE_TEST_NEON_2SAME(mnemonic, input)                     \
+  DEFINE_TEST_NEON_2SAME_NO2D(mnemonic, input)                      \
+  TEST(mnemonic##_2D) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2D, kInput64bits##input); \
+  }
+#define DEFINE_TEST_NEON_2SAME_SD(mnemonic, input)                  \
+  DEFINE_TEST_NEON_2SAME_2S_4S(mnemonic, input)                     \
+  TEST(mnemonic##_2D) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2D, kInput64bits##input); \
+  }
 
-#define DEFINE_TEST_NEON_2SAME_FP(mnemonic, input)                           \
-    TEST(mnemonic##_2S) {                                                    \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2S, kInputFloat##input);         \
-    }                                                                        \
-    TEST(mnemonic##_4S) {                                                    \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, 4S, kInputFloat##input);         \
-    }                                                                        \
-    TEST(mnemonic##_2D) {                                                    \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2D, kInputDouble##input);        \
-    }
+#define DEFINE_TEST_NEON_2SAME_FP(mnemonic, input)                  \
+  TEST(mnemonic##_2S) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2S, kInputFloat##input);  \
+  }                                                                 \
+  TEST(mnemonic##_4S) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, 4S, kInputFloat##input);  \
+  }                                                                 \
+  TEST(mnemonic##_2D) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2D, kInputDouble##input); \
+  }
 
-#define DEFINE_TEST_NEON_2SAME_FP_SCALAR(mnemonic, input)                    \
-    TEST(mnemonic##_S) {                                                     \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, S, kInputFloat##input);          \
-    }                                                                        \
-    TEST(mnemonic##_D) {                                                     \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, D, kInputDouble##input);         \
-    }
+#define DEFINE_TEST_NEON_2SAME_FP_SCALAR(mnemonic, input)          \
+  TEST(mnemonic##_S) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, S, kInputFloat##input);  \
+  }                                                                \
+  TEST(mnemonic##_D) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, D, kInputDouble##input); \
+  }
 
-#define DEFINE_TEST_NEON_2SAME_SCALAR_B(mnemonic, input)                     \
-    TEST(mnemonic##_B) {                                                     \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, B, kInput8bits##input);          \
-    }
-#define DEFINE_TEST_NEON_2SAME_SCALAR_H(mnemonic, input)                     \
-    TEST(mnemonic##_H) {                                                     \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, H, kInput16bits##input);         \
-    }
-#define DEFINE_TEST_NEON_2SAME_SCALAR_S(mnemonic, input)                     \
-    TEST(mnemonic##_S) {                                                     \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, S, kInput32bits##input);         \
-    }
-#define DEFINE_TEST_NEON_2SAME_SCALAR_D(mnemonic, input)                     \
-    TEST(mnemonic##_D) {                                                     \
-      CALL_TEST_NEON_HELPER_2SAME(mnemonic, D, kInput64bits##input);         \
-    }
+#define DEFINE_TEST_NEON_2SAME_SCALAR_B(mnemonic, input)          \
+  TEST(mnemonic##_B) {                                            \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, B, kInput8bits##input); \
+  }
+#define DEFINE_TEST_NEON_2SAME_SCALAR_H(mnemonic, input)           \
+  TEST(mnemonic##_H) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, H, kInput16bits##input); \
+  }
+#define DEFINE_TEST_NEON_2SAME_SCALAR_S(mnemonic, input)           \
+  TEST(mnemonic##_S) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, S, kInput32bits##input); \
+  }
+#define DEFINE_TEST_NEON_2SAME_SCALAR_D(mnemonic, input)           \
+  TEST(mnemonic##_D) {                                             \
+    CALL_TEST_NEON_HELPER_2SAME(mnemonic, D, kInput64bits##input); \
+  }
 
-#define DEFINE_TEST_NEON_2SAME_SCALAR(mnemonic, input)                       \
-    DEFINE_TEST_NEON_2SAME_SCALAR_B(mnemonic, input)                         \
-    DEFINE_TEST_NEON_2SAME_SCALAR_H(mnemonic, input)                         \
-    DEFINE_TEST_NEON_2SAME_SCALAR_S(mnemonic, input)                         \
-    DEFINE_TEST_NEON_2SAME_SCALAR_D(mnemonic, input)
+#define DEFINE_TEST_NEON_2SAME_SCALAR(mnemonic, input) \
+  DEFINE_TEST_NEON_2SAME_SCALAR_B(mnemonic, input)     \
+  DEFINE_TEST_NEON_2SAME_SCALAR_H(mnemonic, input)     \
+  DEFINE_TEST_NEON_2SAME_SCALAR_S(mnemonic, input)     \
+  DEFINE_TEST_NEON_2SAME_SCALAR_D(mnemonic, input)
 
-#define DEFINE_TEST_NEON_2SAME_SCALAR_SD(mnemonic, input)                    \
-    DEFINE_TEST_NEON_2SAME_SCALAR_S(mnemonic, input)                         \
-    DEFINE_TEST_NEON_2SAME_SCALAR_D(mnemonic, input)
+#define DEFINE_TEST_NEON_2SAME_SCALAR_SD(mnemonic, input) \
+  DEFINE_TEST_NEON_2SAME_SCALAR_S(mnemonic, input)        \
+  DEFINE_TEST_NEON_2SAME_SCALAR_D(mnemonic, input)
 
 
-#define CALL_TEST_NEON_HELPER_ACROSS(mnemonic, vd_form, vn_form, input_n)    \
-    CALL_TEST_NEON_HELPER_1OpAcross(mnemonic,                                \
-                                    vd_form, vn_form,                        \
-                                    input_n)
+#define CALL_TEST_NEON_HELPER_ACROSS(mnemonic, vd_form, vn_form, input_n) \
+  CALL_TEST_NEON_HELPER_1OpAcross(mnemonic, vd_form, vn_form, input_n)
 
-#define DEFINE_TEST_NEON_ACROSS(mnemonic, input)                             \
-    TEST(mnemonic##_B_8B) {                                                  \
-      CALL_TEST_NEON_HELPER_ACROSS(mnemonic, B, 8B, kInput8bits##input);     \
-    }                                                                        \
-    TEST(mnemonic##_B_16B) {                                                 \
-      CALL_TEST_NEON_HELPER_ACROSS(mnemonic, B, 16B, kInput8bits##input);    \
-    }                                                                        \
-    TEST(mnemonic##_H_4H) {                                                  \
-      CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 4H, kInput16bits##input);    \
-    }                                                                        \
-    TEST(mnemonic##_H_8H) {                                                  \
-      CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 8H, kInput16bits##input);    \
-    }                                                                        \
-    TEST(mnemonic##_S_4S) {                                                  \
-      CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 4S, kInput32bits##input);    \
-    }
+#define DEFINE_TEST_NEON_ACROSS(mnemonic, input)                        \
+  TEST(mnemonic##_B_8B) {                                               \
+    CALL_TEST_NEON_HELPER_ACROSS(mnemonic, B, 8B, kInput8bits##input);  \
+  }                                                                     \
+  TEST(mnemonic##_B_16B) {                                              \
+    CALL_TEST_NEON_HELPER_ACROSS(mnemonic, B, 16B, kInput8bits##input); \
+  }                                                                     \
+  TEST(mnemonic##_H_4H) {                                               \
+    CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 4H, kInput16bits##input); \
+  }                                                                     \
+  TEST(mnemonic##_H_8H) {                                               \
+    CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 8H, kInput16bits##input); \
+  }                                                                     \
+  TEST(mnemonic##_S_4S) {                                               \
+    CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 4S, kInput32bits##input); \
+  }
 
-#define DEFINE_TEST_NEON_ACROSS_LONG(mnemonic, input)                        \
-    TEST(mnemonic##_H_8B) {                                                  \
-      CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 8B, kInput8bits##input);     \
-    }                                                                        \
-    TEST(mnemonic##_H_16B) {                                                 \
-      CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 16B, kInput8bits##input);    \
-    }                                                                        \
-    TEST(mnemonic##_S_4H) {                                                  \
-      CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 4H, kInput16bits##input);    \
-    }                                                                        \
-    TEST(mnemonic##_S_8H) {                                                  \
-      CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 8H, kInput16bits##input);    \
-    }                                                                        \
-    TEST(mnemonic##_D_4S) {                                                  \
-      CALL_TEST_NEON_HELPER_ACROSS(mnemonic, D, 4S, kInput32bits##input);    \
-    }
+#define DEFINE_TEST_NEON_ACROSS_LONG(mnemonic, input)                   \
+  TEST(mnemonic##_H_8B) {                                               \
+    CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 8B, kInput8bits##input);  \
+  }                                                                     \
+  TEST(mnemonic##_H_16B) {                                              \
+    CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 16B, kInput8bits##input); \
+  }                                                                     \
+  TEST(mnemonic##_S_4H) {                                               \
+    CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 4H, kInput16bits##input); \
+  }                                                                     \
+  TEST(mnemonic##_S_8H) {                                               \
+    CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 8H, kInput16bits##input); \
+  }                                                                     \
+  TEST(mnemonic##_D_4S) {                                               \
+    CALL_TEST_NEON_HELPER_ACROSS(mnemonic, D, 4S, kInput32bits##input); \
+  }
 
-#define DEFINE_TEST_NEON_ACROSS_FP(mnemonic, input)                          \
-    TEST(mnemonic##_S_4S) {                                                  \
-      CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 4S, kInputFloat##input);     \
-    }
+#define DEFINE_TEST_NEON_ACROSS_FP(mnemonic, input)                    \
+  TEST(mnemonic##_S_4S) {                                              \
+    CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 4S, kInputFloat##input); \
+  }
 
-#define CALL_TEST_NEON_HELPER_2DIFF(mnemonic,                                \
-                                    vdform, vnform,                          \
-                                    input_n)                                 \
-    CALL_TEST_NEON_HELPER_1Op(mnemonic,                                      \
-                              vdform, vnform,                                \
-                              input_n)
+#define CALL_TEST_NEON_HELPER_2DIFF(mnemonic, vdform, vnform, input_n) \
+  CALL_TEST_NEON_HELPER_1Op(mnemonic, vdform, vnform, input_n)
 
-#define DEFINE_TEST_NEON_2DIFF_LONG(mnemonic, input)                         \
-    TEST(mnemonic##_4H) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4H, 8B, kInput8bits##input);     \
-    }                                                                        \
-    TEST(mnemonic##_8H) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 8H, 16B, kInput8bits##input);    \
-    }                                                                        \
-    TEST(mnemonic##_2S) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 4H, kInput16bits##input);    \
-    }                                                                        \
-    TEST(mnemonic##_4S) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4S, 8H, kInput16bits##input);    \
-    }                                                                        \
-    TEST(mnemonic##_1D) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 1D, 2S, kInput32bits##input);    \
-    }                                                                        \
-    TEST(mnemonic##_2D) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2D, 4S, kInput32bits##input);    \
-    }
+#define DEFINE_TEST_NEON_2DIFF_LONG(mnemonic, input)                    \
+  TEST(mnemonic##_4H) {                                                 \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4H, 8B, kInput8bits##input);  \
+  }                                                                     \
+  TEST(mnemonic##_8H) {                                                 \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 8H, 16B, kInput8bits##input); \
+  }                                                                     \
+  TEST(mnemonic##_2S) {                                                 \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 4H, kInput16bits##input); \
+  }                                                                     \
+  TEST(mnemonic##_4S) {                                                 \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4S, 8H, kInput16bits##input); \
+  }                                                                     \
+  TEST(mnemonic##_1D) {                                                 \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 1D, 2S, kInput32bits##input); \
+  }                                                                     \
+  TEST(mnemonic##_2D) {                                                 \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2D, 4S, kInput32bits##input); \
+  }
 
-#define DEFINE_TEST_NEON_2DIFF_NARROW(mnemonic, input)                       \
-    TEST(mnemonic##_8B) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 8B, 8H, kInput16bits##input);    \
-    }                                                                        \
-    TEST(mnemonic##_4H) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4H, 4S, kInput32bits##input);    \
-    }                                                                        \
-    TEST(mnemonic##_2S) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 2D, kInput64bits##input);    \
-    }                                                                        \
-    TEST(mnemonic##2_16B) {                                                  \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 16B, 8H, kInput16bits##input);\
-    }                                                                        \
-    TEST(mnemonic##2_8H) {                                                   \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 8H, 4S, kInput32bits##input); \
-    }                                                                        \
-    TEST(mnemonic##2_4S) {                                                   \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 2D, kInput64bits##input); \
-    }
+#define DEFINE_TEST_NEON_2DIFF_NARROW(mnemonic, input)                      \
+  TEST(mnemonic##_8B) {                                                     \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 8B, 8H, kInput16bits##input);     \
+  }                                                                         \
+  TEST(mnemonic##_4H) {                                                     \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4H, 4S, kInput32bits##input);     \
+  }                                                                         \
+  TEST(mnemonic##_2S) {                                                     \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 2D, kInput64bits##input);     \
+  }                                                                         \
+  TEST(mnemonic##2_16B) {                                                   \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 16B, 8H, kInput16bits##input); \
+  }                                                                         \
+  TEST(mnemonic##2_8H) {                                                    \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 8H, 4S, kInput32bits##input);  \
+  }                                                                         \
+  TEST(mnemonic##2_4S) {                                                    \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 2D, kInput64bits##input);  \
+  }
 
-#define DEFINE_TEST_NEON_2DIFF_FP_LONG(mnemonic, input)                      \
-    TEST(mnemonic##_4S) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4S, 4H, kInputFloat16##input);   \
-    }                                                                        \
-    TEST(mnemonic##_2D) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2D, 2S, kInputFloat##input);     \
-    }                                                                        \
-    TEST(mnemonic##2_4S) {                                                   \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 8H, kInputFloat16##input);\
-    }                                                                        \
-    TEST(mnemonic##2_2D) {                                                   \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 2D, 4S, kInputFloat##input);  \
-    }
+#define DEFINE_TEST_NEON_2DIFF_FP_LONG(mnemonic, input)                     \
+  TEST(mnemonic##_4S) {                                                     \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4S, 4H, kInputFloat16##input);    \
+  }                                                                         \
+  TEST(mnemonic##_2D) {                                                     \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2D, 2S, kInputFloat##input);      \
+  }                                                                         \
+  TEST(mnemonic##2_4S) {                                                    \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 8H, kInputFloat16##input); \
+  }                                                                         \
+  TEST(mnemonic##2_2D) {                                                    \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 2D, 4S, kInputFloat##input);   \
+  }
 
-#define DEFINE_TEST_NEON_2DIFF_FP_NARROW(mnemonic, input)                    \
-    TEST(mnemonic##_4H) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4H, 4S, kInputFloat##input);     \
-    }                                                                        \
-    TEST(mnemonic##_2S) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 2D, kInputDouble##input);    \
-    }                                                                        \
-    TEST(mnemonic##2_8H) {                                                   \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 8H, 4S, kInputFloat##input);  \
-    }                                                                        \
-    TEST(mnemonic##2_4S) {                                                   \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 2D, kInputDouble##input); \
-    }
+#define DEFINE_TEST_NEON_2DIFF_FP_NARROW(mnemonic, input)                  \
+  TEST(mnemonic##_4H) {                                                    \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4H, 4S, kInputFloat##input);     \
+  }                                                                        \
+  TEST(mnemonic##_2S) {                                                    \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 2D, kInputDouble##input);    \
+  }                                                                        \
+  TEST(mnemonic##2_8H) {                                                   \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 8H, 4S, kInputFloat##input);  \
+  }                                                                        \
+  TEST(mnemonic##2_4S) {                                                   \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 2D, kInputDouble##input); \
+  }
 
-#define DEFINE_TEST_NEON_2DIFF_FP_NARROW_2S(mnemonic, input)                 \
-    TEST(mnemonic##_2S) {                                                    \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 2D, kInputDouble##input);    \
-    }                                                                        \
-    TEST(mnemonic##2_4S) {                                                   \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 2D, kInputDouble##input); \
-    }
+#define DEFINE_TEST_NEON_2DIFF_FP_NARROW_2S(mnemonic, input)               \
+  TEST(mnemonic##_2S) {                                                    \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 2D, kInputDouble##input);    \
+  }                                                                        \
+  TEST(mnemonic##2_4S) {                                                   \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 2D, kInputDouble##input); \
+  }
 
-#define DEFINE_TEST_NEON_2DIFF_SCALAR_NARROW(mnemonic, input)                \
-    TEST(mnemonic##_B) {                                                     \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, B, H, kInput16bits##input);      \
-    }                                                                        \
-    TEST(mnemonic##_H) {                                                     \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, H, S, kInput32bits##input);      \
-    }                                                                        \
-    TEST(mnemonic##_S) {                                                     \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, S, D, kInput64bits##input);      \
-    }
+#define DEFINE_TEST_NEON_2DIFF_SCALAR_NARROW(mnemonic, input)         \
+  TEST(mnemonic##_B) {                                                \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, B, H, kInput16bits##input); \
+  }                                                                   \
+  TEST(mnemonic##_H) {                                                \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, H, S, kInput32bits##input); \
+  }                                                                   \
+  TEST(mnemonic##_S) {                                                \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, S, D, kInput64bits##input); \
+  }
 
-#define DEFINE_TEST_NEON_2DIFF_FP_SCALAR_SD(mnemonic, input)                 \
-    TEST(mnemonic##_S) {                                                     \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, S, 2S, kInputFloat##input);      \
-    }                                                                        \
-    TEST(mnemonic##_D) {                                                     \
-      CALL_TEST_NEON_HELPER_2DIFF(mnemonic, D, 2D, kInputDouble##input);     \
-    }
+#define DEFINE_TEST_NEON_2DIFF_FP_SCALAR_SD(mnemonic, input)           \
+  TEST(mnemonic##_S) {                                                 \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, S, 2S, kInputFloat##input);  \
+  }                                                                    \
+  TEST(mnemonic##_D) {                                                 \
+    CALL_TEST_NEON_HELPER_2DIFF(mnemonic, D, 2D, kInputDouble##input); \
+  }
 
-#define CALL_TEST_NEON_HELPER_3SAME(mnemonic, variant, input_d, input_nm) {  \
-    CALL_TEST_NEON_HELPER_2Op(mnemonic,                                      \
-                              variant, variant, variant,                     \
-                              input_d, input_nm, input_nm);                  \
-    }
+#define CALL_TEST_NEON_HELPER_3SAME(mnemonic, variant, input_d, input_nm) \
+  {                                                                       \
+    CALL_TEST_NEON_HELPER_2Op(mnemonic,                                   \
+                              variant,                                    \
+                              variant,                                    \
+                              variant,                                    \
+                              input_d,                                    \
+                              input_nm,                                   \
+                              input_nm);                                  \
+  }
 
-#define DEFINE_TEST_NEON_3SAME_8B_16B(mnemonic, input)                       \
-    TEST(mnemonic##_8B) {                                                    \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, 8B,                              \
-                                  kInput8bitsAccDestination,                 \
-                                  kInput8bits##input);                       \
-    }                                                                        \
-    TEST(mnemonic##_16B) {                                                   \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, 16B,                             \
-                                  kInput8bitsAccDestination,                 \
-                                  kInput8bits##input);                       \
-    }                                                                        \
+#define DEFINE_TEST_NEON_3SAME_8B_16B(mnemonic, input)     \
+  TEST(mnemonic##_8B) {                                    \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                  \
+                                8B,                        \
+                                kInput8bitsAccDestination, \
+                                kInput8bits##input);       \
+  }                                                        \
+  TEST(mnemonic##_16B) {                                   \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                  \
+                                16B,                       \
+                                kInput8bitsAccDestination, \
+                                kInput8bits##input);       \
+  }
 
-#define DEFINE_TEST_NEON_3SAME_HS(mnemonic, input)                           \
-    TEST(mnemonic##_4H) {                                                    \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, 4H,                              \
-                                  kInput16bitsAccDestination,                \
-                                  kInput16bits##input);                      \
-    }                                                                        \
-    TEST(mnemonic##_8H) {                                                    \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, 8H,                              \
-                                  kInput16bitsAccDestination,                \
-                                  kInput16bits##input);                      \
-    }                                                                        \
-    TEST(mnemonic##_2S) {                                                    \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, 2S,                              \
-                                  kInput32bitsAccDestination,                \
-                                  kInput32bits##input);                      \
-    }                                                                        \
-    TEST(mnemonic##_4S) {                                                    \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, 4S,                              \
-                                  kInput32bitsAccDestination,                \
-                                  kInput32bits##input);                      \
-    }
+#define DEFINE_TEST_NEON_3SAME_HS(mnemonic, input)          \
+  TEST(mnemonic##_4H) {                                     \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                4H,                         \
+                                kInput16bitsAccDestination, \
+                                kInput16bits##input);       \
+  }                                                         \
+  TEST(mnemonic##_8H) {                                     \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                8H,                         \
+                                kInput16bitsAccDestination, \
+                                kInput16bits##input);       \
+  }                                                         \
+  TEST(mnemonic##_2S) {                                     \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                2S,                         \
+                                kInput32bitsAccDestination, \
+                                kInput32bits##input);       \
+  }                                                         \
+  TEST(mnemonic##_4S) {                                     \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                4S,                         \
+                                kInput32bitsAccDestination, \
+                                kInput32bits##input);       \
+  }
 
-#define DEFINE_TEST_NEON_3SAME_NO2D(mnemonic, input)                         \
-    DEFINE_TEST_NEON_3SAME_8B_16B(mnemonic, input)                           \
-    DEFINE_TEST_NEON_3SAME_HS(mnemonic, input)
+#define DEFINE_TEST_NEON_3SAME_NO2D(mnemonic, input) \
+  DEFINE_TEST_NEON_3SAME_8B_16B(mnemonic, input)     \
+  DEFINE_TEST_NEON_3SAME_HS(mnemonic, input)
 
-#define DEFINE_TEST_NEON_3SAME(mnemonic, input)                              \
-    DEFINE_TEST_NEON_3SAME_NO2D(mnemonic, input)                             \
-    TEST(mnemonic##_2D) {                                                    \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, 2D,                              \
-                                  kInput64bitsAccDestination,                \
-                                  kInput64bits##input);                      \
-    }
+#define DEFINE_TEST_NEON_3SAME(mnemonic, input)             \
+  DEFINE_TEST_NEON_3SAME_NO2D(mnemonic, input)              \
+  TEST(mnemonic##_2D) {                                     \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                2D,                         \
+                                kInput64bitsAccDestination, \
+                                kInput64bits##input);       \
+  }
 
-#define DEFINE_TEST_NEON_3SAME_FP(mnemonic, input)                           \
-    TEST(mnemonic##_2S) {                                                    \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, 2S,                              \
-                                  kInputFloatAccDestination,                 \
-                                  kInputFloat##input);                       \
-    }                                                                        \
-    TEST(mnemonic##_4S) {                                                    \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, 4S,                              \
-                                  kInputFloatAccDestination,                 \
-                                  kInputFloat##input);                       \
-    }                                                                        \
-    TEST(mnemonic##_2D) {                                                    \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, 2D,                              \
-                                  kInputDoubleAccDestination,                \
-                                  kInputDouble##input);                      \
-    }
+#define DEFINE_TEST_NEON_3SAME_FP(mnemonic, input)          \
+  TEST(mnemonic##_2S) {                                     \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                2S,                         \
+                                kInputFloatAccDestination,  \
+                                kInputFloat##input);        \
+  }                                                         \
+  TEST(mnemonic##_4S) {                                     \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                4S,                         \
+                                kInputFloatAccDestination,  \
+                                kInputFloat##input);        \
+  }                                                         \
+  TEST(mnemonic##_2D) {                                     \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                2D,                         \
+                                kInputDoubleAccDestination, \
+                                kInputDouble##input);       \
+  }
 
-#define DEFINE_TEST_NEON_3SAME_SCALAR_D(mnemonic, input)                     \
-    TEST(mnemonic##_D) {                                                     \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, D,                               \
-                                  kInput64bitsAccDestination,                \
-                                  kInput64bits##input);                      \
-    }
+#define DEFINE_TEST_NEON_3SAME_SCALAR_D(mnemonic, input)    \
+  TEST(mnemonic##_D) {                                      \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                D,                          \
+                                kInput64bitsAccDestination, \
+                                kInput64bits##input);       \
+  }
 
-#define DEFINE_TEST_NEON_3SAME_SCALAR_HS(mnemonic, input)                    \
-    TEST(mnemonic##_H) {                                                     \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, H,                               \
-                                  kInput16bitsAccDestination,                \
-                                  kInput16bits##input);                      \
-    }                                                                        \
-    TEST(mnemonic##_S) {                                                     \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, S,                               \
-                                  kInput32bitsAccDestination,                \
-                                  kInput32bits##input);                      \
-    }                                                                        \
+#define DEFINE_TEST_NEON_3SAME_SCALAR_HS(mnemonic, input)   \
+  TEST(mnemonic##_H) {                                      \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                H,                          \
+                                kInput16bitsAccDestination, \
+                                kInput16bits##input);       \
+  }                                                         \
+  TEST(mnemonic##_S) {                                      \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                S,                          \
+                                kInput32bitsAccDestination, \
+                                kInput32bits##input);       \
+  }
 
-#define DEFINE_TEST_NEON_3SAME_SCALAR(mnemonic, input)                       \
-    TEST(mnemonic##_B) {                                                     \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, B,                               \
-                                  kInput8bitsAccDestination,                 \
-                                  kInput8bits##input);                       \
-    }                                                                        \
-    TEST(mnemonic##_H) {                                                     \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, H,                               \
-                                  kInput16bitsAccDestination,                \
-                                  kInput16bits##input);                      \
-    }                                                                        \
-    TEST(mnemonic##_S) {                                                     \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, S,                               \
-                                  kInput32bitsAccDestination,                \
-                                  kInput32bits##input);                      \
-    }                                                                        \
-    TEST(mnemonic##_D) {                                                     \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, D,                               \
-                                  kInput64bitsAccDestination,                \
-                                  kInput64bits##input);                      \
-    }
+#define DEFINE_TEST_NEON_3SAME_SCALAR(mnemonic, input)      \
+  TEST(mnemonic##_B) {                                      \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                B,                          \
+                                kInput8bitsAccDestination,  \
+                                kInput8bits##input);        \
+  }                                                         \
+  TEST(mnemonic##_H) {                                      \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                H,                          \
+                                kInput16bitsAccDestination, \
+                                kInput16bits##input);       \
+  }                                                         \
+  TEST(mnemonic##_S) {                                      \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                S,                          \
+                                kInput32bitsAccDestination, \
+                                kInput32bits##input);       \
+  }                                                         \
+  TEST(mnemonic##_D) {                                      \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                D,                          \
+                                kInput64bitsAccDestination, \
+                                kInput64bits##input);       \
+  }
 
-#define DEFINE_TEST_NEON_3SAME_FP_SCALAR(mnemonic, input)                    \
-    TEST(mnemonic##_S) {                                                     \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, S,                               \
-                                  kInputFloatAccDestination,                 \
-                                  kInputFloat##input);                       \
-    }                                                                        \
-    TEST(mnemonic##_D) {                                                     \
-      CALL_TEST_NEON_HELPER_3SAME(mnemonic, D,                               \
-                                  kInputDoubleAccDestination,                \
-                                  kInputDouble##input);                      \
-    }
+#define DEFINE_TEST_NEON_3SAME_FP_SCALAR(mnemonic, input)   \
+  TEST(mnemonic##_S) {                                      \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                S,                          \
+                                kInputFloatAccDestination,  \
+                                kInputFloat##input);        \
+  }                                                         \
+  TEST(mnemonic##_D) {                                      \
+    CALL_TEST_NEON_HELPER_3SAME(mnemonic,                   \
+                                D,                          \
+                                kInputDoubleAccDestination, \
+                                kInputDouble##input);       \
+  }
 
-#define CALL_TEST_NEON_HELPER_3DIFF(mnemonic,                                \
-                                    vdform, vnform, vmform,                  \
-                                    input_d, input_n, input_m) {             \
-    CALL_TEST_NEON_HELPER_2Op(mnemonic,                                      \
-                              vdform, vnform, vmform,                        \
-                              input_d, input_n, input_m);                    \
-    }
+#define CALL_TEST_NEON_HELPER_3DIFF(                             \
+    mnemonic, vdform, vnform, vmform, input_d, input_n, input_m) \
+  {                                                              \
+    CALL_TEST_NEON_HELPER_2Op(mnemonic,                          \
+                              vdform,                            \
+                              vnform,                            \
+                              vmform,                            \
+                              input_d,                           \
+                              input_n,                           \
+                              input_m);                          \
+  }
 
-#define DEFINE_TEST_NEON_3DIFF_LONG_8H(mnemonic, input)                      \
-    TEST(mnemonic##_8H) {                                                    \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 8H, 8B, 8B,                      \
-                                  kInput16bitsAccDestination,                \
-                                  kInput8bits##input, kInput8bits##input);   \
-    }                                                                        \
-    TEST(mnemonic##2_8H) {                                                   \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 8H, 16B, 16B,                 \
-                                  kInput16bitsAccDestination,                \
-                                  kInput8bits##input, kInput8bits##input);   \
-    }
+#define DEFINE_TEST_NEON_3DIFF_LONG_8H(mnemonic, input)     \
+  TEST(mnemonic##_8H) {                                     \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic,                   \
+                                8H,                         \
+                                8B,                         \
+                                8B,                         \
+                                kInput16bitsAccDestination, \
+                                kInput8bits##input,         \
+                                kInput8bits##input);        \
+  }                                                         \
+  TEST(mnemonic##2_8H) {                                    \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2,                \
+                                8H,                         \
+                                16B,                        \
+                                16B,                        \
+                                kInput16bitsAccDestination, \
+                                kInput8bits##input,         \
+                                kInput8bits##input);        \
+  }
 
-#define DEFINE_TEST_NEON_3DIFF_LONG_4S(mnemonic, input)                      \
-    TEST(mnemonic##_4S) {                                                    \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 4S, 4H, 4H,                      \
-                                  kInput32bitsAccDestination,                \
-                                  kInput16bits##input, kInput16bits##input); \
-    }                                                                        \
-    TEST(mnemonic##2_4S) {                                                   \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 4S, 8H, 8H,                   \
-                                  kInput32bitsAccDestination,                \
-                                  kInput16bits##input, kInput16bits##input); \
-    }
+#define DEFINE_TEST_NEON_3DIFF_LONG_4S(mnemonic, input)     \
+  TEST(mnemonic##_4S) {                                     \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic,                   \
+                                4S,                         \
+                                4H,                         \
+                                4H,                         \
+                                kInput32bitsAccDestination, \
+                                kInput16bits##input,        \
+                                kInput16bits##input);       \
+  }                                                         \
+  TEST(mnemonic##2_4S) {                                    \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2,                \
+                                4S,                         \
+                                8H,                         \
+                                8H,                         \
+                                kInput32bitsAccDestination, \
+                                kInput16bits##input,        \
+                                kInput16bits##input);       \
+  }
 
-#define DEFINE_TEST_NEON_3DIFF_LONG_2D(mnemonic, input)                      \
-    TEST(mnemonic##_2D) {                                                    \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 2D, 2S, 2S,                      \
-                                  kInput64bitsAccDestination,                \
-                                  kInput32bits##input, kInput32bits##input); \
-    }                                                                        \
-    TEST(mnemonic##2_2D) {                                                   \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 2D, 4S, 4S,                   \
-                                  kInput64bitsAccDestination,                \
-                                  kInput32bits##input, kInput32bits##input); \
-    }
+#define DEFINE_TEST_NEON_3DIFF_LONG_2D(mnemonic, input)     \
+  TEST(mnemonic##_2D) {                                     \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic,                   \
+                                2D,                         \
+                                2S,                         \
+                                2S,                         \
+                                kInput64bitsAccDestination, \
+                                kInput32bits##input,        \
+                                kInput32bits##input);       \
+  }                                                         \
+  TEST(mnemonic##2_2D) {                                    \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2,                \
+                                2D,                         \
+                                4S,                         \
+                                4S,                         \
+                                kInput64bitsAccDestination, \
+                                kInput32bits##input,        \
+                                kInput32bits##input);       \
+  }
 
-#define DEFINE_TEST_NEON_3DIFF_LONG_SD(mnemonic, input)                      \
-    DEFINE_TEST_NEON_3DIFF_LONG_4S(mnemonic, input)                          \
-    DEFINE_TEST_NEON_3DIFF_LONG_2D(mnemonic, input)
+#define DEFINE_TEST_NEON_3DIFF_LONG_SD(mnemonic, input) \
+  DEFINE_TEST_NEON_3DIFF_LONG_4S(mnemonic, input)       \
+  DEFINE_TEST_NEON_3DIFF_LONG_2D(mnemonic, input)
 
-#define DEFINE_TEST_NEON_3DIFF_LONG(mnemonic, input)                         \
-    DEFINE_TEST_NEON_3DIFF_LONG_8H(mnemonic, input)                          \
-    DEFINE_TEST_NEON_3DIFF_LONG_4S(mnemonic, input)                          \
-    DEFINE_TEST_NEON_3DIFF_LONG_2D(mnemonic, input)
+#define DEFINE_TEST_NEON_3DIFF_LONG(mnemonic, input) \
+  DEFINE_TEST_NEON_3DIFF_LONG_8H(mnemonic, input)    \
+  DEFINE_TEST_NEON_3DIFF_LONG_4S(mnemonic, input)    \
+  DEFINE_TEST_NEON_3DIFF_LONG_2D(mnemonic, input)
 
-#define DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_S(mnemonic, input)                \
-    TEST(mnemonic##_S) {                                                     \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic, S, H, H,                         \
-                                  kInput32bitsAccDestination,                \
-                                  kInput16bits##input,                       \
-                                  kInput16bits##input);                      \
-    }
+#define DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_S(mnemonic, input) \
+  TEST(mnemonic##_S) {                                        \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic,                     \
+                                S,                            \
+                                H,                            \
+                                H,                            \
+                                kInput32bitsAccDestination,   \
+                                kInput16bits##input,          \
+                                kInput16bits##input);         \
+  }
 
-#define DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_D(mnemonic, input)                \
-    TEST(mnemonic##_D) {                                                     \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic, D, S, S,                         \
-                                  kInput64bitsAccDestination,                \
-                                  kInput32bits##input,                       \
-                                  kInput32bits##input);                      \
-    }
+#define DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_D(mnemonic, input) \
+  TEST(mnemonic##_D) {                                        \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic,                     \
+                                D,                            \
+                                S,                            \
+                                S,                            \
+                                kInput64bitsAccDestination,   \
+                                kInput32bits##input,          \
+                                kInput32bits##input);         \
+  }
 
-#define DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_SD(mnemonic, input)               \
-    DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_S(mnemonic, input)                    \
-    DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_D(mnemonic, input)
+#define DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_SD(mnemonic, input) \
+  DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_S(mnemonic, input)        \
+  DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_D(mnemonic, input)
 
-#define DEFINE_TEST_NEON_3DIFF_WIDE(mnemonic, input)                         \
-    TEST(mnemonic##_8H) {                                                    \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 8H, 8H, 8B,                      \
-                                  kInput16bitsAccDestination,                \
-                                  kInput16bits##input, kInput8bits##input);  \
-    }                                                                        \
-    TEST(mnemonic##_4S) {                                                    \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 4S, 4S, 4H,                      \
-                                  kInput32bitsAccDestination,                \
-                                  kInput32bits##input, kInput16bits##input); \
-    }                                                                        \
-    TEST(mnemonic##_2D) {                                                    \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 2D, 2D, 2S,                      \
-                                  kInput64bitsAccDestination,                \
-                                  kInput64bits##input, kInput32bits##input); \
-    }                                                                        \
-    TEST(mnemonic##2_8H) {                                                   \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 8H, 8H, 16B,                  \
-                                  kInput16bitsAccDestination,                \
-                                  kInput16bits##input, kInput8bits##input);  \
-    }                                                                        \
-    TEST(mnemonic##2_4S) {                                                   \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 4S, 4S, 8H,                   \
-                                  kInput32bitsAccDestination,                \
-                                  kInput32bits##input, kInput16bits##input); \
-    }                                                                        \
-    TEST(mnemonic##2_2D) {                                                   \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 2D, 2D, 4S,                   \
-                                  kInput64bitsAccDestination,                \
-                                  kInput64bits##input, kInput32bits##input); \
-    }
+#define DEFINE_TEST_NEON_3DIFF_WIDE(mnemonic, input)        \
+  TEST(mnemonic##_8H) {                                     \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic,                   \
+                                8H,                         \
+                                8H,                         \
+                                8B,                         \
+                                kInput16bitsAccDestination, \
+                                kInput16bits##input,        \
+                                kInput8bits##input);        \
+  }                                                         \
+  TEST(mnemonic##_4S) {                                     \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic,                   \
+                                4S,                         \
+                                4S,                         \
+                                4H,                         \
+                                kInput32bitsAccDestination, \
+                                kInput32bits##input,        \
+                                kInput16bits##input);       \
+  }                                                         \
+  TEST(mnemonic##_2D) {                                     \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic,                   \
+                                2D,                         \
+                                2D,                         \
+                                2S,                         \
+                                kInput64bitsAccDestination, \
+                                kInput64bits##input,        \
+                                kInput32bits##input);       \
+  }                                                         \
+  TEST(mnemonic##2_8H) {                                    \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2,                \
+                                8H,                         \
+                                8H,                         \
+                                16B,                        \
+                                kInput16bitsAccDestination, \
+                                kInput16bits##input,        \
+                                kInput8bits##input);        \
+  }                                                         \
+  TEST(mnemonic##2_4S) {                                    \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2,                \
+                                4S,                         \
+                                4S,                         \
+                                8H,                         \
+                                kInput32bitsAccDestination, \
+                                kInput32bits##input,        \
+                                kInput16bits##input);       \
+  }                                                         \
+  TEST(mnemonic##2_2D) {                                    \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2,                \
+                                2D,                         \
+                                2D,                         \
+                                4S,                         \
+                                kInput64bitsAccDestination, \
+                                kInput64bits##input,        \
+                                kInput32bits##input);       \
+  }
 
-#define DEFINE_TEST_NEON_3DIFF_NARROW(mnemonic, input)                       \
-    TEST(mnemonic##_8B) {                                                    \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 8B, 8H, 8H,                      \
-                                  kInput8bitsAccDestination,                 \
-                                  kInput16bits##input, kInput16bits##input); \
-    }                                                                        \
-    TEST(mnemonic##_4H) {                                                    \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 4H, 4S, 4S,                      \
-                                  kInput16bitsAccDestination,                \
-                                  kInput32bits##input, kInput32bits##input); \
-    }                                                                        \
-    TEST(mnemonic##_2S) {                                                    \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 2S, 2D, 2D,                      \
-                                  kInput32bitsAccDestination,                \
-                                  kInput64bits##input, kInput64bits##input); \
-    }                                                                        \
-    TEST(mnemonic##2_16B) {                                                  \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 16B, 8H, 8H,                  \
-                                  kInput8bitsAccDestination,                 \
-                                  kInput16bits##input, kInput16bits##input); \
-    }                                                                        \
-    TEST(mnemonic##2_8H) {                                                   \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 8H, 4S, 4S,                   \
-                                  kInput16bitsAccDestination,                \
-                                  kInput32bits##input, kInput32bits##input); \
-    }                                                                        \
-    TEST(mnemonic##2_4S) {                                                   \
-      CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 4S, 2D, 2D,                   \
-                                  kInput32bitsAccDestination,                \
-                                  kInput64bits##input, kInput64bits##input); \
-    }
+#define DEFINE_TEST_NEON_3DIFF_NARROW(mnemonic, input)      \
+  TEST(mnemonic##_8B) {                                     \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic,                   \
+                                8B,                         \
+                                8H,                         \
+                                8H,                         \
+                                kInput8bitsAccDestination,  \
+                                kInput16bits##input,        \
+                                kInput16bits##input);       \
+  }                                                         \
+  TEST(mnemonic##_4H) {                                     \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic,                   \
+                                4H,                         \
+                                4S,                         \
+                                4S,                         \
+                                kInput16bitsAccDestination, \
+                                kInput32bits##input,        \
+                                kInput32bits##input);       \
+  }                                                         \
+  TEST(mnemonic##_2S) {                                     \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic,                   \
+                                2S,                         \
+                                2D,                         \
+                                2D,                         \
+                                kInput32bitsAccDestination, \
+                                kInput64bits##input,        \
+                                kInput64bits##input);       \
+  }                                                         \
+  TEST(mnemonic##2_16B) {                                   \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2,                \
+                                16B,                        \
+                                8H,                         \
+                                8H,                         \
+                                kInput8bitsAccDestination,  \
+                                kInput16bits##input,        \
+                                kInput16bits##input);       \
+  }                                                         \
+  TEST(mnemonic##2_8H) {                                    \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2,                \
+                                8H,                         \
+                                4S,                         \
+                                4S,                         \
+                                kInput16bitsAccDestination, \
+                                kInput32bits##input,        \
+                                kInput32bits##input);       \
+  }                                                         \
+  TEST(mnemonic##2_4S) {                                    \
+    CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2,                \
+                                4S,                         \
+                                2D,                         \
+                                2D,                         \
+                                kInput32bitsAccDestination, \
+                                kInput64bits##input,        \
+                                kInput64bits##input);       \
+  }
 
-#define CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                               \
-                                     vdform, vnform,                         \
-                                     input_n,                                \
-                                     input_imm) {                            \
-    CALL_TEST_NEON_HELPER_2OpImm(mnemonic,                                   \
-                                 vdform, vnform,                             \
-                                 input_n, input_imm);                        \
-    }
+#define CALL_TEST_NEON_HELPER_2OPIMM(             \
+    mnemonic, vdform, vnform, input_n, input_imm) \
+  {                                               \
+    CALL_TEST_NEON_HELPER_2OpImm(mnemonic,        \
+                                 vdform,          \
+                                 vnform,          \
+                                 input_n,         \
+                                 input_imm);      \
+  }
 
-#define DEFINE_TEST_NEON_2OPIMM(mnemonic, input, input_imm)                  \
-    TEST(mnemonic##_8B_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   8B, 8B,                                   \
-                                   kInput8bits##input,                       \
-                                   kInput8bitsImm##input_imm);               \
-    }                                                                        \
-    TEST(mnemonic##_16B_2OPIMM) {                                            \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   16B, 16B,                                 \
-                                   kInput8bits##input,                       \
-                                   kInput8bitsImm##input_imm);               \
-    }                                                                        \
-    TEST(mnemonic##_4H_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   4H, 4H,                                   \
-                                   kInput16bits##input,                      \
-                                   kInput16bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##_8H_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   8H, 8H,                                   \
-                                   kInput16bits##input,                      \
-                                   kInput16bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##_2S_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   2S, 2S,                                   \
-                                   kInput32bits##input,                      \
-                                   kInput32bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##_4S_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   4S, 4S,                                   \
-                                   kInput32bits##input,                      \
-                                   kInput32bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##_2D_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   2D, 2D,                                   \
-                                   kInput64bits##input,                      \
-                                   kInput64bitsImm##input_imm);              \
-    }
+#define DEFINE_TEST_NEON_2OPIMM(mnemonic, input, input_imm)   \
+  TEST(mnemonic##_8B_2OPIMM) {                                \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                    \
+                                 8B,                          \
+                                 8B,                          \
+                                 kInput8bits##input,          \
+                                 kInput8bitsImm##input_imm);  \
+  }                                                           \
+  TEST(mnemonic##_16B_2OPIMM) {                               \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                    \
+                                 16B,                         \
+                                 16B,                         \
+                                 kInput8bits##input,          \
+                                 kInput8bitsImm##input_imm);  \
+  }                                                           \
+  TEST(mnemonic##_4H_2OPIMM) {                                \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                    \
+                                 4H,                          \
+                                 4H,                          \
+                                 kInput16bits##input,         \
+                                 kInput16bitsImm##input_imm); \
+  }                                                           \
+  TEST(mnemonic##_8H_2OPIMM) {                                \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                    \
+                                 8H,                          \
+                                 8H,                          \
+                                 kInput16bits##input,         \
+                                 kInput16bitsImm##input_imm); \
+  }                                                           \
+  TEST(mnemonic##_2S_2OPIMM) {                                \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                    \
+                                 2S,                          \
+                                 2S,                          \
+                                 kInput32bits##input,         \
+                                 kInput32bitsImm##input_imm); \
+  }                                                           \
+  TEST(mnemonic##_4S_2OPIMM) {                                \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                    \
+                                 4S,                          \
+                                 4S,                          \
+                                 kInput32bits##input,         \
+                                 kInput32bitsImm##input_imm); \
+  }                                                           \
+  TEST(mnemonic##_2D_2OPIMM) {                                \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                    \
+                                 2D,                          \
+                                 2D,                          \
+                                 kInput64bits##input,         \
+                                 kInput64bitsImm##input_imm); \
+  }
 
-#define DEFINE_TEST_NEON_2OPIMM_COPY(mnemonic, input, input_imm)             \
-    TEST(mnemonic##_8B_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   8B, B,                                    \
-                                   kInput8bits##input,                       \
-                                   kInput8bitsImm##input_imm);               \
-    }                                                                        \
-    TEST(mnemonic##_16B_2OPIMM) {                                            \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   16B, B,                                   \
-                                   kInput8bits##input,                       \
-                                   kInput8bitsImm##input_imm);               \
-    }                                                                        \
-    TEST(mnemonic##_4H_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   4H, H,                                    \
-                                   kInput16bits##input,                      \
-                                   kInput16bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##_8H_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   8H, H,                                    \
-                                   kInput16bits##input,                      \
-                                   kInput16bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##_2S_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   2S, S,                                    \
-                                   kInput32bits##input,                      \
-                                   kInput32bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##_4S_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   4S, S,                                    \
-                                   kInput32bits##input,                      \
-                                   kInput32bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##_2D_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   2D, D,                                    \
-                                   kInput64bits##input,                      \
-                                   kInput64bitsImm##input_imm);              \
-    }
+#define DEFINE_TEST_NEON_2OPIMM_COPY(mnemonic, input, input_imm) \
+  TEST(mnemonic##_8B_2OPIMM) {                                   \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                       \
+                                 8B,                             \
+                                 B,                              \
+                                 kInput8bits##input,             \
+                                 kInput8bitsImm##input_imm);     \
+  }                                                              \
+  TEST(mnemonic##_16B_2OPIMM) {                                  \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                       \
+                                 16B,                            \
+                                 B,                              \
+                                 kInput8bits##input,             \
+                                 kInput8bitsImm##input_imm);     \
+  }                                                              \
+  TEST(mnemonic##_4H_2OPIMM) {                                   \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                       \
+                                 4H,                             \
+                                 H,                              \
+                                 kInput16bits##input,            \
+                                 kInput16bitsImm##input_imm);    \
+  }                                                              \
+  TEST(mnemonic##_8H_2OPIMM) {                                   \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                       \
+                                 8H,                             \
+                                 H,                              \
+                                 kInput16bits##input,            \
+                                 kInput16bitsImm##input_imm);    \
+  }                                                              \
+  TEST(mnemonic##_2S_2OPIMM) {                                   \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                       \
+                                 2S,                             \
+                                 S,                              \
+                                 kInput32bits##input,            \
+                                 kInput32bitsImm##input_imm);    \
+  }                                                              \
+  TEST(mnemonic##_4S_2OPIMM) {                                   \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                       \
+                                 4S,                             \
+                                 S,                              \
+                                 kInput32bits##input,            \
+                                 kInput32bitsImm##input_imm);    \
+  }                                                              \
+  TEST(mnemonic##_2D_2OPIMM) {                                   \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                       \
+                                 2D,                             \
+                                 D,                              \
+                                 kInput64bits##input,            \
+                                 kInput64bitsImm##input_imm);    \
+  }
 
-#define DEFINE_TEST_NEON_2OPIMM_NARROW(mnemonic, input, input_imm)           \
-    TEST(mnemonic##_8B_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   8B, 8H,                                   \
-                                   kInput16bits##input,                      \
-                                   kInput8bitsImm##input_imm);               \
-    }                                                                        \
-    TEST(mnemonic##_4H_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   4H, 4S,                                   \
-                                   kInput32bits##input,                      \
-                                   kInput16bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##_2S_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   2S, 2D,                                   \
-                                   kInput64bits##input,                      \
-                                   kInput32bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##2_16B_2OPIMM) {                                           \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2,                              \
-                                   16B, 8H,                                  \
-                                   kInput16bits##input,                      \
-                                   kInput8bitsImm##input_imm);               \
-    }                                                                        \
-    TEST(mnemonic##2_8H_2OPIMM) {                                            \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2,                              \
-                                   8H, 4S,                                   \
-                                   kInput32bits##input,                      \
-                                   kInput16bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##2_4S_2OPIMM) {                                            \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2,                              \
-                                   4S, 2D,                                   \
-                                   kInput64bits##input,                      \
-                                   kInput32bitsImm##input_imm);              \
-    }
+#define DEFINE_TEST_NEON_2OPIMM_NARROW(mnemonic, input, input_imm) \
+  TEST(mnemonic##_8B_2OPIMM) {                                     \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                         \
+                                 8B,                               \
+                                 8H,                               \
+                                 kInput16bits##input,              \
+                                 kInput8bitsImm##input_imm);       \
+  }                                                                \
+  TEST(mnemonic##_4H_2OPIMM) {                                     \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                         \
+                                 4H,                               \
+                                 4S,                               \
+                                 kInput32bits##input,              \
+                                 kInput16bitsImm##input_imm);      \
+  }                                                                \
+  TEST(mnemonic##_2S_2OPIMM) {                                     \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                         \
+                                 2S,                               \
+                                 2D,                               \
+                                 kInput64bits##input,              \
+                                 kInput32bitsImm##input_imm);      \
+  }                                                                \
+  TEST(mnemonic##2_16B_2OPIMM) {                                   \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2,                      \
+                                 16B,                              \
+                                 8H,                               \
+                                 kInput16bits##input,              \
+                                 kInput8bitsImm##input_imm);       \
+  }                                                                \
+  TEST(mnemonic##2_8H_2OPIMM) {                                    \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2,                      \
+                                 8H,                               \
+                                 4S,                               \
+                                 kInput32bits##input,              \
+                                 kInput16bitsImm##input_imm);      \
+  }                                                                \
+  TEST(mnemonic##2_4S_2OPIMM) {                                    \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2,                      \
+                                 4S,                               \
+                                 2D,                               \
+                                 kInput64bits##input,              \
+                                 kInput32bitsImm##input_imm);      \
+  }
 
-#define DEFINE_TEST_NEON_2OPIMM_SCALAR_NARROW(mnemonic, input, input_imm)    \
-    TEST(mnemonic##_B_2OPIMM) {                                              \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   B, H,                                     \
-                                   kInput16bits##input,                      \
-                                   kInput8bitsImm##input_imm);               \
-    }                                                                        \
-    TEST(mnemonic##_H_2OPIMM) {                                              \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   H, S,                                     \
-                                   kInput32bits##input,                      \
-                                   kInput16bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##_S_2OPIMM) {                                              \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   S, D,                                     \
-                                   kInput64bits##input,                      \
-                                   kInput32bitsImm##input_imm);              \
-    }
+#define DEFINE_TEST_NEON_2OPIMM_SCALAR_NARROW(mnemonic, input, input_imm) \
+  TEST(mnemonic##_B_2OPIMM) {                                             \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                \
+                                 B,                                       \
+                                 H,                                       \
+                                 kInput16bits##input,                     \
+                                 kInput8bitsImm##input_imm);              \
+  }                                                                       \
+  TEST(mnemonic##_H_2OPIMM) {                                             \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                \
+                                 H,                                       \
+                                 S,                                       \
+                                 kInput32bits##input,                     \
+                                 kInput16bitsImm##input_imm);             \
+  }                                                                       \
+  TEST(mnemonic##_S_2OPIMM) {                                             \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                \
+                                 S,                                       \
+                                 D,                                       \
+                                 kInput64bits##input,                     \
+                                 kInput32bitsImm##input_imm);             \
+  }
 
-#define DEFINE_TEST_NEON_2OPIMM_FCMP_ZERO(mnemonic, input, input_imm)        \
-    TEST(mnemonic##_2S_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(                                          \
-          mnemonic,                                                          \
-          2S, 2S,                                                            \
-          kInputFloat##Basic,                                                \
-          kInputDoubleImm##input_imm)                                        \
-    }                                                                        \
-    TEST(mnemonic##_4S_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(                                          \
-          mnemonic,                                                          \
-          4S, 4S,                                                            \
-          kInputFloat##input,                                                \
-          kInputDoubleImm##input_imm);                                       \
-    }                                                                        \
-    TEST(mnemonic##_2D_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(                                          \
-          mnemonic,                                                          \
-          2D, 2D,                                                            \
-          kInputDouble##input,                                               \
-          kInputDoubleImm##input_imm);                                       \
-    }
+#define DEFINE_TEST_NEON_2OPIMM_FCMP_ZERO(mnemonic, input, input_imm) \
+  TEST(mnemonic##_2S_2OPIMM) {                                        \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                            \
+                                 2S,                                  \
+                                 2S,                                  \
+                                 kInputFloat##Basic,                  \
+                                 kInputDoubleImm##input_imm)          \
+  }                                                                   \
+  TEST(mnemonic##_4S_2OPIMM) {                                        \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                            \
+                                 4S,                                  \
+                                 4S,                                  \
+                                 kInputFloat##input,                  \
+                                 kInputDoubleImm##input_imm);         \
+  }                                                                   \
+  TEST(mnemonic##_2D_2OPIMM) {                                        \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                            \
+                                 2D,                                  \
+                                 2D,                                  \
+                                 kInputDouble##input,                 \
+                                 kInputDoubleImm##input_imm);         \
+  }
 
-#define DEFINE_TEST_NEON_2OPIMM_FP(mnemonic, input, input_imm)               \
-    TEST(mnemonic##_2S_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(                                          \
-          mnemonic,                                                          \
-          2S, 2S,                                                            \
-          kInputFloat##Basic,                                                \
-          kInput32bitsImm##input_imm)                                        \
-    }                                                                        \
-    TEST(mnemonic##_4S_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(                                          \
-          mnemonic,                                                          \
-          4S, 4S,                                                            \
-          kInputFloat##input,                                                \
-          kInput32bitsImm##input_imm)                                        \
-    }                                                                        \
-    TEST(mnemonic##_2D_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(                                          \
-          mnemonic,                                                          \
-          2D, 2D,                                                            \
-          kInputDouble##input,                                               \
-          kInput64bitsImm##input_imm)                                        \
-    }
+#define DEFINE_TEST_NEON_2OPIMM_FP(mnemonic, input, input_imm) \
+  TEST(mnemonic##_2S_2OPIMM) {                                 \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                     \
+                                 2S,                           \
+                                 2S,                           \
+                                 kInputFloat##Basic,           \
+                                 kInput32bitsImm##input_imm)   \
+  }                                                            \
+  TEST(mnemonic##_4S_2OPIMM) {                                 \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                     \
+                                 4S,                           \
+                                 4S,                           \
+                                 kInputFloat##input,           \
+                                 kInput32bitsImm##input_imm)   \
+  }                                                            \
+  TEST(mnemonic##_2D_2OPIMM) {                                 \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                     \
+                                 2D,                           \
+                                 2D,                           \
+                                 kInputDouble##input,          \
+                                 kInput64bitsImm##input_imm)   \
+  }
 
-#define DEFINE_TEST_NEON_2OPIMM_FP_SCALAR(mnemonic, input, input_imm)        \
-    TEST(mnemonic##_S_2OPIMM) {                                              \
-      CALL_TEST_NEON_HELPER_2OPIMM(                                          \
-          mnemonic,                                                          \
-          S, S,                                                              \
-          kInputFloat##Basic,                                                \
-          kInput32bitsImm##input_imm)                                        \
-    }                                                                        \
-    TEST(mnemonic##_D_2OPIMM) {                                              \
-      CALL_TEST_NEON_HELPER_2OPIMM(                                          \
-          mnemonic,                                                          \
-          D, D,                                                              \
-          kInputDouble##input,                                               \
-          kInput64bitsImm##input_imm)                                        \
-    }
+#define DEFINE_TEST_NEON_2OPIMM_FP_SCALAR(mnemonic, input, input_imm) \
+  TEST(mnemonic##_S_2OPIMM) {                                         \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                            \
+                                 S,                                   \
+                                 S,                                   \
+                                 kInputFloat##Basic,                  \
+                                 kInput32bitsImm##input_imm)          \
+  }                                                                   \
+  TEST(mnemonic##_D_2OPIMM) {                                         \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                            \
+                                 D,                                   \
+                                 D,                                   \
+                                 kInputDouble##input,                 \
+                                 kInput64bitsImm##input_imm)          \
+  }
 
-#define DEFINE_TEST_NEON_2OPIMM_SD(mnemonic, input, input_imm)               \
-    TEST(mnemonic##_2S_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   2S, 2S,                                   \
-                                   kInput32bits##input,                      \
-                                   kInput32bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##_4S_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   4S, 4S,                                   \
-                                   kInput32bits##input,                      \
-                                   kInput32bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##_2D_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   2D, 2D,                                   \
-                                   kInput64bits##input,                      \
-                                   kInput64bitsImm##input_imm);              \
-    }
+#define DEFINE_TEST_NEON_2OPIMM_SD(mnemonic, input, input_imm) \
+  TEST(mnemonic##_2S_2OPIMM) {                                 \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                     \
+                                 2S,                           \
+                                 2S,                           \
+                                 kInput32bits##input,          \
+                                 kInput32bitsImm##input_imm);  \
+  }                                                            \
+  TEST(mnemonic##_4S_2OPIMM) {                                 \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                     \
+                                 4S,                           \
+                                 4S,                           \
+                                 kInput32bits##input,          \
+                                 kInput32bitsImm##input_imm);  \
+  }                                                            \
+  TEST(mnemonic##_2D_2OPIMM) {                                 \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                     \
+                                 2D,                           \
+                                 2D,                           \
+                                 kInput64bits##input,          \
+                                 kInput64bitsImm##input_imm);  \
+  }
 
-#define DEFINE_TEST_NEON_2OPIMM_SCALAR_D(mnemonic, input, input_imm)         \
-    TEST(mnemonic##_D_2OPIMM) {                                              \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   D, D,                                     \
-                                   kInput64bits##input,                      \
-                                   kInput64bitsImm##input_imm);              \
-    }
+#define DEFINE_TEST_NEON_2OPIMM_SCALAR_D(mnemonic, input, input_imm) \
+  TEST(mnemonic##_D_2OPIMM) {                                        \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                           \
+                                 D,                                  \
+                                 D,                                  \
+                                 kInput64bits##input,                \
+                                 kInput64bitsImm##input_imm);        \
+  }
 
-#define DEFINE_TEST_NEON_2OPIMM_SCALAR_SD(mnemonic, input, input_imm)        \
-    TEST(mnemonic##_S_2OPIMM) {                                              \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   S, S,                                     \
-                                   kInput32bits##input,                      \
-                                   kInput32bitsImm##input_imm);              \
-    }                                                                        \
-    DEFINE_TEST_NEON_2OPIMM_SCALAR_D(mnemonic, input, input_imm)
+#define DEFINE_TEST_NEON_2OPIMM_SCALAR_SD(mnemonic, input, input_imm) \
+  TEST(mnemonic##_S_2OPIMM) {                                         \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                            \
+                                 S,                                   \
+                                 S,                                   \
+                                 kInput32bits##input,                 \
+                                 kInput32bitsImm##input_imm);         \
+  }                                                                   \
+  DEFINE_TEST_NEON_2OPIMM_SCALAR_D(mnemonic, input, input_imm)
 
-#define DEFINE_TEST_NEON_2OPIMM_FP_SCALAR_D(mnemonic, input, input_imm)      \
-    TEST(mnemonic##_D_2OPIMM) {                                              \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   D, D,                                     \
-                                   kInputDouble##input,                      \
-                                   kInputDoubleImm##input_imm);              \
-    }
+#define DEFINE_TEST_NEON_2OPIMM_FP_SCALAR_D(mnemonic, input, input_imm) \
+  TEST(mnemonic##_D_2OPIMM) {                                           \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                              \
+                                 D,                                     \
+                                 D,                                     \
+                                 kInputDouble##input,                   \
+                                 kInputDoubleImm##input_imm);           \
+  }
 
-#define DEFINE_TEST_NEON_2OPIMM_FP_SCALAR_SD(mnemonic, input, input_imm)     \
-    TEST(mnemonic##_S_2OPIMM) {                                              \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   S, S,                                     \
-                                   kInputFloat##input,                       \
-                                   kInputDoubleImm##input_imm);              \
-    }                                                                        \
-    DEFINE_TEST_NEON_2OPIMM_FP_SCALAR_D(mnemonic, input, input_imm)
+#define DEFINE_TEST_NEON_2OPIMM_FP_SCALAR_SD(mnemonic, input, input_imm) \
+  TEST(mnemonic##_S_2OPIMM) {                                            \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                               \
+                                 S,                                      \
+                                 S,                                      \
+                                 kInputFloat##input,                     \
+                                 kInputDoubleImm##input_imm);            \
+  }                                                                      \
+  DEFINE_TEST_NEON_2OPIMM_FP_SCALAR_D(mnemonic, input, input_imm)
 
-#define DEFINE_TEST_NEON_2OPIMM_SCALAR(mnemonic, input, input_imm)           \
-    TEST(mnemonic##_B_2OPIMM) {                                              \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   B, B,                                     \
-                                   kInput8bits##input,                       \
-                                   kInput8bitsImm##input_imm);               \
-    }                                                                        \
-    TEST(mnemonic##_H_2OPIMM) {                                              \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   H, H,                                     \
-                                   kInput16bits##input,                      \
-                                   kInput16bitsImm##input_imm);              \
-    }                                                                        \
-    DEFINE_TEST_NEON_2OPIMM_SCALAR_SD(mnemonic, input, input_imm)
+#define DEFINE_TEST_NEON_2OPIMM_SCALAR(mnemonic, input, input_imm) \
+  TEST(mnemonic##_B_2OPIMM) {                                      \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                         \
+                                 B,                                \
+                                 B,                                \
+                                 kInput8bits##input,               \
+                                 kInput8bitsImm##input_imm);       \
+  }                                                                \
+  TEST(mnemonic##_H_2OPIMM) {                                      \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                         \
+                                 H,                                \
+                                 H,                                \
+                                 kInput16bits##input,              \
+                                 kInput16bitsImm##input_imm);      \
+  }                                                                \
+  DEFINE_TEST_NEON_2OPIMM_SCALAR_SD(mnemonic, input, input_imm)
 
-#define DEFINE_TEST_NEON_2OPIMM_LONG(mnemonic, input, input_imm)             \
-    TEST(mnemonic##_8H_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   8H, 8B,                                   \
-                                   kInput8bits##input,                       \
-                                   kInput8bitsImm##input_imm);               \
-    }                                                                        \
-    TEST(mnemonic##_4S_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   4S, 4H,                                   \
-                                   kInput16bits##input,                      \
-                                   kInput16bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##_2D_2OPIMM) {                                             \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                                 \
-                                   2D, 2S,                                   \
-                                   kInput32bits##input,                      \
-                                   kInput32bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##2_8H_2OPIMM) {                                            \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2,                              \
-                                   8H, 16B,                                  \
-                                   kInput8bits##input,                       \
-                                   kInput8bitsImm##input_imm);               \
-    }                                                                        \
-    TEST(mnemonic##2_4S_2OPIMM) {                                            \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2,                              \
-                                   4S, 8H,                                   \
-                                   kInput16bits##input,                      \
-                                   kInput16bitsImm##input_imm);              \
-    }                                                                        \
-    TEST(mnemonic##2_2D_2OPIMM) {                                            \
-      CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2,                              \
-                                   2D, 4S,                                   \
-                                   kInput32bits##input,                      \
-                                   kInput32bitsImm##input_imm);              \
-    }
+#define DEFINE_TEST_NEON_2OPIMM_LONG(mnemonic, input, input_imm) \
+  TEST(mnemonic##_8H_2OPIMM) {                                   \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                       \
+                                 8H,                             \
+                                 8B,                             \
+                                 kInput8bits##input,             \
+                                 kInput8bitsImm##input_imm);     \
+  }                                                              \
+  TEST(mnemonic##_4S_2OPIMM) {                                   \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                       \
+                                 4S,                             \
+                                 4H,                             \
+                                 kInput16bits##input,            \
+                                 kInput16bitsImm##input_imm);    \
+  }                                                              \
+  TEST(mnemonic##_2D_2OPIMM) {                                   \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic,                       \
+                                 2D,                             \
+                                 2S,                             \
+                                 kInput32bits##input,            \
+                                 kInput32bitsImm##input_imm);    \
+  }                                                              \
+  TEST(mnemonic##2_8H_2OPIMM) {                                  \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2,                    \
+                                 8H,                             \
+                                 16B,                            \
+                                 kInput8bits##input,             \
+                                 kInput8bitsImm##input_imm);     \
+  }                                                              \
+  TEST(mnemonic##2_4S_2OPIMM) {                                  \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2,                    \
+                                 4S,                             \
+                                 8H,                             \
+                                 kInput16bits##input,            \
+                                 kInput16bitsImm##input_imm);    \
+  }                                                              \
+  TEST(mnemonic##2_2D_2OPIMM) {                                  \
+    CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2,                    \
+                                 2D,                             \
+                                 4S,                             \
+                                 kInput32bits##input,            \
+                                 kInput32bitsImm##input_imm);    \
+  }
 
-#define CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                            \
-                                        vdform, vnform, vmform,              \
-                                        input_d, input_n,                    \
-                                        input_m, indices) {                  \
-    CALL_TEST_NEON_HELPER_ByElement(mnemonic,                                \
-                                    vdform, vnform, vmform,                  \
-                                    input_d, input_n,                        \
-                                    input_m, indices);                       \
-    }
+#define CALL_TEST_NEON_HELPER_BYELEMENT(                                  \
+    mnemonic, vdform, vnform, vmform, input_d, input_n, input_m, indices) \
+  {                                                                       \
+    CALL_TEST_NEON_HELPER_ByElement(mnemonic,                             \
+                                    vdform,                               \
+                                    vnform,                               \
+                                    vmform,                               \
+                                    input_d,                              \
+                                    input_n,                              \
+                                    input_m,                              \
+                                    indices);                             \
+  }
 
-#define DEFINE_TEST_NEON_BYELEMENT(mnemonic, input_d, input_n, input_m)      \
-    TEST(mnemonic##_4H_4H_H) {                                               \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      4H, 4H, H,                             \
-                                      kInput16bits##input_d,                 \
-                                      kInput16bits##input_n,                 \
-                                      kInput16bits##input_m,                 \
-                                      kInputHIndices);                       \
-    }                                                                        \
-    TEST(mnemonic##_8H_8H_H) {                                               \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      8H, 8H, H,                             \
-                                      kInput16bits##input_d,                 \
-                                      kInput16bits##input_n,                 \
-                                      kInput16bits##input_m,                 \
-                                      kInputHIndices);                       \
-    }                                                                        \
-    TEST(mnemonic##_2S_2S_S) {                                               \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      2S, 2S, S,                             \
-                                      kInput32bits##input_d,                 \
-                                      kInput32bits##input_n,                 \
-                                      kInput32bits##input_m,                 \
-                                      kInputSIndices);                       \
-    }                                                                        \
-    TEST(mnemonic##_4S_4S_S) {                                               \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      4S, 4S, S,                             \
-                                      kInput32bits##input_d,                 \
-                                      kInput32bits##input_n,                 \
-                                      kInput32bits##input_m,                 \
-                                      kInputSIndices);                       \
-    }
+#define DEFINE_TEST_NEON_BYELEMENT(mnemonic, input_d, input_n, input_m) \
+  TEST(mnemonic##_4H_4H_H) {                                            \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                           \
+                                    4H,                                 \
+                                    4H,                                 \
+                                    H,                                  \
+                                    kInput16bits##input_d,              \
+                                    kInput16bits##input_n,              \
+                                    kInput16bits##input_m,              \
+                                    kInputHIndices);                    \
+  }                                                                     \
+  TEST(mnemonic##_8H_8H_H) {                                            \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                           \
+                                    8H,                                 \
+                                    8H,                                 \
+                                    H,                                  \
+                                    kInput16bits##input_d,              \
+                                    kInput16bits##input_n,              \
+                                    kInput16bits##input_m,              \
+                                    kInputHIndices);                    \
+  }                                                                     \
+  TEST(mnemonic##_2S_2S_S) {                                            \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                           \
+                                    2S,                                 \
+                                    2S,                                 \
+                                    S,                                  \
+                                    kInput32bits##input_d,              \
+                                    kInput32bits##input_n,              \
+                                    kInput32bits##input_m,              \
+                                    kInputSIndices);                    \
+  }                                                                     \
+  TEST(mnemonic##_4S_4S_S) {                                            \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                           \
+                                    4S,                                 \
+                                    4S,                                 \
+                                    S,                                  \
+                                    kInput32bits##input_d,              \
+                                    kInput32bits##input_n,              \
+                                    kInput32bits##input_m,              \
+                                    kInputSIndices);                    \
+  }
 
-#define DEFINE_TEST_NEON_BYELEMENT_SCALAR(mnemonic,                          \
-                                          input_d, input_n, input_m)         \
-    TEST(mnemonic##_H_H_H) {                                                 \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      H, H, H,                               \
-                                      kInput16bits##input_d,                 \
-                                      kInput16bits##input_n,                 \
-                                      kInput16bits##input_m,                 \
-                                      kInputHIndices);                       \
-    }                                                                        \
-    TEST(mnemonic##_S_S_S) {                                                 \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      S, S, S,                               \
-                                      kInput32bits##input_d,                 \
-                                      kInput32bits##input_n,                 \
-                                      kInput32bits##input_m,                 \
-                                      kInputSIndices);                       \
-    }
+#define DEFINE_TEST_NEON_BYELEMENT_SCALAR(mnemonic, input_d, input_n, input_m) \
+  TEST(mnemonic##_H_H_H) {                                                     \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                                  \
+                                    H,                                         \
+                                    H,                                         \
+                                    H,                                         \
+                                    kInput16bits##input_d,                     \
+                                    kInput16bits##input_n,                     \
+                                    kInput16bits##input_m,                     \
+                                    kInputHIndices);                           \
+  }                                                                            \
+  TEST(mnemonic##_S_S_S) {                                                     \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                                  \
+                                    S,                                         \
+                                    S,                                         \
+                                    S,                                         \
+                                    kInput32bits##input_d,                     \
+                                    kInput32bits##input_n,                     \
+                                    kInput32bits##input_m,                     \
+                                    kInputSIndices);                           \
+  }
 
-#define DEFINE_TEST_NEON_FP_BYELEMENT(mnemonic, input_d, input_n, input_m)   \
-    TEST(mnemonic##_2S_2S_S) {                                               \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      2S, 2S, S,                             \
-                                      kInputFloat##input_d,                  \
-                                      kInputFloat##input_n,                  \
-                                      kInputFloat##input_m,                  \
-                                      kInputSIndices);                       \
-    }                                                                        \
-    TEST(mnemonic##_4S_4S_S) {                                               \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      4S, 4S, S,                             \
-                                      kInputFloat##input_d,                  \
-                                      kInputFloat##input_n,                  \
-                                      kInputFloat##input_m,                  \
-                                      kInputSIndices);                       \
-    }                                                                        \
-    TEST(mnemonic##_2D_2D_D) {                                               \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      2D, 2D, D,                             \
-                                      kInputDouble##input_d,                 \
-                                      kInputDouble##input_n,                 \
-                                      kInputDouble##input_m,                 \
-                                      kInputDIndices);                       \
-    }                                                                        \
+#define DEFINE_TEST_NEON_FP_BYELEMENT(mnemonic, input_d, input_n, input_m) \
+  TEST(mnemonic##_2S_2S_S) {                                               \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
+                                    2S,                                    \
+                                    2S,                                    \
+                                    S,                                     \
+                                    kInputFloat##input_d,                  \
+                                    kInputFloat##input_n,                  \
+                                    kInputFloat##input_m,                  \
+                                    kInputSIndices);                       \
+  }                                                                        \
+  TEST(mnemonic##_4S_4S_S) {                                               \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
+                                    4S,                                    \
+                                    4S,                                    \
+                                    S,                                     \
+                                    kInputFloat##input_d,                  \
+                                    kInputFloat##input_n,                  \
+                                    kInputFloat##input_m,                  \
+                                    kInputSIndices);                       \
+  }                                                                        \
+  TEST(mnemonic##_2D_2D_D) {                                               \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
+                                    2D,                                    \
+                                    2D,                                    \
+                                    D,                                     \
+                                    kInputDouble##input_d,                 \
+                                    kInputDouble##input_n,                 \
+                                    kInputDouble##input_m,                 \
+                                    kInputDIndices);                       \
+  }
 
-#define DEFINE_TEST_NEON_FP_BYELEMENT_SCALAR(mnemonic, inp_d, inp_n, inp_m)  \
-    TEST(mnemonic##_S_S_S) {                                                 \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      S, S, S,                               \
-                                      kInputFloat##inp_d,                    \
-                                      kInputFloat##inp_n,                    \
-                                      kInputFloat##inp_m,                    \
-                                      kInputSIndices);                       \
-    }                                                                        \
-    TEST(mnemonic##_D_D_D) {                                                 \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      D, D, D,                               \
-                                      kInputDouble##inp_d,                   \
-                                      kInputDouble##inp_n,                   \
-                                      kInputDouble##inp_m,                   \
-                                      kInputDIndices);                       \
-    }                                                                        \
+#define DEFINE_TEST_NEON_FP_BYELEMENT_SCALAR(mnemonic, inp_d, inp_n, inp_m) \
+  TEST(mnemonic##_S_S_S) {                                                  \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                               \
+                                    S,                                      \
+                                    S,                                      \
+                                    S,                                      \
+                                    kInputFloat##inp_d,                     \
+                                    kInputFloat##inp_n,                     \
+                                    kInputFloat##inp_m,                     \
+                                    kInputSIndices);                        \
+  }                                                                         \
+  TEST(mnemonic##_D_D_D) {                                                  \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                               \
+                                    D,                                      \
+                                    D,                                      \
+                                    D,                                      \
+                                    kInputDouble##inp_d,                    \
+                                    kInputDouble##inp_n,                    \
+                                    kInputDouble##inp_m,                    \
+                                    kInputDIndices);                        \
+  }
 
 
 #define DEFINE_TEST_NEON_BYELEMENT_DIFF(mnemonic, input_d, input_n, input_m) \
-    TEST(mnemonic##_4S_4H_H) {                                               \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      4S, 4H, H,                             \
-                                      kInput32bits##input_d,                 \
-                                      kInput16bits##input_n,                 \
-                                      kInput16bits##input_m,                 \
-                                      kInputHIndices);                       \
-    }                                                                        \
-    TEST(mnemonic##2_4S_8H_H) {                                              \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic##2,                           \
-                                      4S, 8H, H,                             \
-                                      kInput32bits##input_d,                 \
-                                      kInput16bits##input_n,                 \
-                                      kInput16bits##input_m,                 \
-                                      kInputHIndices);                       \
-    }                                                                        \
-    TEST(mnemonic##_2D_2S_S) {                                               \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      2D, 2S, S,                             \
-                                      kInput64bits##input_d,                 \
-                                      kInput32bits##input_n,                 \
-                                      kInput32bits##input_m,                 \
-                                      kInputSIndices);                       \
-    }                                                                        \
-    TEST(mnemonic##2_2D_4S_S) {                                              \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic##2,                           \
-                                      2D, 4S, S,                             \
-                                      kInput64bits##input_d,                 \
-                                      kInput32bits##input_n,                 \
-                                      kInput32bits##input_m,                 \
-                                      kInputSIndices);                       \
-    }
-
-#define DEFINE_TEST_NEON_BYELEMENT_DIFF_SCALAR(mnemonic,                     \
-                                               input_d, input_n, input_m)    \
-    TEST(mnemonic##_S_H_H) {                                                 \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      S, H, H,                               \
-                                      kInput32bits##input_d,                 \
-                                      kInput16bits##input_n,                 \
-                                      kInput16bits##input_m,                 \
-                                      kInputHIndices);                       \
-    }                                                                        \
-    TEST(mnemonic##_D_S_S) {                                                 \
-      CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                              \
-                                      D, S, S,                               \
-                                      kInput64bits##input_d,                 \
-                                      kInput32bits##input_n,                 \
-                                      kInput32bits##input_m,                 \
-                                      kInputSIndices);                       \
-    }
-
-
-#define CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic,                              \
-                                      variant,                               \
-                                      input_d,                               \
-                                      input_imm1,                            \
-                                      input_n,                               \
-                                      input_imm2) {                          \
-    CALL_TEST_NEON_HELPER_OpImmOpImm(&MacroAssembler::mnemonic,              \
-                                     mnemonic,                               \
-                                     variant, variant,                       \
-                                     input_d, input_imm1,                    \
-                                     input_n, input_imm2);                   \
-    }
-
-#define DEFINE_TEST_NEON_2OP2IMM(mnemonic,                                   \
-                                 input_d, input_imm1,                        \
-                                 input_n, input_imm2)                        \
-    TEST(mnemonic##_B) {                                                     \
-      CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic,                                \
-                                    16B,                                     \
-                                    kInput8bits##input_d,                    \
-                                    kInput8bitsImm##input_imm1,              \
-                                    kInput8bits##input_n,                    \
-                                    kInput8bitsImm##input_imm2);             \
-    }                                                                        \
-    TEST(mnemonic##_H) {                                                     \
-      CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic,                                \
-                                    8H,                                      \
-                                    kInput16bits##input_d,                   \
-                                    kInput16bitsImm##input_imm1,             \
-                                    kInput16bits##input_n,                   \
-                                    kInput16bitsImm##input_imm2);            \
-    }                                                                        \
-    TEST(mnemonic##_S) {                                                     \
-      CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic,                                \
+  TEST(mnemonic##_4S_4H_H) {                                                 \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                                \
                                     4S,                                      \
+                                    4H,                                      \
+                                    H,                                       \
                                     kInput32bits##input_d,                   \
-                                    kInput32bitsImm##input_imm1,             \
-                                    kInput32bits##input_n,                   \
-                                    kInput32bitsImm##input_imm2);            \
-    }                                                                        \
-    TEST(mnemonic##_D) {                                                     \
-      CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic,                                \
+                                    kInput16bits##input_n,                   \
+                                    kInput16bits##input_m,                   \
+                                    kInputHIndices);                         \
+  }                                                                          \
+  TEST(mnemonic##2_4S_8H_H) {                                                \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic##2,                             \
+                                    4S,                                      \
+                                    8H,                                      \
+                                    H,                                       \
+                                    kInput32bits##input_d,                   \
+                                    kInput16bits##input_n,                   \
+                                    kInput16bits##input_m,                   \
+                                    kInputHIndices);                         \
+  }                                                                          \
+  TEST(mnemonic##_2D_2S_S) {                                                 \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,                                \
                                     2D,                                      \
+                                    2S,                                      \
+                                    S,                                       \
                                     kInput64bits##input_d,                   \
-                                    kInput64bitsImm##input_imm1,             \
-                                    kInput64bits##input_n,                   \
-                                    kInput64bitsImm##input_imm2);            \
-    }
+                                    kInput32bits##input_n,                   \
+                                    kInput32bits##input_m,                   \
+                                    kInputSIndices);                         \
+  }                                                                          \
+  TEST(mnemonic##2_2D_4S_S) {                                                \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic##2,                             \
+                                    2D,                                      \
+                                    4S,                                      \
+                                    S,                                       \
+                                    kInput64bits##input_d,                   \
+                                    kInput32bits##input_n,                   \
+                                    kInput32bits##input_m,                   \
+                                    kInputSIndices);                         \
+  }
+
+#define DEFINE_TEST_NEON_BYELEMENT_DIFF_SCALAR(            \
+    mnemonic, input_d, input_n, input_m)                   \
+  TEST(mnemonic##_S_H_H) {                                 \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,              \
+                                    S,                     \
+                                    H,                     \
+                                    H,                     \
+                                    kInput32bits##input_d, \
+                                    kInput16bits##input_n, \
+                                    kInput16bits##input_m, \
+                                    kInputHIndices);       \
+  }                                                        \
+  TEST(mnemonic##_D_S_S) {                                 \
+    CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic,              \
+                                    D,                     \
+                                    S,                     \
+                                    S,                     \
+                                    kInput64bits##input_d, \
+                                    kInput32bits##input_n, \
+                                    kInput32bits##input_m, \
+                                    kInputSIndices);       \
+  }
+
+
+#define CALL_TEST_NEON_HELPER_2OP2IMM(                           \
+    mnemonic, variant, input_d, input_imm1, input_n, input_imm2) \
+  {                                                              \
+    CALL_TEST_NEON_HELPER_OpImmOpImm(&MacroAssembler::mnemonic,  \
+                                     mnemonic,                   \
+                                     variant,                    \
+                                     variant,                    \
+                                     input_d,                    \
+                                     input_imm1,                 \
+                                     input_n,                    \
+                                     input_imm2);                \
+  }
+
+#define DEFINE_TEST_NEON_2OP2IMM(                               \
+    mnemonic, input_d, input_imm1, input_n, input_imm2)         \
+  TEST(mnemonic##_B) {                                          \
+    CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic,                     \
+                                  16B,                          \
+                                  kInput8bits##input_d,         \
+                                  kInput8bitsImm##input_imm1,   \
+                                  kInput8bits##input_n,         \
+                                  kInput8bitsImm##input_imm2);  \
+  }                                                             \
+  TEST(mnemonic##_H) {                                          \
+    CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic,                     \
+                                  8H,                           \
+                                  kInput16bits##input_d,        \
+                                  kInput16bitsImm##input_imm1,  \
+                                  kInput16bits##input_n,        \
+                                  kInput16bitsImm##input_imm2); \
+  }                                                             \
+  TEST(mnemonic##_S) {                                          \
+    CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic,                     \
+                                  4S,                           \
+                                  kInput32bits##input_d,        \
+                                  kInput32bitsImm##input_imm1,  \
+                                  kInput32bits##input_n,        \
+                                  kInput32bitsImm##input_imm2); \
+  }                                                             \
+  TEST(mnemonic##_D) {                                          \
+    CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic,                     \
+                                  2D,                           \
+                                  kInput64bits##input_d,        \
+                                  kInput64bitsImm##input_imm1,  \
+                                  kInput64bits##input_n,        \
+                                  kInput64bitsImm##input_imm2); \
+  }
 
 
 // Advanced SIMD copy.
-DEFINE_TEST_NEON_2OP2IMM(ins,
-                         Basic, LaneCountFromZero,
-                         Basic, LaneCountFromZero)
+DEFINE_TEST_NEON_2OP2IMM(
+    ins, Basic, LaneCountFromZero, Basic, LaneCountFromZero)
 DEFINE_TEST_NEON_2OPIMM_COPY(dup, Basic, LaneCountFromZero)
 
 
@@ -3890,7 +4242,8 @@
 DEFINE_TEST_NEON_2OPIMM_NARROW(sqshrn, Basic, TypeWidth)
 DEFINE_TEST_NEON_2OPIMM_NARROW(sqrshrn, Basic, TypeWidth)
 DEFINE_TEST_NEON_2OPIMM_LONG(sshll, Basic, TypeWidthFromZero)
-DEFINE_TEST_NEON_2OPIMM_SD(scvtf, FixedPointConversions, \
+DEFINE_TEST_NEON_2OPIMM_SD(scvtf,
+                           FixedPointConversions,
                            TypeWidthFromZeroToWidth)
 DEFINE_TEST_NEON_2OPIMM_FP(fcvtzs, Conversions, TypeWidthFromZeroToWidth)
 DEFINE_TEST_NEON_2OPIMM(ushr, Basic, TypeWidth)
@@ -3906,7 +4259,8 @@
 DEFINE_TEST_NEON_2OPIMM_NARROW(uqshrn, Basic, TypeWidth)
 DEFINE_TEST_NEON_2OPIMM_NARROW(uqrshrn, Basic, TypeWidth)
 DEFINE_TEST_NEON_2OPIMM_LONG(ushll, Basic, TypeWidthFromZero)
-DEFINE_TEST_NEON_2OPIMM_SD(ucvtf, FixedPointConversions, \
+DEFINE_TEST_NEON_2OPIMM_SD(ucvtf,
+                           FixedPointConversions,
                            TypeWidthFromZeroToWidth)
 DEFINE_TEST_NEON_2OPIMM_FP(fcvtzu, Conversions, TypeWidthFromZeroToWidth)
 
@@ -3920,7 +4274,8 @@
 DEFINE_TEST_NEON_2OPIMM_SCALAR(sqshl, Basic, TypeWidthFromZero)
 DEFINE_TEST_NEON_2OPIMM_SCALAR_NARROW(sqshrn, Basic, TypeWidth)
 DEFINE_TEST_NEON_2OPIMM_SCALAR_NARROW(sqrshrn, Basic, TypeWidth)
-DEFINE_TEST_NEON_2OPIMM_SCALAR_SD(scvtf, FixedPointConversions, \
+DEFINE_TEST_NEON_2OPIMM_SCALAR_SD(scvtf,
+                                  FixedPointConversions,
                                   TypeWidthFromZeroToWidth)
 DEFINE_TEST_NEON_2OPIMM_FP_SCALAR(fcvtzs, Conversions, TypeWidthFromZeroToWidth)
 DEFINE_TEST_NEON_2OPIMM_SCALAR_D(ushr, Basic, TypeWidth)
@@ -3935,7 +4290,8 @@
 DEFINE_TEST_NEON_2OPIMM_SCALAR_NARROW(sqrshrun, Basic, TypeWidth)
 DEFINE_TEST_NEON_2OPIMM_SCALAR_NARROW(uqshrn, Basic, TypeWidth)
 DEFINE_TEST_NEON_2OPIMM_SCALAR_NARROW(uqrshrn, Basic, TypeWidth)
-DEFINE_TEST_NEON_2OPIMM_SCALAR_SD(ucvtf, FixedPointConversions, \
+DEFINE_TEST_NEON_2OPIMM_SCALAR_SD(ucvtf,
+                                  FixedPointConversions,
                                   TypeWidthFromZeroToWidth)
 DEFINE_TEST_NEON_2OPIMM_FP_SCALAR(fcvtzu, Conversions, TypeWidthFromZeroToWidth)
 
diff --git a/test/aarch64/test-simulator-inputs-aarch64.h b/test/aarch64/test-simulator-inputs-aarch64.h
index a398625..049ce23 100644
--- a/test/aarch64/test-simulator-inputs-aarch64.h
+++ b/test/aarch64/test-simulator-inputs-aarch64.h
@@ -41,6 +41,7 @@
 #endif
 #define VIXL_AARCH64_TEST_SIMULATOR_INPUTS_AARCH64_H_
 
+// clang-format off
 
 // Double values, stored as uint64_t representations. This ensures exact bit
 // representation, and avoids the loss of NaNs and suchlike through C++ casts.
@@ -849,137 +850,100 @@
   0xfffffffffffffffe,                                                         \
   0xffffffffffffffff
 
+// clang-format on
 
 // For most 2- and 3-op instructions, use only basic inputs. Because every
 // combination is tested, the length of the output trace is very sensitive to
 // the length of this list.
-static const uint64_t kInputDoubleBasic[] = { INPUT_DOUBLE_BASIC };
-static const uint32_t kInputFloatBasic[] = { INPUT_FLOAT_BASIC };
+static const uint64_t kInputDoubleBasic[] = {INPUT_DOUBLE_BASIC};
+static const uint32_t kInputFloatBasic[] = {INPUT_FLOAT_BASIC};
 
 // TODO: Define different values when the traces file is split.
 #define INPUT_DOUBLE_ACC_DESTINATION INPUT_DOUBLE_BASIC
 #define INPUT_FLOAT_ACC_DESTINATION INPUT_FLOAT_BASIC
 
 static const uint64_t kInputDoubleAccDestination[] = {
-  INPUT_DOUBLE_ACC_DESTINATION
-};
+    INPUT_DOUBLE_ACC_DESTINATION};
 
 static const uint32_t kInputFloatAccDestination[] = {
-  INPUT_FLOAT_ACC_DESTINATION
-};
+    INPUT_FLOAT_ACC_DESTINATION};
 
 // For conversions, include several extra inputs.
 static const uint64_t kInputDoubleConversions[] = {
-  INPUT_DOUBLE_BASIC
-  INPUT_DOUBLE_CONVERSIONS
-};
+    INPUT_DOUBLE_BASIC INPUT_DOUBLE_CONVERSIONS};
 
 static const uint32_t kInputFloatConversions[] = {
-  INPUT_FLOAT_BASIC
-  INPUT_FLOAT_CONVERSIONS
-};
+    INPUT_FLOAT_BASIC INPUT_FLOAT_CONVERSIONS};
 
-static const uint64_t kInput64bitsFixedPointConversions[] = {
-  INPUT_64BITS_BASIC,
-  INPUT_64BITS_FIXEDPOINT_CONVERSIONS
-};
+static const uint64_t kInput64bitsFixedPointConversions[] =
+    {INPUT_64BITS_BASIC, INPUT_64BITS_FIXEDPOINT_CONVERSIONS};
 
-static const uint32_t kInput32bitsFixedPointConversions[] = {
-  INPUT_32BITS_BASIC,
-  INPUT_32BITS_FIXEDPOINT_CONVERSIONS
-};
+static const uint32_t kInput32bitsFixedPointConversions[] =
+    {INPUT_32BITS_BASIC, INPUT_32BITS_FIXEDPOINT_CONVERSIONS};
 
 static const uint16_t kInputFloat16Conversions[] = {
-  INPUT_FLOAT16_BASIC
-  INPUT_FLOAT16_CONVERSIONS
-};
+    INPUT_FLOAT16_BASIC INPUT_FLOAT16_CONVERSIONS};
 
-static const uint8_t kInput8bitsBasic[] = {
-  INPUT_8BITS_BASIC
-};
+static const uint8_t kInput8bitsBasic[] = {INPUT_8BITS_BASIC};
 
-static const uint16_t kInput16bitsBasic[] = {
-  INPUT_16BITS_BASIC
-};
+static const uint16_t kInput16bitsBasic[] = {INPUT_16BITS_BASIC};
 
-static const uint32_t kInput32bitsBasic[] = {
-  INPUT_32BITS_BASIC
-};
+static const uint32_t kInput32bitsBasic[] = {INPUT_32BITS_BASIC};
 
-static const uint64_t kInput64bitsBasic[] = {
-  INPUT_64BITS_BASIC
-};
+static const uint64_t kInput64bitsBasic[] = {INPUT_64BITS_BASIC};
 
-static const int kInput8bitsImmTypeWidth[] = {
-  INPUT_8BITS_IMM_TYPEWIDTH
-};
+static const int kInput8bitsImmTypeWidth[] = {INPUT_8BITS_IMM_TYPEWIDTH};
 
-static const int kInput16bitsImmTypeWidth[] = {
-  INPUT_16BITS_IMM_TYPEWIDTH
-};
+static const int kInput16bitsImmTypeWidth[] = {INPUT_16BITS_IMM_TYPEWIDTH};
 
-static const int kInput32bitsImmTypeWidth[] = {
-  INPUT_32BITS_IMM_TYPEWIDTH
-};
+static const int kInput32bitsImmTypeWidth[] = {INPUT_32BITS_IMM_TYPEWIDTH};
 
-static const int kInput64bitsImmTypeWidth[] = {
-  INPUT_64BITS_IMM_TYPEWIDTH
-};
+static const int kInput64bitsImmTypeWidth[] = {INPUT_64BITS_IMM_TYPEWIDTH};
 
 static const int kInput8bitsImmTypeWidthFromZero[] = {
-  INPUT_8BITS_IMM_TYPEWIDTH_FROMZERO
-};
+    INPUT_8BITS_IMM_TYPEWIDTH_FROMZERO};
 
 static const int kInput16bitsImmTypeWidthFromZero[] = {
-  INPUT_16BITS_IMM_TYPEWIDTH_FROMZERO
-};
+    INPUT_16BITS_IMM_TYPEWIDTH_FROMZERO};
 
 static const int kInput32bitsImmTypeWidthFromZero[] = {
-  INPUT_32BITS_IMM_TYPEWIDTH_FROMZERO
-};
+    INPUT_32BITS_IMM_TYPEWIDTH_FROMZERO};
 
 static const int kInput64bitsImmTypeWidthFromZero[] = {
-  INPUT_64BITS_IMM_TYPEWIDTH_FROMZERO
-};
+    INPUT_64BITS_IMM_TYPEWIDTH_FROMZERO};
 
 static const int kInput32bitsImmTypeWidthFromZeroToWidth[] = {
-  INPUT_32BITS_IMM_TYPEWIDTH_FROMZERO_TOWIDTH
-};
+    INPUT_32BITS_IMM_TYPEWIDTH_FROMZERO_TOWIDTH};
 
 static const int kInput64bitsImmTypeWidthFromZeroToWidth[] = {
-  INPUT_64BITS_IMM_TYPEWIDTH_FROMZERO_TOWIDTH
-};
+    INPUT_64BITS_IMM_TYPEWIDTH_FROMZERO_TOWIDTH};
 
 // These immediate values are used only in 'shll{2}' tests.
-static const int kInput8bitsImmSHLL[] = { 8 };
-static const int kInput16bitsImmSHLL[] = { 16 };
-static const int kInput32bitsImmSHLL[] = { 32 };
+static const int kInput8bitsImmSHLL[] = {8};
+static const int kInput16bitsImmSHLL[] = {16};
+static const int kInput32bitsImmSHLL[] = {32};
 
-static const double kInputDoubleImmZero[] = { 0.0 };
+static const double kInputDoubleImmZero[] = {0.0};
 
-static const int kInput8bitsImmZero[] = { 0 };
+static const int kInput8bitsImmZero[] = {0};
 
-static const int kInput16bitsImmZero[] = { 0 };
+static const int kInput16bitsImmZero[] = {0};
 
-static const int kInput32bitsImmZero[] = { 0 };
+static const int kInput32bitsImmZero[] = {0};
 
-static const int kInput64bitsImmZero[] = { 0 };
+static const int kInput64bitsImmZero[] = {0};
 
 static const int kInput8bitsImmLaneCountFromZero[] = {
-  INPUT_8BITS_IMM_LANECOUNT_FROMZERO
-};
+    INPUT_8BITS_IMM_LANECOUNT_FROMZERO};
 
 static const int kInput16bitsImmLaneCountFromZero[] = {
-  INPUT_16BITS_IMM_LANECOUNT_FROMZERO
-};
+    INPUT_16BITS_IMM_LANECOUNT_FROMZERO};
 
 static const int kInput32bitsImmLaneCountFromZero[] = {
-  INPUT_32BITS_IMM_LANECOUNT_FROMZERO
-};
+    INPUT_32BITS_IMM_LANECOUNT_FROMZERO};
 
 static const int kInput64bitsImmLaneCountFromZero[] = {
-  INPUT_64BITS_IMM_LANECOUNT_FROMZERO
-};
+    INPUT_64BITS_IMM_LANECOUNT_FROMZERO};
 
 // TODO: Define different values when the traces file is split.
 #define INPUT_8BITS_ACC_DESTINATION INPUT_8BITS_BASIC
@@ -988,30 +952,19 @@
 #define INPUT_64BITS_ACC_DESTINATION INPUT_64BITS_BASIC
 
 static const uint8_t kInput8bitsAccDestination[] = {
-  INPUT_8BITS_ACC_DESTINATION
-};
+    INPUT_8BITS_ACC_DESTINATION};
 
 static const uint16_t kInput16bitsAccDestination[] = {
-  INPUT_16BITS_ACC_DESTINATION
-};
+    INPUT_16BITS_ACC_DESTINATION};
 
 static const uint32_t kInput32bitsAccDestination[] = {
-  INPUT_32BITS_ACC_DESTINATION
-};
+    INPUT_32BITS_ACC_DESTINATION};
 
 static const uint64_t kInput64bitsAccDestination[] = {
-  INPUT_64BITS_ACC_DESTINATION
-};
+    INPUT_64BITS_ACC_DESTINATION};
 
-static const int kInputHIndices[] = {
-  0, 1, 2, 3,
-  4, 5, 6, 7
-};
+static const int kInputHIndices[] = {0, 1, 2, 3, 4, 5, 6, 7};
 
-static const int kInputSIndices[] = {
-  0, 1, 2, 3
-};
+static const int kInputSIndices[] = {0, 1, 2, 3};
 
-static const int kInputDIndices[] = {
-  0, 1
-};
+static const int kInputDIndices[] = {0, 1};
diff --git a/test/aarch64/test-simulator-traces-aarch64.h b/test/aarch64/test-simulator-traces-aarch64.h
index e9a9562..e374b0b 100644
--- a/test/aarch64/test-simulator-traces-aarch64.h
+++ b/test/aarch64/test-simulator-traces-aarch64.h
@@ -49,10 +49,10 @@
 // ---------------------------------------------------------------------
 // ADD DUMMY ARRAYS FOR NEW SIMULATOR TEST HERE.
 // ---------------------------------------------------------------------
-const uint64_t kExpected_dummy_64[] = { 0 };
+const uint64_t kExpected_dummy_64[] = {0};
 const size_t kExpectedCount_dummy_64 = 0;
 
-const uint32_t kExpected_dummy_32[] = { 0 };
+const uint32_t kExpected_dummy_32[] = {0};
 const size_t kExpectedCount_dummy_32 = 0;
 
 // ---------------------------------------------------------------------
diff --git a/test/aarch64/test-trace-aarch64.cc b/test/aarch64/test-trace-aarch64.cc
index a1a7927..673161e 100644
--- a/test/aarch64/test-trace-aarch64.cc
+++ b/test/aarch64/test-trace-aarch64.cc
@@ -48,7 +48,9 @@
 #define TEST(name) TEST_(TRACE_##name)
 
 static void GenerateTestSequenceBase(MacroAssembler* masm) {
-  CodeBufferCheckScope guard(masm, masm->GetBuffer()->GetRemainingBytes());
+  ExactAssemblyScope guard(masm,
+                           masm->GetBuffer()->GetRemainingBytes(),
+                           ExactAssemblyScope::kMaximumSize);
 
   __ adc(w3, w4, w5);
   __ adc(x6, x7, x8);
@@ -390,7 +392,9 @@
 
 
 static void GenerateTestSequenceFP(MacroAssembler* masm) {
-  CodeBufferCheckScope guard(masm, masm->GetBuffer()->GetRemainingBytes());
+  ExactAssemblyScope guard(masm,
+                           masm->GetBuffer()->GetRemainingBytes(),
+                           ExactAssemblyScope::kMaximumSize);
 
   // Scalar floating point instructions.
   __ fabd(d13, d2, d19);
@@ -602,7 +606,9 @@
 
 
 static void GenerateTestSequenceNEON(MacroAssembler* masm) {
-  CodeBufferCheckScope guard(masm, masm->GetBuffer()->GetRemainingBytes());
+  ExactAssemblyScope guard(masm,
+                           masm->GetBuffer()->GetRemainingBytes(),
+                           ExactAssemblyScope::kMaximumSize);
 
   // NEON integer instructions.
   __ abs(d19, d0);
@@ -775,9 +781,15 @@
   __ ext(v1.V16B(), v26.V16B(), v6.V16B(), 1);
   __ ext(v2.V8B(), v30.V8B(), v1.V8B(), 1);
   __ ld1(v18.V16B(), v19.V16B(), v20.V16B(), v21.V16B(), MemOperand(x0));
-  __ ld1(v23.V16B(), v24.V16B(), v25.V16B(), v26.V16B(),
+  __ ld1(v23.V16B(),
+         v24.V16B(),
+         v25.V16B(),
+         v26.V16B(),
          MemOperand(x1, x2, PostIndex));
-  __ ld1(v5.V16B(), v6.V16B(), v7.V16B(), v8.V16B(),
+  __ ld1(v5.V16B(),
+         v6.V16B(),
+         v7.V16B(),
+         v8.V16B(),
          MemOperand(x1, 64, PostIndex));
   __ ld1(v18.V16B(), v19.V16B(), v20.V16B(), MemOperand(x0));
   __ ld1(v13.V16B(), v14.V16B(), v15.V16B(), MemOperand(x1, x2, PostIndex));
@@ -789,9 +801,15 @@
   __ ld1(v21.V16B(), MemOperand(x1, x2, PostIndex));
   __ ld1(v4.V16B(), MemOperand(x1, 16, PostIndex));
   __ ld1(v4.V1D(), v5.V1D(), v6.V1D(), v7.V1D(), MemOperand(x0));
-  __ ld1(v17.V1D(), v18.V1D(), v19.V1D(), v20.V1D(),
+  __ ld1(v17.V1D(),
+         v18.V1D(),
+         v19.V1D(),
+         v20.V1D(),
          MemOperand(x1, x2, PostIndex));
-  __ ld1(v28.V1D(), v29.V1D(), v30.V1D(), v31.V1D(),
+  __ ld1(v28.V1D(),
+         v29.V1D(),
+         v30.V1D(),
+         v31.V1D(),
          MemOperand(x1, 32, PostIndex));
   __ ld1(v20.V1D(), v21.V1D(), v22.V1D(), MemOperand(x0));
   __ ld1(v19.V1D(), v20.V1D(), v21.V1D(), MemOperand(x1, x2, PostIndex));
@@ -803,9 +821,15 @@
   __ ld1(v11.V1D(), MemOperand(x1, x2, PostIndex));
   __ ld1(v29.V1D(), MemOperand(x1, 8, PostIndex));
   __ ld1(v28.V2D(), v29.V2D(), v30.V2D(), v31.V2D(), MemOperand(x0));
-  __ ld1(v8.V2D(), v9.V2D(), v10.V2D(), v11.V2D(),
+  __ ld1(v8.V2D(),
+         v9.V2D(),
+         v10.V2D(),
+         v11.V2D(),
          MemOperand(x1, x2, PostIndex));
-  __ ld1(v14.V2D(), v15.V2D(), v16.V2D(), v17.V2D(),
+  __ ld1(v14.V2D(),
+         v15.V2D(),
+         v16.V2D(),
+         v17.V2D(),
          MemOperand(x1, 64, PostIndex));
   __ ld1(v26.V2D(), v27.V2D(), v28.V2D(), MemOperand(x0));
   __ ld1(v5.V2D(), v6.V2D(), v7.V2D(), MemOperand(x1, x2, PostIndex));
@@ -817,9 +841,15 @@
   __ ld1(v6.V2D(), MemOperand(x1, x2, PostIndex));
   __ ld1(v15.V2D(), MemOperand(x1, 16, PostIndex));
   __ ld1(v30.V2S(), v31.V2S(), v0.V2S(), v1.V2S(), MemOperand(x0));
-  __ ld1(v24.V2S(), v25.V2S(), v26.V2S(), v27.V2S(),
+  __ ld1(v24.V2S(),
+         v25.V2S(),
+         v26.V2S(),
+         v27.V2S(),
          MemOperand(x1, x2, PostIndex));
-  __ ld1(v27.V2S(), v28.V2S(), v29.V2S(), v30.V2S(),
+  __ ld1(v27.V2S(),
+         v28.V2S(),
+         v29.V2S(),
+         v30.V2S(),
          MemOperand(x1, 32, PostIndex));
   __ ld1(v11.V2S(), v12.V2S(), v13.V2S(), MemOperand(x0));
   __ ld1(v8.V2S(), v9.V2S(), v10.V2S(), MemOperand(x1, x2, PostIndex));
@@ -831,7 +861,10 @@
   __ ld1(v0.V2S(), MemOperand(x1, x2, PostIndex));
   __ ld1(v11.V2S(), MemOperand(x1, 8, PostIndex));
   __ ld1(v16.V4H(), v17.V4H(), v18.V4H(), v19.V4H(), MemOperand(x0));
-  __ ld1(v24.V4H(), v25.V4H(), v26.V4H(), v27.V4H(),
+  __ ld1(v24.V4H(),
+         v25.V4H(),
+         v26.V4H(),
+         v27.V4H(),
          MemOperand(x1, x2, PostIndex));
   __ ld1(v1.V4H(), v2.V4H(), v3.V4H(), v4.V4H(), MemOperand(x1, 32, PostIndex));
   __ ld1(v30.V4H(), v31.V4H(), v0.V4H(), MemOperand(x0));
@@ -844,7 +877,10 @@
   __ ld1(v1.V4H(), MemOperand(x1, x2, PostIndex));
   __ ld1(v14.V4H(), MemOperand(x1, 8, PostIndex));
   __ ld1(v26.V4S(), v27.V4S(), v28.V4S(), v29.V4S(), MemOperand(x0));
-  __ ld1(v28.V4S(), v29.V4S(), v30.V4S(), v31.V4S(),
+  __ ld1(v28.V4S(),
+         v29.V4S(),
+         v30.V4S(),
+         v31.V4S(),
          MemOperand(x1, x2, PostIndex));
   __ ld1(v4.V4S(), v5.V4S(), v6.V4S(), v7.V4S(), MemOperand(x1, 64, PostIndex));
   __ ld1(v2.V4S(), v3.V4S(), v4.V4S(), MemOperand(x0));
@@ -858,7 +894,10 @@
   __ ld1(v0.V4S(), MemOperand(x1, 16, PostIndex));
   __ ld1(v17.V8B(), v18.V8B(), v19.V8B(), v20.V8B(), MemOperand(x0));
   __ ld1(v5.V8B(), v6.V8B(), v7.V8B(), v8.V8B(), MemOperand(x1, x2, PostIndex));
-  __ ld1(v9.V8B(), v10.V8B(), v11.V8B(), v12.V8B(),
+  __ ld1(v9.V8B(),
+         v10.V8B(),
+         v11.V8B(),
+         v12.V8B(),
          MemOperand(x1, 32, PostIndex));
   __ ld1(v4.V8B(), v5.V8B(), v6.V8B(), MemOperand(x0));
   __ ld1(v2.V8B(), v3.V8B(), v4.V8B(), MemOperand(x1, x2, PostIndex));
@@ -871,7 +910,10 @@
   __ ld1(v28.V8B(), MemOperand(x1, 8, PostIndex));
   __ ld1(v5.V8H(), v6.V8H(), v7.V8H(), v8.V8H(), MemOperand(x0));
   __ ld1(v2.V8H(), v3.V8H(), v4.V8H(), v5.V8H(), MemOperand(x1, x2, PostIndex));
-  __ ld1(v10.V8H(), v11.V8H(), v12.V8H(), v13.V8H(),
+  __ ld1(v10.V8H(),
+         v11.V8H(),
+         v12.V8H(),
+         v13.V8H(),
          MemOperand(x1, 64, PostIndex));
   __ ld1(v26.V8H(), v27.V8H(), v28.V8H(), MemOperand(x0));
   __ ld1(v3.V8H(), v4.V8H(), v5.V8H(), MemOperand(x1, x2, PostIndex));
@@ -1033,34 +1075,61 @@
   __ ld3r(v29.V8H(), v30.V8H(), v31.V8H(), MemOperand(x1, x2, PostIndex));
   __ ld3r(v7.V8H(), v8.V8H(), v9.V8H(), MemOperand(x1, 6, PostIndex));
   __ ld4(v3.V16B(), v4.V16B(), v5.V16B(), v6.V16B(), MemOperand(x0));
-  __ ld4(v2.V16B(), v3.V16B(), v4.V16B(), v5.V16B(),
+  __ ld4(v2.V16B(),
+         v3.V16B(),
+         v4.V16B(),
+         v5.V16B(),
          MemOperand(x1, x2, PostIndex));
-  __ ld4(v5.V16B(), v6.V16B(), v7.V16B(), v8.V16B(),
+  __ ld4(v5.V16B(),
+         v6.V16B(),
+         v7.V16B(),
+         v8.V16B(),
          MemOperand(x1, 64, PostIndex));
   __ ld4(v18.V2D(), v19.V2D(), v20.V2D(), v21.V2D(), MemOperand(x0));
   __ ld4(v4.V2D(), v5.V2D(), v6.V2D(), v7.V2D(), MemOperand(x1, x2, PostIndex));
-  __ ld4(v29.V2D(), v30.V2D(), v31.V2D(), v0.V2D(),
+  __ ld4(v29.V2D(),
+         v30.V2D(),
+         v31.V2D(),
+         v0.V2D(),
          MemOperand(x1, 64, PostIndex));
   __ ld4(v27.V2S(), v28.V2S(), v29.V2S(), v30.V2S(), MemOperand(x0));
-  __ ld4(v24.V2S(), v25.V2S(), v26.V2S(), v27.V2S(),
+  __ ld4(v24.V2S(),
+         v25.V2S(),
+         v26.V2S(),
+         v27.V2S(),
          MemOperand(x1, x2, PostIndex));
   __ ld4(v4.V2S(), v5.V2S(), v6.V2S(), v7.V2S(), MemOperand(x1, 32, PostIndex));
   __ ld4(v16.V4H(), v17.V4H(), v18.V4H(), v19.V4H(), MemOperand(x0));
-  __ ld4(v23.V4H(), v24.V4H(), v25.V4H(), v26.V4H(),
+  __ ld4(v23.V4H(),
+         v24.V4H(),
+         v25.V4H(),
+         v26.V4H(),
          MemOperand(x1, x2, PostIndex));
   __ ld4(v2.V4H(), v3.V4H(), v4.V4H(), v5.V4H(), MemOperand(x1, 32, PostIndex));
   __ ld4(v7.V4S(), v8.V4S(), v9.V4S(), v10.V4S(), MemOperand(x0));
-  __ ld4(v28.V4S(), v29.V4S(), v30.V4S(), v31.V4S(),
+  __ ld4(v28.V4S(),
+         v29.V4S(),
+         v30.V4S(),
+         v31.V4S(),
          MemOperand(x1, x2, PostIndex));
-  __ ld4(v29.V4S(), v30.V4S(), v31.V4S(), v0.V4S(),
+  __ ld4(v29.V4S(),
+         v30.V4S(),
+         v31.V4S(),
+         v0.V4S(),
          MemOperand(x1, 64, PostIndex));
   __ ld4(v15.V8B(), v16.V8B(), v17.V8B(), v18.V8B(), MemOperand(x0));
-  __ ld4(v27.V8B(), v28.V8B(), v29.V8B(), v30.V8B(),
+  __ ld4(v27.V8B(),
+         v28.V8B(),
+         v29.V8B(),
+         v30.V8B(),
          MemOperand(x1, x2, PostIndex));
   __ ld4(v5.V8B(), v6.V8B(), v7.V8B(), v8.V8B(), MemOperand(x1, 32, PostIndex));
   __ ld4(v25.V8H(), v26.V8H(), v27.V8H(), v28.V8H(), MemOperand(x0));
   __ ld4(v2.V8H(), v3.V8H(), v4.V8H(), v5.V8H(), MemOperand(x1, x2, PostIndex));
-  __ ld4(v20.V8H(), v21.V8H(), v22.V8H(), v23.V8H(),
+  __ ld4(v20.V8H(),
+         v21.V8H(),
+         v22.V8H(),
+         v23.V8H(),
          MemOperand(x1, 64, PostIndex));
   __ ld4(v20.B(), v21.B(), v22.B(), v23.B(), 3, MemOperand(x0));
   __ ld4(v12.B(), v13.B(), v14.B(), v15.B(), 3, MemOperand(x1, x2, PostIndex));
@@ -1075,44 +1144,92 @@
   __ ld4(v25.S(), v26.S(), v27.S(), v28.S(), 2, MemOperand(x1, x2, PostIndex));
   __ ld4(v8.S(), v9.S(), v10.S(), v11.S(), 3, MemOperand(x1, 16, PostIndex));
   __ ld4r(v14.V16B(), v15.V16B(), v16.V16B(), v17.V16B(), MemOperand(x0));
-  __ ld4r(v13.V16B(), v14.V16B(), v15.V16B(), v16.V16B(),
+  __ ld4r(v13.V16B(),
+          v14.V16B(),
+          v15.V16B(),
+          v16.V16B(),
           MemOperand(x1, x2, PostIndex));
-  __ ld4r(v9.V16B(), v10.V16B(), v11.V16B(), v12.V16B(),
+  __ ld4r(v9.V16B(),
+          v10.V16B(),
+          v11.V16B(),
+          v12.V16B(),
           MemOperand(x1, 4, PostIndex));
   __ ld4r(v8.V1D(), v9.V1D(), v10.V1D(), v11.V1D(), MemOperand(x0));
-  __ ld4r(v4.V1D(), v5.V1D(), v6.V1D(), v7.V1D(),
+  __ ld4r(v4.V1D(),
+          v5.V1D(),
+          v6.V1D(),
+          v7.V1D(),
           MemOperand(x1, x2, PostIndex));
-  __ ld4r(v26.V1D(), v27.V1D(), v28.V1D(), v29.V1D(),
+  __ ld4r(v26.V1D(),
+          v27.V1D(),
+          v28.V1D(),
+          v29.V1D(),
           MemOperand(x1, 32, PostIndex));
   __ ld4r(v19.V2D(), v20.V2D(), v21.V2D(), v22.V2D(), MemOperand(x0));
-  __ ld4r(v28.V2D(), v29.V2D(), v30.V2D(), v31.V2D(),
+  __ ld4r(v28.V2D(),
+          v29.V2D(),
+          v30.V2D(),
+          v31.V2D(),
           MemOperand(x1, x2, PostIndex));
-  __ ld4r(v15.V2D(), v16.V2D(), v17.V2D(), v18.V2D(),
+  __ ld4r(v15.V2D(),
+          v16.V2D(),
+          v17.V2D(),
+          v18.V2D(),
           MemOperand(x1, 32, PostIndex));
   __ ld4r(v31.V2S(), v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x0));
-  __ ld4r(v28.V2S(), v29.V2S(), v30.V2S(), v31.V2S(),
+  __ ld4r(v28.V2S(),
+          v29.V2S(),
+          v30.V2S(),
+          v31.V2S(),
           MemOperand(x1, x2, PostIndex));
-  __ ld4r(v11.V2S(), v12.V2S(), v13.V2S(), v14.V2S(),
+  __ ld4r(v11.V2S(),
+          v12.V2S(),
+          v13.V2S(),
+          v14.V2S(),
           MemOperand(x1, 16, PostIndex));
   __ ld4r(v19.V4H(), v20.V4H(), v21.V4H(), v22.V4H(), MemOperand(x0));
-  __ ld4r(v22.V4H(), v23.V4H(), v24.V4H(), v25.V4H(),
+  __ ld4r(v22.V4H(),
+          v23.V4H(),
+          v24.V4H(),
+          v25.V4H(),
           MemOperand(x1, x2, PostIndex));
-  __ ld4r(v20.V4H(), v21.V4H(), v22.V4H(), v23.V4H(),
+  __ ld4r(v20.V4H(),
+          v21.V4H(),
+          v22.V4H(),
+          v23.V4H(),
           MemOperand(x1, 8, PostIndex));
   __ ld4r(v16.V4S(), v17.V4S(), v18.V4S(), v19.V4S(), MemOperand(x0));
-  __ ld4r(v25.V4S(), v26.V4S(), v27.V4S(), v28.V4S(),
+  __ ld4r(v25.V4S(),
+          v26.V4S(),
+          v27.V4S(),
+          v28.V4S(),
           MemOperand(x1, x2, PostIndex));
-  __ ld4r(v23.V4S(), v24.V4S(), v25.V4S(), v26.V4S(),
+  __ ld4r(v23.V4S(),
+          v24.V4S(),
+          v25.V4S(),
+          v26.V4S(),
           MemOperand(x1, 16, PostIndex));
   __ ld4r(v22.V8B(), v23.V8B(), v24.V8B(), v25.V8B(), MemOperand(x0));
-  __ ld4r(v27.V8B(), v28.V8B(), v29.V8B(), v30.V8B(),
+  __ ld4r(v27.V8B(),
+          v28.V8B(),
+          v29.V8B(),
+          v30.V8B(),
           MemOperand(x1, x2, PostIndex));
-  __ ld4r(v29.V8B(), v30.V8B(), v31.V8B(), v0.V8B(),
+  __ ld4r(v29.V8B(),
+          v30.V8B(),
+          v31.V8B(),
+          v0.V8B(),
           MemOperand(x1, 4, PostIndex));
   __ ld4r(v28.V8H(), v29.V8H(), v30.V8H(), v31.V8H(), MemOperand(x0));
-  __ ld4r(v25.V8H(), v26.V8H(), v27.V8H(), v28.V8H(),
+  __ ld4r(v25.V8H(),
+          v26.V8H(),
+          v27.V8H(),
+          v28.V8H(),
           MemOperand(x1, x2, PostIndex));
-  __ ld4r(v22.V8H(), v23.V8H(), v24.V8H(), v25.V8H(),
+  __ ld4r(v22.V8H(),
+          v23.V8H(),
+          v24.V8H(),
+          v25.V8H(),
           MemOperand(x1, 8, PostIndex));
   __ mla(v29.V16B(), v7.V16B(), v26.V16B());
   __ mla(v6.V2S(), v4.V2S(), v14.V2S());
@@ -1675,9 +1792,15 @@
   __ ssubw2(v31.V4S(), v11.V4S(), v15.V8H());
   __ ssubw2(v4.V8H(), v8.V8H(), v16.V16B());
   __ st1(v18.V16B(), v19.V16B(), v20.V16B(), v21.V16B(), MemOperand(x0));
-  __ st1(v10.V16B(), v11.V16B(), v12.V16B(), v13.V16B(),
+  __ st1(v10.V16B(),
+         v11.V16B(),
+         v12.V16B(),
+         v13.V16B(),
          MemOperand(x1, x2, PostIndex));
-  __ st1(v27.V16B(), v28.V16B(), v29.V16B(), v30.V16B(),
+  __ st1(v27.V16B(),
+         v28.V16B(),
+         v29.V16B(),
+         v30.V16B(),
          MemOperand(x1, 64, PostIndex));
   __ st1(v16.V16B(), v17.V16B(), v18.V16B(), MemOperand(x0));
   __ st1(v21.V16B(), v22.V16B(), v23.V16B(), MemOperand(x1, x2, PostIndex));
@@ -1689,9 +1812,15 @@
   __ st1(v28.V16B(), MemOperand(x1, x2, PostIndex));
   __ st1(v2.V16B(), MemOperand(x1, 16, PostIndex));
   __ st1(v29.V1D(), v30.V1D(), v31.V1D(), v0.V1D(), MemOperand(x0));
-  __ st1(v12.V1D(), v13.V1D(), v14.V1D(), v15.V1D(),
+  __ st1(v12.V1D(),
+         v13.V1D(),
+         v14.V1D(),
+         v15.V1D(),
          MemOperand(x1, x2, PostIndex));
-  __ st1(v30.V1D(), v31.V1D(), v0.V1D(), v1.V1D(),
+  __ st1(v30.V1D(),
+         v31.V1D(),
+         v0.V1D(),
+         v1.V1D(),
          MemOperand(x1, 32, PostIndex));
   __ st1(v16.V1D(), v17.V1D(), v18.V1D(), MemOperand(x0));
   __ st1(v3.V1D(), v4.V1D(), v5.V1D(), MemOperand(x1, x2, PostIndex));
@@ -1703,9 +1832,15 @@
   __ st1(v27.V1D(), MemOperand(x1, x2, PostIndex));
   __ st1(v23.V1D(), MemOperand(x1, 8, PostIndex));
   __ st1(v2.V2D(), v3.V2D(), v4.V2D(), v5.V2D(), MemOperand(x0));
-  __ st1(v22.V2D(), v23.V2D(), v24.V2D(), v25.V2D(),
+  __ st1(v22.V2D(),
+         v23.V2D(),
+         v24.V2D(),
+         v25.V2D(),
          MemOperand(x1, x2, PostIndex));
-  __ st1(v28.V2D(), v29.V2D(), v30.V2D(), v31.V2D(),
+  __ st1(v28.V2D(),
+         v29.V2D(),
+         v30.V2D(),
+         v31.V2D(),
          MemOperand(x1, 64, PostIndex));
   __ st1(v17.V2D(), v18.V2D(), v19.V2D(), MemOperand(x0));
   __ st1(v16.V2D(), v17.V2D(), v18.V2D(), MemOperand(x1, x2, PostIndex));
@@ -1717,9 +1852,15 @@
   __ st1(v29.V2D(), MemOperand(x1, x2, PostIndex));
   __ st1(v20.V2D(), MemOperand(x1, 16, PostIndex));
   __ st1(v22.V2S(), v23.V2S(), v24.V2S(), v25.V2S(), MemOperand(x0));
-  __ st1(v8.V2S(), v9.V2S(), v10.V2S(), v11.V2S(),
+  __ st1(v8.V2S(),
+         v9.V2S(),
+         v10.V2S(),
+         v11.V2S(),
          MemOperand(x1, x2, PostIndex));
-  __ st1(v15.V2S(), v16.V2S(), v17.V2S(), v18.V2S(),
+  __ st1(v15.V2S(),
+         v16.V2S(),
+         v17.V2S(),
+         v18.V2S(),
          MemOperand(x1, 32, PostIndex));
   __ st1(v2.V2S(), v3.V2S(), v4.V2S(), MemOperand(x0));
   __ st1(v23.V2S(), v24.V2S(), v25.V2S(), MemOperand(x1, x2, PostIndex));
@@ -1731,9 +1872,15 @@
   __ st1(v11.V2S(), MemOperand(x1, x2, PostIndex));
   __ st1(v17.V2S(), MemOperand(x1, 8, PostIndex));
   __ st1(v6.V4H(), v7.V4H(), v8.V4H(), v9.V4H(), MemOperand(x0));
-  __ st1(v9.V4H(), v10.V4H(), v11.V4H(), v12.V4H(),
+  __ st1(v9.V4H(),
+         v10.V4H(),
+         v11.V4H(),
+         v12.V4H(),
          MemOperand(x1, x2, PostIndex));
-  __ st1(v25.V4H(), v26.V4H(), v27.V4H(), v28.V4H(),
+  __ st1(v25.V4H(),
+         v26.V4H(),
+         v27.V4H(),
+         v28.V4H(),
          MemOperand(x1, 32, PostIndex));
   __ st1(v11.V4H(), v12.V4H(), v13.V4H(), MemOperand(x0));
   __ st1(v10.V4H(), v11.V4H(), v12.V4H(), MemOperand(x1, x2, PostIndex));
@@ -1745,7 +1892,10 @@
   __ st1(v8.V4H(), MemOperand(x1, x2, PostIndex));
   __ st1(v30.V4H(), MemOperand(x1, 8, PostIndex));
   __ st1(v3.V4S(), v4.V4S(), v5.V4S(), v6.V4S(), MemOperand(x0));
-  __ st1(v25.V4S(), v26.V4S(), v27.V4S(), v28.V4S(),
+  __ st1(v25.V4S(),
+         v26.V4S(),
+         v27.V4S(),
+         v28.V4S(),
          MemOperand(x1, x2, PostIndex));
   __ st1(v5.V4S(), v6.V4S(), v7.V4S(), v8.V4S(), MemOperand(x1, 64, PostIndex));
   __ st1(v31.V4S(), v0.V4S(), v1.V4S(), MemOperand(x0));
@@ -1758,9 +1908,15 @@
   __ st1(v15.V4S(), MemOperand(x1, x2, PostIndex));
   __ st1(v13.V4S(), MemOperand(x1, 16, PostIndex));
   __ st1(v26.V8B(), v27.V8B(), v28.V8B(), v29.V8B(), MemOperand(x0));
-  __ st1(v10.V8B(), v11.V8B(), v12.V8B(), v13.V8B(),
+  __ st1(v10.V8B(),
+         v11.V8B(),
+         v12.V8B(),
+         v13.V8B(),
          MemOperand(x1, x2, PostIndex));
-  __ st1(v15.V8B(), v16.V8B(), v17.V8B(), v18.V8B(),
+  __ st1(v15.V8B(),
+         v16.V8B(),
+         v17.V8B(),
+         v18.V8B(),
          MemOperand(x1, 32, PostIndex));
   __ st1(v19.V8B(), v20.V8B(), v21.V8B(), MemOperand(x0));
   __ st1(v31.V8B(), v0.V8B(), v1.V8B(), MemOperand(x1, x2, PostIndex));
@@ -1773,7 +1929,10 @@
   __ st1(v31.V8B(), MemOperand(x1, 8, PostIndex));
   __ st1(v4.V8H(), v5.V8H(), v6.V8H(), v7.V8H(), MemOperand(x0));
   __ st1(v3.V8H(), v4.V8H(), v5.V8H(), v6.V8H(), MemOperand(x1, x2, PostIndex));
-  __ st1(v26.V8H(), v27.V8H(), v28.V8H(), v29.V8H(),
+  __ st1(v26.V8H(),
+         v27.V8H(),
+         v28.V8H(),
+         v29.V8H(),
          MemOperand(x1, 64, PostIndex));
   __ st1(v10.V8H(), v11.V8H(), v12.V8H(), MemOperand(x0));
   __ st1(v21.V8H(), v22.V8H(), v23.V8H(), MemOperand(x1, x2, PostIndex));
@@ -1863,37 +2022,73 @@
   __ st3(v11.S(), v12.S(), v13.S(), 1, MemOperand(x1, x2, PostIndex));
   __ st3(v15.S(), v16.S(), v17.S(), 0, MemOperand(x1, 12, PostIndex));
   __ st4(v22.V16B(), v23.V16B(), v24.V16B(), v25.V16B(), MemOperand(x0));
-  __ st4(v24.V16B(), v25.V16B(), v26.V16B(), v27.V16B(),
+  __ st4(v24.V16B(),
+         v25.V16B(),
+         v26.V16B(),
+         v27.V16B(),
          MemOperand(x1, x2, PostIndex));
-  __ st4(v15.V16B(), v16.V16B(), v17.V16B(), v18.V16B(),
+  __ st4(v15.V16B(),
+         v16.V16B(),
+         v17.V16B(),
+         v18.V16B(),
          MemOperand(x1, 64, PostIndex));
   __ st4(v16.V2D(), v17.V2D(), v18.V2D(), v19.V2D(), MemOperand(x0));
-  __ st4(v17.V2D(), v18.V2D(), v19.V2D(), v20.V2D(),
+  __ st4(v17.V2D(),
+         v18.V2D(),
+         v19.V2D(),
+         v20.V2D(),
          MemOperand(x1, x2, PostIndex));
-  __ st4(v9.V2D(), v10.V2D(), v11.V2D(), v12.V2D(),
+  __ st4(v9.V2D(),
+         v10.V2D(),
+         v11.V2D(),
+         v12.V2D(),
          MemOperand(x1, 64, PostIndex));
   __ st4(v23.V2S(), v24.V2S(), v25.V2S(), v26.V2S(), MemOperand(x0));
-  __ st4(v15.V2S(), v16.V2S(), v17.V2S(), v18.V2S(),
+  __ st4(v15.V2S(),
+         v16.V2S(),
+         v17.V2S(),
+         v18.V2S(),
          MemOperand(x1, x2, PostIndex));
-  __ st4(v24.V2S(), v25.V2S(), v26.V2S(), v27.V2S(),
+  __ st4(v24.V2S(),
+         v25.V2S(),
+         v26.V2S(),
+         v27.V2S(),
          MemOperand(x1, 32, PostIndex));
   __ st4(v14.V4H(), v15.V4H(), v16.V4H(), v17.V4H(), MemOperand(x0));
-  __ st4(v18.V4H(), v19.V4H(), v20.V4H(), v21.V4H(),
+  __ st4(v18.V4H(),
+         v19.V4H(),
+         v20.V4H(),
+         v21.V4H(),
          MemOperand(x1, x2, PostIndex));
   __ st4(v1.V4H(), v2.V4H(), v3.V4H(), v4.V4H(), MemOperand(x1, 32, PostIndex));
   __ st4(v13.V4S(), v14.V4S(), v15.V4S(), v16.V4S(), MemOperand(x0));
   __ st4(v6.V4S(), v7.V4S(), v8.V4S(), v9.V4S(), MemOperand(x1, x2, PostIndex));
-  __ st4(v15.V4S(), v16.V4S(), v17.V4S(), v18.V4S(),
+  __ st4(v15.V4S(),
+         v16.V4S(),
+         v17.V4S(),
+         v18.V4S(),
          MemOperand(x1, 64, PostIndex));
   __ st4(v26.V8B(), v27.V8B(), v28.V8B(), v29.V8B(), MemOperand(x0));
-  __ st4(v25.V8B(), v26.V8B(), v27.V8B(), v28.V8B(),
+  __ st4(v25.V8B(),
+         v26.V8B(),
+         v27.V8B(),
+         v28.V8B(),
          MemOperand(x1, x2, PostIndex));
-  __ st4(v19.V8B(), v20.V8B(), v21.V8B(), v22.V8B(),
+  __ st4(v19.V8B(),
+         v20.V8B(),
+         v21.V8B(),
+         v22.V8B(),
          MemOperand(x1, 32, PostIndex));
   __ st4(v19.V8H(), v20.V8H(), v21.V8H(), v22.V8H(), MemOperand(x0));
-  __ st4(v15.V8H(), v16.V8H(), v17.V8H(), v18.V8H(),
+  __ st4(v15.V8H(),
+         v16.V8H(),
+         v17.V8H(),
+         v18.V8H(),
          MemOperand(x1, x2, PostIndex));
-  __ st4(v31.V8H(), v0.V8H(), v1.V8H(), v2.V8H(),
+  __ st4(v31.V8H(),
+         v0.V8H(),
+         v1.V8H(),
+         v2.V8H(),
          MemOperand(x1, 64, PostIndex));
   __ st4(v0.B(), v1.B(), v2.B(), v3.B(), 13, MemOperand(x0));
   __ st4(v4.B(), v5.B(), v6.B(), v7.B(), 10, MemOperand(x1, x2, PostIndex));
@@ -1938,7 +2133,11 @@
   __ sxtl2(v6.V2D(), v7.V4S());
   __ sxtl2(v9.V4S(), v27.V8H());
   __ sxtl2(v16.V8H(), v16.V16B());
-  __ tbl(v25.V16B(), v17.V16B(), v18.V16B(), v19.V16B(), v20.V16B(),
+  __ tbl(v25.V16B(),
+         v17.V16B(),
+         v18.V16B(),
+         v19.V16B(),
+         v20.V16B(),
          v22.V16B());
   __ tbl(v28.V16B(), v13.V16B(), v14.V16B(), v15.V16B(), v4.V16B());
   __ tbl(v3.V16B(), v0.V16B(), v1.V16B(), v2.V16B());
@@ -2312,7 +2511,9 @@
 
 
 static void GenerateTestSequenceNEONFP(MacroAssembler* masm) {
-  CodeBufferCheckScope guard(masm, masm->GetBuffer()->GetRemainingBytes());
+  ExactAssemblyScope guard(masm,
+                           masm->GetBuffer()->GetRemainingBytes(),
+                           ExactAssemblyScope::kMaximumSize);
 
   // NEON floating point instructions.
   __ fabd(v3.V2D(), v25.V2D(), v8.V2D());
@@ -2539,9 +2740,9 @@
 
 
 static void MaskAddresses(const char* trace) {
-  // Hexadecimal expressions of the form `\xab` do not work out-of-the box with
-  // BSD `sed`. So we use ANSI-C quoting to have the regular expressions below
-  // work both on Linux and BSD (and macOS).
+// Hexadecimal expressions of the form `\xab` do not work out-of-the box with
+// BSD `sed`. So we use ANSI-C quoting to have the regular expressions below
+// work both on Linux and BSD (and macOS).
 #ifdef __APPLE__
 #define MAYBE_ANSI_C_QUOTE "$"
 #define HEX(val) "\\x" #val
@@ -2557,26 +2758,29 @@
   struct {
     const char* search;
     const char* replace;
-  } patterns[] = {
-      // Mask registers that hold addresses that change from run to run.
-      {"((x0|x1|x2|sp): " COLOUR "0x)[0-9a-f]{16}", ESCAPE(1) "~~~~~~~~~~~~~~~~"},
-      // Mask accessed memory addresses.
-      {"((<-|->) " COLOUR "0x)[0-9a-f]{16}", ESCAPE(1) "~~~~~~~~~~~~~~~~"},
-      // Mask instruction addresses.
-      {"^0x[0-9a-f]{16}", "0x~~~~~~~~~~~~~~~~"},
-      // Mask branch targets.
-      {"(Branch" COLOUR " to 0x)[0-9a-f]{16}", ESCAPE(1) "~~~~~~~~~~~~~~~~"},
-      {"addr 0x[0-9a-f]+", "addr 0x~~~~~~~~~~~~~~~~"}
-  };
+  } patterns[] =
+      {// Mask registers that hold addresses that change from run to run.
+       {"((x0|x1|x2|sp): " COLOUR "0x)[0-9a-f]{16}",
+        ESCAPE(1) "~~~~~~~~~~~~~~~~"},
+       // Mask accessed memory addresses.
+       {"((<-|->) " COLOUR "0x)[0-9a-f]{16}", ESCAPE(1) "~~~~~~~~~~~~~~~~"},
+       // Mask instruction addresses.
+       {"^0x[0-9a-f]{16}", "0x~~~~~~~~~~~~~~~~"},
+       // Mask branch targets.
+       {"(Branch" COLOUR " to 0x)[0-9a-f]{16}", ESCAPE(1) "~~~~~~~~~~~~~~~~"},
+       {"addr 0x[0-9a-f]+", "addr 0x~~~~~~~~~~~~~~~~"}};
   const size_t patterns_length = sizeof(patterns) / sizeof(patterns[0]);
   // Rewrite `trace`, masking addresses and other values that legitimately vary
   // from run to run.
   char command[1024];
   for (size_t i = 0; i < patterns_length; i++) {
-    size_t length =
-        snprintf(command, sizeof(command),
-                 "sed %s " MAYBE_ANSI_C_QUOTE "'s/%s/%s/' '%s'",
-                 sed_options, patterns[i].search, patterns[i].replace, trace);
+    size_t length = snprintf(command,
+                             sizeof(command),
+                             "sed %s " MAYBE_ANSI_C_QUOTE "'s/%s/%s/' '%s'",
+                             sed_options,
+                             patterns[i].search,
+                             patterns[i].replace,
+                             trace);
     VIXL_CHECK(length < sizeof(command));
     VIXL_CHECK(system(command) == 0);
   }
@@ -2601,8 +2805,7 @@
   const int kScratchSize = 64 * KBytes;
   const int kScratchGuardSize = 128;
   char scratch_buffer[kScratchSize + kScratchGuardSize];
-  for (size_t i = 0;
-       i < (sizeof(scratch_buffer) / sizeof(scratch_buffer[0]));
+  for (size_t i = 0; i < (sizeof(scratch_buffer) / sizeof(scratch_buffer[0]));
        i++) {
     scratch_buffer[i] = i & 0xff;
   }
@@ -2611,7 +2814,7 @@
   // Used for pre-/post-index addressing.
   simulator.WriteRegister(1, scratch_buffer);
 
-  const int kPostIndexRegisterStep = 13;         // Arbitrary interesting value.
+  const int kPostIndexRegisterStep = 13;  // Arbitrary interesting value.
   // Used for post-index offsets.
   simulator.WriteRegister(2, kPostIndexRegisterStep);
 
@@ -2666,8 +2869,11 @@
   } else {
     // Check trace_stream against ref_file.
     char command[1024];
-    size_t length = snprintf(command, sizeof(command),
-                             "diff -u %s %s", ref_file, trace_stream_filename);
+    size_t length = snprintf(command,
+                             sizeof(command),
+                             "diff -u %s %s",
+                             ref_file,
+                             trace_stream_filename);
     VIXL_CHECK(length < sizeof(command));
     trace_matched_reference = (system(command) == 0);
   }
@@ -2687,44 +2893,24 @@
 #define REF(name) "test/test-trace-reference/" name
 
 // Test individual options.
-TEST(disasm) {
-  TraceTestHelper(false, LOG_DISASM, REF("log-disasm"));
-}
-TEST(regs) {
-  TraceTestHelper(false, LOG_REGS, REF("log-regs"));
-}
-TEST(vregs) {
-  TraceTestHelper(false, LOG_VREGS, REF("log-vregs"));
-}
-TEST(sysregs) {
-  TraceTestHelper(false, LOG_SYSREGS, REF("log-sysregs"));
-}
-TEST(write) {
-  TraceTestHelper(false, LOG_WRITE, REF("log-write"));
-}
-TEST(branch) {
-  TraceTestHelper(false, LOG_WRITE, REF("log-branch"));
-}
+TEST(disasm) { TraceTestHelper(false, LOG_DISASM, REF("log-disasm")); }
+TEST(regs) { TraceTestHelper(false, LOG_REGS, REF("log-regs")); }
+TEST(vregs) { TraceTestHelper(false, LOG_VREGS, REF("log-vregs")); }
+TEST(sysregs) { TraceTestHelper(false, LOG_SYSREGS, REF("log-sysregs")); }
+TEST(write) { TraceTestHelper(false, LOG_WRITE, REF("log-write")); }
+TEST(branch) { TraceTestHelper(false, LOG_WRITE, REF("log-branch")); }
 
 // Test standard combinations.
-TEST(none) {
-  TraceTestHelper(false, LOG_NONE, REF("log-none"));
-}
-TEST(state) {
-  TraceTestHelper(false, LOG_STATE, REF("log-state"));
-}
-TEST(all) {
-  TraceTestHelper(false, LOG_ALL, REF("log-all"));
-}
+TEST(none) { TraceTestHelper(false, LOG_NONE, REF("log-none")); }
+TEST(state) { TraceTestHelper(false, LOG_STATE, REF("log-state")); }
+TEST(all) { TraceTestHelper(false, LOG_ALL, REF("log-all")); }
 
 
 // Test individual options (with colour).
 TEST(disasm_colour) {
   TraceTestHelper(true, LOG_DISASM, REF("log-disasm-colour"));
 }
-TEST(regs_colour) {
-  TraceTestHelper(true, LOG_REGS, REF("log-regs-colour"));
-}
+TEST(regs_colour) { TraceTestHelper(true, LOG_REGS, REF("log-regs-colour")); }
 TEST(vregs_colour) {
   TraceTestHelper(true, LOG_VREGS, REF("log-vregs-colour"));
 }
@@ -2739,15 +2925,11 @@
 }
 
 // Test standard combinations (with colour).
-TEST(none_colour) {
-  TraceTestHelper(true, LOG_NONE, REF("log-none-colour"));
-}
+TEST(none_colour) { TraceTestHelper(true, LOG_NONE, REF("log-none-colour")); }
 TEST(state_colour) {
   TraceTestHelper(true, LOG_STATE, REF("log-state-colour"));
 }
-TEST(all_colour) {
-  TraceTestHelper(true, LOG_ALL, REF("log-all-colour"));
-}
+TEST(all_colour) { TraceTestHelper(true, LOG_ALL, REF("log-all-colour")); }
 
 
 #endif  // VIXL_INCLUDE_SIMULATOR_AARCH64
diff --git a/test/aarch64/test-utils-aarch64.cc b/test/aarch64/test-utils-aarch64.cc
index 881f18d..eafe273 100644
--- a/test/aarch64/test-utils-aarch64.cc
+++ b/test/aarch64/test-utils-aarch64.cc
@@ -42,8 +42,7 @@
 
 // This value is a signalling NaN as both a double and as a float (taking the
 // least-significant word).
-const double kFP64SignallingNaN =
-    RawbitsToDouble(UINT64_C(0x7ff000007f800001));
+const double kFP64SignallingNaN = RawbitsToDouble(UINT64_C(0x7ff000007f800001));
 const float kFP32SignallingNaN = RawbitsToFloat(0x7f800001);
 
 // A similar value, but as a quiet NaN.
@@ -54,7 +53,8 @@
 bool Equal32(uint32_t expected, const RegisterDump*, uint32_t result) {
   if (result != expected) {
     printf("Expected 0x%08" PRIx32 "\t Found 0x%08" PRIx32 "\n",
-           expected, result);
+           expected,
+           result);
   }
 
   return expected == result;
@@ -64,7 +64,8 @@
 bool Equal64(uint64_t expected, const RegisterDump*, uint64_t result) {
   if (result != expected) {
     printf("Expected 0x%016" PRIx64 "\t Found 0x%016" PRIx64 "\n",
-           expected, result);
+           expected,
+           result);
   }
 
   return expected == result;
@@ -73,9 +74,13 @@
 
 bool Equal128(vec128_t expected, const RegisterDump*, vec128_t result) {
   if ((result.h != expected.h) || (result.l != expected.l)) {
-    printf("Expected 0x%016" PRIx64 "%016" PRIx64 "\t "
+    printf("Expected 0x%016" PRIx64 "%016" PRIx64
+           "\t "
            "Found 0x%016" PRIx64 "%016" PRIx64 "\n",
-           expected.h, expected.l, result.h, result.l);
+           expected.h,
+           expected.l,
+           result.h,
+           result.l);
   }
 
   return ((expected.h == result.h) && (expected.l == result.l));
@@ -88,12 +93,16 @@
   } else {
     if (std::isnan(expected) || (expected == 0.0)) {
       printf("Expected 0x%08" PRIx32 "\t Found 0x%08" PRIx32 "\n",
-             FloatToRawbits(expected), FloatToRawbits(result));
+             FloatToRawbits(expected),
+             FloatToRawbits(result));
     } else {
-      printf("Expected %.9f (0x%08" PRIx32 ")\t "
+      printf("Expected %.9f (0x%08" PRIx32
+             ")\t "
              "Found %.9f (0x%08" PRIx32 ")\n",
-             expected, FloatToRawbits(expected),
-             result, FloatToRawbits(result));
+             expected,
+             FloatToRawbits(expected),
+             result,
+             FloatToRawbits(result));
     }
     return false;
   }
@@ -107,12 +116,16 @@
 
   if (std::isnan(expected) || (expected == 0.0)) {
     printf("Expected 0x%016" PRIx64 "\t Found 0x%016" PRIx64 "\n",
-           DoubleToRawbits(expected), DoubleToRawbits(result));
+           DoubleToRawbits(expected),
+           DoubleToRawbits(result));
   } else {
-    printf("Expected %.17f (0x%016" PRIx64 ")\t "
+    printf("Expected %.17f (0x%016" PRIx64
+           ")\t "
            "Found %.17f (0x%016" PRIx64 ")\n",
-           expected, DoubleToRawbits(expected),
-           result, DoubleToRawbits(result));
+           expected,
+           DoubleToRawbits(expected),
+           result,
+           DoubleToRawbits(result));
   }
   return false;
 }
@@ -125,7 +138,8 @@
   int64_t result_x = core->xreg(reg.GetCode());
   if ((result_x & 0xffffffff00000000) != 0) {
     printf("Expected 0x%08" PRIx32 "\t Found 0x%016" PRIx64 "\n",
-           expected, result_x);
+           expected,
+           result_x);
     return false;
   }
   uint32_t result_w = core->wreg(reg.GetCode());
@@ -160,7 +174,9 @@
   uint64_t result_64 = core->dreg_bits(fpreg.GetCode());
   if ((result_64 & 0xffffffff00000000) != 0) {
     printf("Expected 0x%08" PRIx32 " (%f)\t Found 0x%016" PRIx64 "\n",
-           FloatToRawbits(expected), expected, result_64);
+           FloatToRawbits(expected),
+           expected,
+           result_64);
     return false;
   }
 
@@ -195,24 +211,16 @@
 }
 
 
-static char FlagN(uint32_t flags) {
-  return (flags & NFlag) ? 'N' : 'n';
-}
+static char FlagN(uint32_t flags) { return (flags & NFlag) ? 'N' : 'n'; }
 
 
-static char FlagZ(uint32_t flags) {
-  return (flags & ZFlag) ? 'Z' : 'z';
-}
+static char FlagZ(uint32_t flags) { return (flags & ZFlag) ? 'Z' : 'z'; }
 
 
-static char FlagC(uint32_t flags) {
-  return (flags & CFlag) ? 'C' : 'c';
-}
+static char FlagC(uint32_t flags) { return (flags & CFlag) ? 'C' : 'c'; }
 
 
-static char FlagV(uint32_t flags) {
-  return (flags & VFlag) ? 'V' : 'v';
-}
+static char FlagV(uint32_t flags) { return (flags & VFlag) ? 'V' : 'v'; }
 
 
 bool EqualNzcv(uint32_t expected, uint32_t result) {
@@ -220,8 +228,14 @@
   VIXL_ASSERT((result & ~NZCVFlag) == 0);
   if (result != expected) {
     printf("Expected: %c%c%c%c\t Found: %c%c%c%c\n",
-        FlagN(expected), FlagZ(expected), FlagC(expected), FlagV(expected),
-        FlagN(result), FlagZ(result), FlagC(result), FlagV(result));
+           FlagN(expected),
+           FlagZ(expected),
+           FlagC(expected),
+           FlagV(expected),
+           FlagN(result),
+           FlagZ(result),
+           FlagC(result),
+           FlagV(result));
     return false;
   }
 
@@ -233,7 +247,9 @@
   for (unsigned i = 0; i < kNumberOfRegisters; i++) {
     if (a->xreg(i) != b->xreg(i)) {
       printf("x%d\t Expected 0x%016" PRIx64 "\t Found 0x%016" PRIx64 "\n",
-             i, a->xreg(i), b->xreg(i));
+             i,
+             a->xreg(i),
+             b->xreg(i));
       return false;
     }
   }
@@ -243,7 +259,9 @@
     uint64_t b_bits = b->dreg_bits(i);
     if (a_bits != b_bits) {
       printf("d%d\t Expected 0x%016" PRIx64 "\t Found 0x%016" PRIx64 "\n",
-             i, a_bits, b_bits);
+             i,
+             a_bits,
+             b_bits);
       return false;
     }
   }
@@ -252,8 +270,12 @@
 }
 
 
-RegList PopulateRegisterArray(Register* w, Register* x, Register* r,
-                              int reg_size, int reg_count, RegList allowed) {
+RegList PopulateRegisterArray(Register* w,
+                              Register* x,
+                              Register* r,
+                              int reg_size,
+                              int reg_count,
+                              RegList allowed) {
   RegList list = 0;
   int i = 0;
   for (unsigned n = 0; (n < kNumberOfRegisters) && (i < reg_count); n++) {
@@ -279,8 +301,12 @@
 }
 
 
-RegList PopulateFPRegisterArray(FPRegister* s, FPRegister* d, FPRegister* v,
-                                int reg_size, int reg_count, RegList allowed) {
+RegList PopulateFPRegisterArray(FPRegister* s,
+                                FPRegister* d,
+                                FPRegister* v,
+                                int reg_size,
+                                int reg_count,
+                                RegList allowed) {
   RegList list = 0;
   int i = 0;
   for (unsigned n = 0; (n < kNumberOfFPRegisters) && (i < reg_count); n++) {
@@ -403,35 +429,40 @@
   // Dump X registers.
   __ Add(dump, dump_base, x_offset);
   for (unsigned i = 0; i < kNumberOfRegisters; i += 2) {
-    __ Stp(Register::GetXRegFromCode(i), Register::GetXRegFromCode(i + 1),
+    __ Stp(Register::GetXRegFromCode(i),
+           Register::GetXRegFromCode(i + 1),
            MemOperand(dump, i * kXRegSizeInBytes));
   }
 
   // Dump W registers.
   __ Add(dump, dump_base, w_offset);
   for (unsigned i = 0; i < kNumberOfRegisters; i += 2) {
-    __ Stp(Register::GetWRegFromCode(i), Register::GetWRegFromCode(i + 1),
+    __ Stp(Register::GetWRegFromCode(i),
+           Register::GetWRegFromCode(i + 1),
            MemOperand(dump, i * kWRegSizeInBytes));
   }
 
   // Dump D registers.
   __ Add(dump, dump_base, d_offset);
   for (unsigned i = 0; i < kNumberOfFPRegisters; i += 2) {
-    __ Stp(FPRegister::GetDRegFromCode(i), FPRegister::GetDRegFromCode(i + 1),
+    __ Stp(FPRegister::GetDRegFromCode(i),
+           FPRegister::GetDRegFromCode(i + 1),
            MemOperand(dump, i * kDRegSizeInBytes));
   }
 
   // Dump S registers.
   __ Add(dump, dump_base, s_offset);
   for (unsigned i = 0; i < kNumberOfFPRegisters; i += 2) {
-    __ Stp(FPRegister::GetSRegFromCode(i), FPRegister::GetSRegFromCode(i + 1),
+    __ Stp(FPRegister::GetSRegFromCode(i),
+           FPRegister::GetSRegFromCode(i + 1),
            MemOperand(dump, i * kSRegSizeInBytes));
   }
 
   // Dump Q registers.
   __ Add(dump, dump_base, q_offset);
   for (unsigned i = 0; i < kNumberOfVRegisters; i += 2) {
-    __ Stp(VRegister::GetQRegFromCode(i), VRegister::GetQRegFromCode(i + 1),
+    __ Stp(VRegister::GetQRegFromCode(i),
+           VRegister::GetQRegFromCode(i + 1),
            MemOperand(dump, i * kQRegSizeInBytes));
   }
 
diff --git a/test/aarch64/test-utils-aarch64.h b/test/aarch64/test-utils-aarch64.h
index b33c072..f12bdb0 100644
--- a/test/aarch64/test-utils-aarch64.h
+++ b/test/aarch64/test-utils-aarch64.h
@@ -113,9 +113,7 @@
     return RawbitsToDouble(dreg_bits(code));
   }
 
-  inline vec128_t qreg(unsigned code) const {
-    return dump_.q_[code];
-  }
+  inline vec128_t qreg(unsigned code) const { return dump_.q_[code]; }
 
   // Stack pointer accessors.
   inline int64_t spreg() const {
@@ -135,9 +133,7 @@
     return dump_.flags_ & Flags_mask;
   }
 
-  inline bool IsComplete() const {
-    return completed_;
-  }
+  inline bool IsComplete() const { return completed_; }
 
  private:
   // Indicate whether the dump operation has been completed.
@@ -202,17 +198,24 @@
 
 bool Equal32(uint32_t expected, const RegisterDump* core, const Register& reg);
 bool Equal64(uint64_t expected, const RegisterDump* core, const Register& reg);
-bool Equal64(uint64_t expected, const RegisterDump* core, const VRegister& vreg);
+bool Equal64(uint64_t expected,
+             const RegisterDump* core,
+             const VRegister& vreg);
 
-bool EqualFP32(float expected, const RegisterDump* core,
+bool EqualFP32(float expected,
+               const RegisterDump* core,
                const FPRegister& fpreg);
-bool EqualFP64(double expected, const RegisterDump* core,
+bool EqualFP64(double expected,
+               const RegisterDump* core,
                const FPRegister& fpreg);
 
-bool Equal64(const Register& reg0, const RegisterDump* core,
+bool Equal64(const Register& reg0,
+             const RegisterDump* core,
              const Register& reg1);
-bool Equal128(uint64_t expected_h, uint64_t expected_l,
-              const RegisterDump* core, const VRegister& reg);
+bool Equal128(uint64_t expected_h,
+              uint64_t expected_l,
+              const RegisterDump* core,
+              const VRegister& reg);
 
 bool EqualNzcv(uint32_t expected, uint32_t result);
 
@@ -228,12 +231,20 @@
 // Any of w, x, or r can be NULL if they are not required.
 //
 // The return value is a RegList indicating which registers were allocated.
-RegList PopulateRegisterArray(Register* w, Register* x, Register* r,
-                              int reg_size, int reg_count, RegList allowed);
+RegList PopulateRegisterArray(Register* w,
+                              Register* x,
+                              Register* r,
+                              int reg_size,
+                              int reg_count,
+                              RegList allowed);
 
 // As PopulateRegisterArray, but for floating-point registers.
-RegList PopulateFPRegisterArray(FPRegister* s, FPRegister* d, FPRegister* v,
-                                int reg_size, int reg_count, RegList allowed);
+RegList PopulateFPRegisterArray(FPRegister* s,
+                                FPRegister* d,
+                                FPRegister* v,
+                                int reg_size,
+                                int reg_count,
+                                RegList allowed);
 
 // Ovewrite the contents of the specified registers. This enables tests to
 // check that register contents are written in cases where it's likely that the
@@ -243,11 +254,13 @@
 // registers, a subsequent write into an aliased W register should clear the
 // top word anyway, so clobbering the full X registers should make tests more
 // rigorous.
-void Clobber(MacroAssembler* masm, RegList reg_list,
+void Clobber(MacroAssembler* masm,
+             RegList reg_list,
              uint64_t const value = 0xfedcba9876543210);
 
 // As Clobber, but for FP registers.
-void ClobberFP(MacroAssembler* masm, RegList reg_list,
+void ClobberFP(MacroAssembler* masm,
+               RegList reg_list,
                double const value = kFP64SignallingNaN);
 
 // As Clobber, but for a CPURegList with either FP or integer registers. When
diff --git a/test/test-aborts.cc b/test/test-aborts.cc
index 47a83a5..e0c39cf 100644
--- a/test/test-aborts.cc
+++ b/test/test-aborts.cc
@@ -37,21 +37,24 @@
 
 namespace vixl {
 
-#define TEST(name, code, expected_prefix)                               \
-    TEST_(ABORTS_##name) {                                              \
-      try {                                                             \
-        code;                                                           \
-        printf("\n%s:%d\nNo exception raised.\n", __FILE__, __LINE__);  \
-        abort();                                                        \
-      } catch (std::runtime_error e) {                                  \
-        size_t prefix_length = strlen(expected_prefix);                 \
-        if (strncmp(expected_prefix, e.what(), prefix_length) != 0) {   \
-          printf("\n%s:%d\nFound:\n%sExpected:\n%s...\n",               \
-                 __FILE__, __LINE__, e.what(), expected_prefix);        \
-          abort();                                                      \
-        }                                                               \
-      }                                                                 \
-    }
+#define TEST(name, code, expected_prefix)                            \
+  TEST_(ABORTS_##name) {                                             \
+    try {                                                            \
+      code;                                                          \
+      printf("\n%s:%d\nNo exception raised.\n", __FILE__, __LINE__); \
+      abort();                                                       \
+    } catch (std::runtime_error e) {                                 \
+      size_t prefix_length = strlen(expected_prefix);                \
+      if (strncmp(expected_prefix, e.what(), prefix_length) != 0) {  \
+        printf("\n%s:%d\nFound:\n%sExpected:\n%s...\n",              \
+               __FILE__,                                             \
+               __LINE__,                                             \
+               e.what(),                                             \
+               expected_prefix);                                     \
+        abort();                                                     \
+      }                                                              \
+    }                                                                \
+  }
 
 TEST(abort, VIXL_ABORT(), "Aborting in ")
 TEST(abort_with_msg, VIXL_ABORT_WITH_MSG("message\n"), "message\nin ")
diff --git a/test/test-api.cc b/test/test-api.cc
index cefcdd4..e84fa0d 100644
--- a/test/test-api.cc
+++ b/test/test-api.cc
@@ -47,127 +47,127 @@
 // Test IsUintN() and IsIntN() against various values and integral types.
 TEST(IsUint_IsInt) {
   UintIntTest<uint32_t> test_little_values_unsigned[] = {
-    { true,  true,  1, UINT32_C(0x0) },
-    { true,  false, 1, UINT32_C(0x1) },
-    { false, false, 1, UINT32_C(0x2) },
-    { false, false, 1, UINT32_C(0x3) },
-    { false, false, 1, UINT32_C(0x4) },
-    { false, false, 1, UINT32_C(0x5) },
-    { false, false, 1, UINT32_C(0x6) },
-    { false, false, 1, UINT32_C(0x7) },
-    { false, false, 1, UINT32_C(0x8) },
-    { false, false, 1, UINT32_C(0x9) },
-    { false, false, 1, UINT32_C(0xa) },
-    { false, false, 1, UINT32_C(0xb) },
-    { false, false, 1, UINT32_C(0xc) },
-    { false, false, 1, UINT32_C(0xd) },
-    { false, false, 1, UINT32_C(0xe) },
-    { false, false, 1, UINT32_C(0xf) },
+      {true, true, 1, UINT32_C(0x0)},
+      {true, false, 1, UINT32_C(0x1)},
+      {false, false, 1, UINT32_C(0x2)},
+      {false, false, 1, UINT32_C(0x3)},
+      {false, false, 1, UINT32_C(0x4)},
+      {false, false, 1, UINT32_C(0x5)},
+      {false, false, 1, UINT32_C(0x6)},
+      {false, false, 1, UINT32_C(0x7)},
+      {false, false, 1, UINT32_C(0x8)},
+      {false, false, 1, UINT32_C(0x9)},
+      {false, false, 1, UINT32_C(0xa)},
+      {false, false, 1, UINT32_C(0xb)},
+      {false, false, 1, UINT32_C(0xc)},
+      {false, false, 1, UINT32_C(0xd)},
+      {false, false, 1, UINT32_C(0xe)},
+      {false, false, 1, UINT32_C(0xf)},
 
-    { true,  true,  2, UINT32_C(0x0) },
-    { true,  true,  2, UINT32_C(0x1) },
-    { true,  false, 2, UINT32_C(0x2) },
-    { true,  false, 2, UINT32_C(0x3) },
-    { false, false, 2, UINT32_C(0x4) },
-    { false, false, 2, UINT32_C(0x5) },
-    { false, false, 2, UINT32_C(0x6) },
-    { false, false, 2, UINT32_C(0x7) },
-    { false, false, 2, UINT32_C(0x8) },
-    { false, false, 2, UINT32_C(0x9) },
-    { false, false, 2, UINT32_C(0xa) },
-    { false, false, 2, UINT32_C(0xb) },
-    { false, false, 2, UINT32_C(0xc) },
-    { false, false, 2, UINT32_C(0xd) },
-    { false, false, 2, UINT32_C(0xe) },
-    { false, false, 2, UINT32_C(0xf) },
+      {true, true, 2, UINT32_C(0x0)},
+      {true, true, 2, UINT32_C(0x1)},
+      {true, false, 2, UINT32_C(0x2)},
+      {true, false, 2, UINT32_C(0x3)},
+      {false, false, 2, UINT32_C(0x4)},
+      {false, false, 2, UINT32_C(0x5)},
+      {false, false, 2, UINT32_C(0x6)},
+      {false, false, 2, UINT32_C(0x7)},
+      {false, false, 2, UINT32_C(0x8)},
+      {false, false, 2, UINT32_C(0x9)},
+      {false, false, 2, UINT32_C(0xa)},
+      {false, false, 2, UINT32_C(0xb)},
+      {false, false, 2, UINT32_C(0xc)},
+      {false, false, 2, UINT32_C(0xd)},
+      {false, false, 2, UINT32_C(0xe)},
+      {false, false, 2, UINT32_C(0xf)},
   };
 
   UintIntTest<int32_t> test_little_values_signed[] = {
-    { true,  true,  1, INT32_C(0)  },
-    { true,  false, 1, INT32_C(1)  },
-    { false, false, 1, INT32_C(2)  },
-    { false, false, 1, INT32_C(3)  },
-    { false, false, 1, INT32_C(4)  },
-    { false, false, 1, INT32_C(5)  },
-    { false, false, 1, INT32_C(6)  },
-    { false, false, 1, INT32_C(7)  },
-    { false, true,  1, INT32_C(-1) },
-    { false, false, 1, INT32_C(-2) },
-    { false, false, 1, INT32_C(-3) },
-    { false, false, 1, INT32_C(-4) },
-    { false, false, 1, INT32_C(-5) },
-    { false, false, 1, INT32_C(-6) },
-    { false, false, 1, INT32_C(-7) },
-    { false, false, 1, INT32_C(-8) },
+      {true, true, 1, INT32_C(0)},
+      {true, false, 1, INT32_C(1)},
+      {false, false, 1, INT32_C(2)},
+      {false, false, 1, INT32_C(3)},
+      {false, false, 1, INT32_C(4)},
+      {false, false, 1, INT32_C(5)},
+      {false, false, 1, INT32_C(6)},
+      {false, false, 1, INT32_C(7)},
+      {false, true, 1, INT32_C(-1)},
+      {false, false, 1, INT32_C(-2)},
+      {false, false, 1, INT32_C(-3)},
+      {false, false, 1, INT32_C(-4)},
+      {false, false, 1, INT32_C(-5)},
+      {false, false, 1, INT32_C(-6)},
+      {false, false, 1, INT32_C(-7)},
+      {false, false, 1, INT32_C(-8)},
 
-    { true,  true,  2, INT32_C(0)  },
-    { true,  true,  2, INT32_C(1)  },
-    { true,  false, 2, INT32_C(2)  },
-    { true,  false, 2, INT32_C(3)  },
-    { false, false, 2, INT32_C(4)  },
-    { false, false, 2, INT32_C(5)  },
-    { false, false, 2, INT32_C(6)  },
-    { false, false, 2, INT32_C(7)  },
-    { false, true,  2, INT32_C(-1) },
-    { false, true,  2, INT32_C(-2) },
-    { false, false, 2, INT32_C(-3) },
-    { false, false, 2, INT32_C(-4) },
-    { false, false, 2, INT32_C(-5) },
-    { false, false, 2, INT32_C(-6) },
-    { false, false, 2, INT32_C(-7) },
-    { false, false, 2, INT32_C(-8) },
+      {true, true, 2, INT32_C(0)},
+      {true, true, 2, INT32_C(1)},
+      {true, false, 2, INT32_C(2)},
+      {true, false, 2, INT32_C(3)},
+      {false, false, 2, INT32_C(4)},
+      {false, false, 2, INT32_C(5)},
+      {false, false, 2, INT32_C(6)},
+      {false, false, 2, INT32_C(7)},
+      {false, true, 2, INT32_C(-1)},
+      {false, true, 2, INT32_C(-2)},
+      {false, false, 2, INT32_C(-3)},
+      {false, false, 2, INT32_C(-4)},
+      {false, false, 2, INT32_C(-5)},
+      {false, false, 2, INT32_C(-6)},
+      {false, false, 2, INT32_C(-7)},
+      {false, false, 2, INT32_C(-8)},
   };
 
   UintIntTest<uint32_t> test_u16[] = {
-    { true,  true,  16, UINT32_C(0x0)        },
-    { true,  false, 16, UINT32_C(0xabcd)     },
-    { true,  false, 16, UINT32_C(0x8000)     },
-    { true,  false, 16, UINT32_C(0xffff)     },
-    { false, false, 16, UINT32_C(0x10000)    },
-    { false, false, 16, UINT32_C(0xffff0000) },
-    { false, false, 16, UINT32_C(0xffff8000) },
-    { false, false, 16, UINT32_C(0xffffffff) },
+      {true, true, 16, UINT32_C(0x0)},
+      {true, false, 16, UINT32_C(0xabcd)},
+      {true, false, 16, UINT32_C(0x8000)},
+      {true, false, 16, UINT32_C(0xffff)},
+      {false, false, 16, UINT32_C(0x10000)},
+      {false, false, 16, UINT32_C(0xffff0000)},
+      {false, false, 16, UINT32_C(0xffff8000)},
+      {false, false, 16, UINT32_C(0xffffffff)},
   };
 
   UintIntTest<int32_t> test_i16[] = {
-    { true,  true,  16, INT32_C(0x0)     },
-    { true,  false, 16, INT32_C(0xabcd)  },
-    { true,  false, 16, INT32_C(0x8000)  },
-    { true,  false, 16, INT32_C(0xffff)  },
-    { false, false, 16, INT32_C(0x10000) },
-    { true,  true,  16, INT32_C(42)      },
-    { false, true,  16, INT32_C(-42)     },
-    { false, true,  16, INT32_C(-1)      },
+      {true, true, 16, INT32_C(0x0)},
+      {true, false, 16, INT32_C(0xabcd)},
+      {true, false, 16, INT32_C(0x8000)},
+      {true, false, 16, INT32_C(0xffff)},
+      {false, false, 16, INT32_C(0x10000)},
+      {true, true, 16, INT32_C(42)},
+      {false, true, 16, INT32_C(-42)},
+      {false, true, 16, INT32_C(-1)},
   };
 
   UintIntTest<uint64_t> test_u32[] = {
-    { true,  true,  32, UINT64_C(0x0)        },
-    { true,  false, 32, UINT64_C(0xabcdabcd) },
-    { true,  false, 32, UINT64_C(0x80000000) },
-    { true,  false, 32, UINT64_C(0xffffffff) },
+      {true, true, 32, UINT64_C(0x0)},
+      {true, false, 32, UINT64_C(0xabcdabcd)},
+      {true, false, 32, UINT64_C(0x80000000)},
+      {true, false, 32, UINT64_C(0xffffffff)},
   };
 
   UintIntTest<int64_t> test_i32[] = {
-    { true,  true,  32, INT64_C(0)           },
-    { true,  true,  32, INT64_C(42)          },
-    { false, true,  32, INT64_C(-42)         },
-    { false, true,  32, INT64_C(-1)          },
-    { true,  true,  32, INT64_C(2147483647)  }, // (1 << (32 - 1)) - 1
-    { false, true,  32, INT64_C(-2147483648) }, // -(1 << (32 - 1))
+      {true, true, 32, INT64_C(0)},
+      {true, true, 32, INT64_C(42)},
+      {false, true, 32, INT64_C(-42)},
+      {false, true, 32, INT64_C(-1)},
+      {true, true, 32, INT64_C(2147483647)},    // (1 << (32 - 1)) - 1
+      {false, true, 32, INT64_C(-2147483648)},  // -(1 << (32 - 1))
   };
 
   UintIntTest<uint64_t> test_unsigned_higher_than_32[] = {
-    { false, false, 54, UINT64_C(0xabcdef9012345678) },
-    { true,  false, 33, UINT64_C(0x100000000)        },
-    { true,  false, 62, UINT64_C(0x3fffffffffffffff) },
-    { true,  false, 63, UINT64_C(0x7fffffffffffffff) },
+      {false, false, 54, UINT64_C(0xabcdef9012345678)},
+      {true, false, 33, UINT64_C(0x100000000)},
+      {true, false, 62, UINT64_C(0x3fffffffffffffff)},
+      {true, false, 63, UINT64_C(0x7fffffffffffffff)},
   };
 
   UintIntTest<int64_t> test_signed_higher_than_32[] = {
-    { true,  true,  54, INT64_C(9007199254740991) }, // (1 << (54 - 1)) - 1
-    { true,  false, 54, INT64_C(9007199254740992) }, // 1 << (54 - 1)
-    { true,  true,  33, INT64_C(4294967295)       }, // (1 << (33 - 1) - 1)
-    { false, true,  33, INT64_C(-4294967296)      }, // -(1 << (33 - 1))
+      {true, true, 54, INT64_C(9007199254740991)},   // (1 << (54 - 1)) - 1
+      {true, false, 54, INT64_C(9007199254740992)},  // 1 << (54 - 1)
+      {true, true, 33, INT64_C(4294967295)},         // (1 << (33 - 1) - 1)
+      {false, true, 33, INT64_C(-4294967296)},       // -(1 << (33 - 1))
   };
 
 #define TEST_LIST(M)              \
@@ -181,7 +181,7 @@
   M(test_signed_higher_than_32)
 
 
-#define TEST_UINT(test_vector) \
+#define TEST_UINT(test_vector)                                  \
   for (unsigned i = 0; i < ARRAY_SIZE(test_vector); i++) {      \
     if (test_vector[i].is_uintn) {                              \
       VIXL_CHECK(IsUintN(test_vector[i].n, test_vector[i].x));  \
@@ -190,17 +190,17 @@
     }                                                           \
   }
 
-#define TEST_INT(test_vector) \
-  for (unsigned i = 0; i < ARRAY_SIZE(test_vector); i++) {      \
-    if (test_vector[i].is_intn) {                               \
-      VIXL_CHECK(IsIntN(test_vector[i].n, test_vector[i].x));   \
-    } else {                                                    \
-      VIXL_CHECK(!IsIntN(test_vector[i].n, test_vector[i].x));  \
-    }                                                           \
+#define TEST_INT(test_vector)                                  \
+  for (unsigned i = 0; i < ARRAY_SIZE(test_vector); i++) {     \
+    if (test_vector[i].is_intn) {                              \
+      VIXL_CHECK(IsIntN(test_vector[i].n, test_vector[i].x));  \
+    } else {                                                   \
+      VIXL_CHECK(!IsIntN(test_vector[i].n, test_vector[i].x)); \
+    }                                                          \
   }
 
-TEST_LIST(TEST_UINT)
-TEST_LIST(TEST_INT)
+  TEST_LIST(TEST_UINT)
+  TEST_LIST(TEST_INT)
 
 #undef TEST_UINT
 #undef TEST_INT
diff --git a/test/test-code-buffer.cc b/test/test-code-buffer.cc
index 06c3c83..ce947ca 100644
--- a/test/test-code-buffer.cc
+++ b/test/test-code-buffer.cc
@@ -30,7 +30,7 @@
 
 namespace vixl {
 
-#define TEST(name)  TEST_(CODE_BUFFER_##name)
+#define TEST(name) TEST_(CODE_BUFFER_##name)
 
 TEST(align_grow) {
   CodeBuffer code_buffer(2);
diff --git a/test/test-code-generation-scopes.cc b/test/test-code-generation-scopes.cc
index 3b312e9..1fd98d8 100644
--- a/test/test-code-generation-scopes.cc
+++ b/test/test-code-generation-scopes.cc
@@ -34,13 +34,13 @@
 #include "aarch64/macro-assembler-aarch64.h"
 #endif
 
-#define TEST(name)  TEST_(SCOPES_##name)
+#define TEST(name) TEST_(SCOPES_##name)
 
 #ifdef VIXL_INCLUDE_TARGET_A32
-#define TEST_A32(name)  TEST(name)
+#define TEST_A32(name) TEST(name)
 #else
 // Do not add this test to the harness.
-#define TEST_A32(name)  void Test##name()
+#define TEST_A32(name) void Test##name()
 #endif
 
 #define __ masm.
@@ -337,7 +337,7 @@
 
 #ifdef VIXL_INCLUDE_TARGET_AARCH32
 
-#define ASSERT_LITERAL_POOL_SIZE_32(expected)                                  \
+#define ASSERT_LITERAL_POOL_SIZE_32(expected) \
   VIXL_CHECK((expected) == masm.GetLiteralPoolSize())
 
 TEST_A32(EmissionCheckScope_emit_pool_32) {
@@ -378,9 +378,9 @@
 
 #ifdef VIXL_INCLUDE_TARGET_AARCH64
 
-#define ASSERT_LITERAL_POOL_SIZE_64(expected)                                  \
-  VIXL_CHECK(                                                                  \
-      (expected + aarch64::kInstructionSize) == masm.GetLiteralPoolSize())
+#define ASSERT_LITERAL_POOL_SIZE_64(expected)          \
+  VIXL_CHECK((expected + aarch64::kInstructionSize) == \
+             masm.GetLiteralPoolSize())
 
 TEST(EmissionCheckScope_emit_pool_64) {
   aarch64::MacroAssembler masm;
@@ -553,7 +553,7 @@
   aarch32::MacroAssembler masm;
 
   {
-    CodeBufferCheckScope scope(&masm, aarch32::kA32InstructionSizeInBytes);
+    ExactAssemblyScope scope(&masm, aarch32::kA32InstructionSizeInBytes);
     __ mov(aarch32::r0, 0);
     scope.Close();
     __ Mov(aarch32::r1, 1);
@@ -569,7 +569,7 @@
   aarch64::MacroAssembler masm;
 
   {
-    CodeBufferCheckScope scope(&masm, aarch64::kInstructionSize);
+    ExactAssemblyScope scope(&masm, aarch64::kInstructionSize);
     __ movz(aarch64::x0, 0);
     scope.Close();
     __ Mov(aarch64::x1, 1);
@@ -621,18 +621,28 @@
   aarch32::MacroAssembler masm;
 
   // By default macro instructions are allowed.
+  VIXL_CHECK(!masm.ArePoolsBlocked());
+  VIXL_ASSERT(!masm.AllowAssembler());
   VIXL_ASSERT(masm.AllowMacroInstructions());
   {
     ExactAssemblyScope scope1(&masm, 2 * aarch32::kA32InstructionSizeInBytes);
+    VIXL_CHECK(masm.ArePoolsBlocked());
+    VIXL_ASSERT(masm.AllowAssembler());
     VIXL_ASSERT(!masm.AllowMacroInstructions());
     __ nop();
     {
       ExactAssemblyScope scope2(&masm, 1 * aarch32::kA32InstructionSizeInBytes);
+      VIXL_CHECK(masm.ArePoolsBlocked());
+      VIXL_ASSERT(masm.AllowAssembler());
       VIXL_ASSERT(!masm.AllowMacroInstructions());
       __ nop();
     }
+    VIXL_CHECK(masm.ArePoolsBlocked());
+    VIXL_ASSERT(masm.AllowAssembler());
     VIXL_ASSERT(!masm.AllowMacroInstructions());
   }
+  VIXL_CHECK(!masm.ArePoolsBlocked());
+  VIXL_ASSERT(!masm.AllowAssembler());
   VIXL_ASSERT(masm.AllowMacroInstructions());
 
   {
@@ -651,18 +661,28 @@
   aarch64::MacroAssembler masm;
 
   // By default macro instructions are allowed.
+  VIXL_CHECK(!masm.ArePoolsBlocked());
+  VIXL_ASSERT(!masm.AllowAssembler());
   VIXL_ASSERT(masm.AllowMacroInstructions());
   {
     ExactAssemblyScope scope1(&masm, 2 * aarch64::kInstructionSize);
+    VIXL_CHECK(masm.ArePoolsBlocked());
+    VIXL_ASSERT(masm.AllowAssembler());
     VIXL_ASSERT(!masm.AllowMacroInstructions());
     __ nop();
     {
       ExactAssemblyScope scope2(&masm, 1 * aarch64::kInstructionSize);
+      VIXL_CHECK(masm.ArePoolsBlocked());
+      VIXL_ASSERT(masm.AllowAssembler());
       VIXL_ASSERT(!masm.AllowMacroInstructions());
       __ nop();
     }
+    VIXL_CHECK(masm.ArePoolsBlocked());
+    VIXL_ASSERT(masm.AllowAssembler());
     VIXL_ASSERT(!masm.AllowMacroInstructions());
   }
+  VIXL_CHECK(!masm.ArePoolsBlocked());
+  VIXL_ASSERT(!masm.AllowAssembler());
   VIXL_ASSERT(masm.AllowMacroInstructions());
 
   {
@@ -692,7 +712,8 @@
     // The literal pool should be generated when opening this scope, as
     // otherwise the `Ldrd` will run out of range when we generate the `nop`
     // instructions below.
-    ExactAssemblyScope scope(&masm, n_nops * aarch32::kA32InstructionSizeInBytes);
+    ExactAssemblyScope scope(&masm,
+                             n_nops * aarch32::kA32InstructionSizeInBytes);
 
     // Although it must be, we do not check that the literal pool size is zero
     // here, because we want this regression test to fail while or after we
@@ -745,4 +766,3 @@
 
 
 }  // namespace vixl
-
diff --git a/test/test-invalset.cc b/test/test-invalset.cc
index f8af5bf..f3aeb91 100644
--- a/test/test-invalset.cc
+++ b/test/test-invalset.cc
@@ -31,7 +31,7 @@
 
 // This file contains tests for the `InvalSet` and `InvalSetIterator` classes.
 
-#define TEST(name)  TEST_(INVALSET_##name)
+#define TEST(name) TEST_(INVALSET_##name)
 
 typedef ptrdiff_t KeyType;
 typedef ptrdiff_t ValType;
@@ -48,16 +48,14 @@
     return (key_ == other.key_) && (val_ == other.val_);
   }
   bool operator<(const Obj& other) const {
-    return (key_ < other.key_) ||
-        ((key_ == other.key_) && (val_ < other.val_));
+    return (key_ < other.key_) || ((key_ == other.key_) && (val_ < other.val_));
   }
   bool operator<=(const Obj& other) const {
     return (key_ <= other.key_) ||
-        ((key_ == other.key_) && (val_ <= other.val_));
+           ((key_ == other.key_) && (val_ <= other.val_));
   }
   bool operator>(const Obj& other) const {
-    return (key_ > other.key_) ||
-        ((key_ == other.key_) && (val_ > other.val_));
+    return (key_ > other.key_) || ((key_ == other.key_) && (val_ > other.val_));
   }
 };
 
@@ -73,7 +71,7 @@
                  kReclaimFrom,
                  kReclaimFactor> TestSet;
 
-template<>
+template <>
 inline KeyType InvalSet<Obj,
                         kNPreallocatedElements,
                         KeyType,
@@ -82,7 +80,7 @@
                         kReclaimFactor>::GetKey(const Obj& obj) {
   return obj.key_;
 }
-template<>
+template <>
 inline void InvalSet<Obj,
                      kNPreallocatedElements,
                      KeyType,
@@ -234,8 +232,7 @@
   VIXL_CHECK(total == expected_total);
 
   // Test with more elements.
-  for (unsigned i = kNPreallocatedElements;
-       i < 4 * kNPreallocatedElements;
+  for (unsigned i = kNPreallocatedElements; i < 4 * kNPreallocatedElements;
        i++) {
     set.insert(Obj(i, i));
     expected_total += i;
@@ -304,8 +301,7 @@
   VIXL_CHECK(total == expected_total);
 
   // Test with more elements.
-  for (unsigned i = kNPreallocatedElements;
-       i < 4 * kNPreallocatedElements;
+  for (unsigned i = kNPreallocatedElements; i < 4 * kNPreallocatedElements;
        i++) {
     set.insert(Obj(i, i));
     expected_total += i;
@@ -355,10 +351,10 @@
 
 TEST(stl_forward_iterator) {
   {
-    TestSet::iterator default_it;               // Default-constructible.
-    TestSet::iterator copy_it(default_it);      // Copy-constructible.
-    copy_it = default_it;                       // Copy-assignable.
-  }                                             // Destructible.
+    TestSet::iterator default_it;           // Default-constructible.
+    TestSet::iterator copy_it(default_it);  // Copy-constructible.
+    copy_it = default_it;                   // Copy-assignable.
+  }                                         // Destructible.
 
   TestSet set1;
   VIXL_CHECK(set1.empty() && (set1.size() == 0));
diff --git a/test/test-operands.cc b/test/test-operands.cc
index 5a239e3..30c8527 100644
--- a/test/test-operands.cc
+++ b/test/test-operands.cc
@@ -33,7 +33,7 @@
 #include "aarch32/operands-aarch32.h"
 #endif
 
-#define TEST_AARCH32(name)  TEST_(AARCH32_OPERANDS_##name)
+#define TEST_AARCH32(name) TEST_(AARCH32_OPERANDS_##name)
 
 namespace vixl {
 
diff --git a/test/test-runner.cc b/test/test-runner.cc
index ae615a0..361d69c 100644
--- a/test/test-runner.cc
+++ b/test/test-runner.cc
@@ -57,7 +57,7 @@
 
 // Instantiate a Test and append it to the linked list.
 vixl::Test::Test(const char* name, TestFunction* callback)
-  : name_(name), callback_(callback), next_(NULL) {
+    : name_(name), callback_(callback), next_(NULL) {
   // Append this test to the linked list.
   if (first_ == NULL) {
     VIXL_ASSERT(last_ == NULL);
@@ -86,11 +86,11 @@
 }
 
 
-static void NormalizeOption(char * arg) {
+static void NormalizeOption(char* arg) {
   // Squash all '_' characters in options. This allows --trace_sim and
   // --trace-sim to be handled in the same way, for example.
   VIXL_ASSERT(IsOption(arg));
-  for (char * c = arg; *c != '\0'; c++) {
+  for (char* c = arg; *c != '\0'; c++) {
     if (*c == '_') {
       *c = '-';
     }
@@ -99,7 +99,8 @@
 
 
 static void PrintHelpMessage() {
-  printf("Usage:  ./test [options] [test names]\n"
+  printf(
+      "Usage:  ./test [options] [test names]\n"
       "Run all tests specified on the command line.\n"
       "--help                 Print this help message.\n"
       "--list                 List all available tests.\n"
@@ -225,4 +226,3 @@
 
   return EXIT_SUCCESS;
 }
-
diff --git a/test/test-runner.h b/test/test-runner.h
index ae73911..ea1bf48 100644
--- a/test/test-runner.h
+++ b/test/test-runner.h
@@ -34,7 +34,7 @@
 // Each actual test is represented by a Test instance.
 // Tests are appended to a static linked list upon creation.
 class Test {
-  typedef void (TestFunction)();
+  typedef void(TestFunction)();
 
  public:
   Test(const char* name, TestFunction* callback);
@@ -90,10 +90,10 @@
 
 // Macro to register a test. It instantiates a Test and registers its
 // callback function.
-#define TEST_(Name)                                                            \
-void Test##Name();                                                             \
-Test test_##Name(#Name, &Test##Name);                                          \
-void Test##Name()
+#define TEST_(Name)                     \
+  void Test##Name();                    \
+  Test test_##Name(#Name, &Test##Name); \
+  void Test##Name()
 }  // namespace vixl
 
 #endif  // TEST_TEST_H_
diff --git a/test/test-use-scratch-register-scope.cc b/test/test-use-scratch-register-scope.cc
index 1cac6e6..a11c405 100644
--- a/test/test-use-scratch-register-scope.cc
+++ b/test/test-use-scratch-register-scope.cc
@@ -38,21 +38,25 @@
 
 #define STRINGIFY(x) #x
 
-#define TEST_AARCH32(Name)                                                    \
-  namespace aarch32 { void Test_##Name##_AArch32_Impl(); }                    \
-  void Test_##Name##_AArch32() { aarch32::Test_##Name##_AArch32_Impl(); }     \
-  Test test_##Name##_AArch32(STRINGIFY(AARCH32_SCRATCH_##Name),               \
-                                       &Test_##Name##_AArch32);               \
+#define TEST_AARCH32(Name)                                                \
+  namespace aarch32 {                                                     \
+  void Test_##Name##_AArch32_Impl();                                      \
+  }                                                                       \
+  void Test_##Name##_AArch32() { aarch32::Test_##Name##_AArch32_Impl(); } \
+  Test test_##Name##_AArch32(STRINGIFY(AARCH32_SCRATCH_##Name),           \
+                             &Test_##Name##_AArch32);                     \
   void aarch32::Test_##Name##_AArch32_Impl()
 
-#define TEST_AARCH64(Name)                                                    \
-  namespace aarch64 { void Test_##Name##_AArch64_Impl(); }                    \
-  void Test_##Name##_AArch64() { aarch64::Test_##Name##_AArch64_Impl(); }     \
-  Test test_##Name##_AArch64(STRINGIFY(AARCH64_SCRATCH_##Name),               \
-                                       &Test_##Name##_AArch64);               \
+#define TEST_AARCH64(Name)                                                \
+  namespace aarch64 {                                                     \
+  void Test_##Name##_AArch64_Impl();                                      \
+  }                                                                       \
+  void Test_##Name##_AArch64() { aarch64::Test_##Name##_AArch64_Impl(); } \
+  Test test_##Name##_AArch64(STRINGIFY(AARCH64_SCRATCH_##Name),           \
+                             &Test_##Name##_AArch64);                     \
   void aarch64::Test_##Name##_AArch64_Impl()
 
-#define SETUP()  MacroAssembler masm
+#define SETUP() MacroAssembler masm
 #define TEARDOWN()
 
 #define __ masm.
@@ -61,7 +65,7 @@
 
 // UseScratchRegisterScopes must be able to nest perfectly. That is, they may
 // nest, but nested scopes must not outlive less-nested scopes.
-template<typename MacroAssembler, typename UseScratchRegisterScope>
+template <typename MacroAssembler, typename UseScratchRegisterScope>
 class PerfectNestingTestHelper {
  public:
   explicit PerfectNestingTestHelper(MacroAssembler* masm) : masm_(masm) {
@@ -69,7 +73,8 @@
     seed48(seed);
   }
   void Run() {
-    UseScratchRegisterScope* top_scope = masm_->GetCurrentScratchRegisterScope();
+    UseScratchRegisterScope* top_scope =
+        masm_->GetCurrentScratchRegisterScope();
     int descendents = 0;
     while (descendents < kMinimumDescendentScopeCount) descendents += Run(0);
     VIXL_CHECK(masm_->GetCurrentScratchRegisterScope() == top_scope);
@@ -99,8 +104,8 @@
 #ifdef VIXL_INCLUDE_TARGET_AARCH32
 TEST_AARCH32(perfect_nesting) {
   SETUP();
-  PerfectNestingTestHelper<MacroAssembler,
-                           UseScratchRegisterScope>(&masm).Run();
+  PerfectNestingTestHelper<MacroAssembler, UseScratchRegisterScope>(&masm)
+      .Run();
   TEARDOWN();
 }
 #endif  // VIXL_INCLUDE_TARGET_AARCH32
@@ -108,8 +113,8 @@
 #ifdef VIXL_INCLUDE_TARGET_AARCH64
 TEST_AARCH64(perfect_nesting) {
   SETUP();
-  PerfectNestingTestHelper<MacroAssembler,
-                           UseScratchRegisterScope>(&masm).Run();
+  PerfectNestingTestHelper<MacroAssembler, UseScratchRegisterScope>(&masm)
+      .Run();
   TEARDOWN();
 }
 #endif  // VIXL_INCLUDE_TARGET_AARCH64
diff --git a/test/test-utils.cc b/test/test-utils.cc
index 4abcf56..5d08ab4 100644
--- a/test/test-utils.cc
+++ b/test/test-utils.cc
@@ -58,7 +58,7 @@
 #if defined(__aarch64__) && defined(VIXL_INCLUDE_TARGET_AARCH64)
   aarch64::CPU::EnsureIAndDCacheCoherency(buffer, size);
 #elif defined(__arm__) && \
-      (defined(VIXL_INCLUDE_TARGET_A32) || defined(VIXL_INCLUDE_TARGET_T32))
+    (defined(VIXL_INCLUDE_TARGET_A32) || defined(VIXL_INCLUDE_TARGET_T32))
   // TODO: Do not use __builtin___clear_cache and instead implement
   // `CPU::EnsureIAndDCacheCoherency` for aarch32.
   __builtin___clear_cache(buffer, reinterpret_cast<char*>(buffer) + size);
diff --git a/tools/clang_format.py b/tools/clang_format.py
index 3121ade..aebb458 100755
--- a/tools/clang_format.py
+++ b/tools/clang_format.py
@@ -159,7 +159,7 @@
   return rc
 
 
-def Find(path, filters = ['*']):
+def Find(path, filters = ['*'], excluded_dir = ""):
   files_found = []
 
   def NameMatchesAnyFilter(name, ff):
@@ -169,8 +169,14 @@
     return False
 
   for root, dirs, files in os.walk(path):
-    files_found += [os.path.relpath(os.path.join(root, fn))
-                    for fn in files if NameMatchesAnyFilter(fn, filters)]
+    files_found += [
+        os.path.join(root, fn)
+        for fn in files
+        # Include files which names match "filters".
+        # Exclude files for which the base directory is "excluded_dir".
+        if NameMatchesAnyFilter(os.path.relpath(fn), filters) and \
+            not os.path.dirname(os.path.join(root, fn)).endswith(excluded_dir)
+    ]
   return files_found
 
 
@@ -180,9 +186,10 @@
                  config.dir_aarch32_examples,
                  config.dir_aarch64_benchmarks,
                  config.dir_aarch64_examples,
+                 config.dir_tests,
                  config.dir_src_vixl ]
   for directory in source_dirs:
-    sources += Find(directory, ['*.h', '*.cc'])
+    sources += Find(directory, ['*.h', '*.cc'], 'traces')
   return sources
 
 
diff --git a/tools/config.py b/tools/config.py
index 7137ec3..b492652 100644
--- a/tools/config.py
+++ b/tools/config.py
@@ -40,17 +40,23 @@
 dir_aarch64_traces     = os.path.join(dir_tests, 'aarch64', 'traces')
 dir_aarch32_traces     = os.path.join(dir_tests, 'aarch32', 'traces')
 
+# The following set of options are tested in all combinations. The order is
+# important; the _first_ option in each list is used as the basis for the
+# independently-tested options below.
 
 # The full list of available build modes.
-build_options_modes = ['release', 'debug']
-# The list of target arch/isa options to test with. Do not list 'all' as an
-# option since it is the default.
-build_options_target = ['a32', 't32', 'a32,t32', 'a64', 'a64,a32', 'a64,t32']
-# Negative testing is off by default, so do not list 'off' as an option.
-build_options_negative_testing = ['on']
+build_options_modes = ['debug', 'release']
 # The list of C++ standard to test for.
 tested_cpp_standards = ['c++98', 'c++11']
 # The list of compilers tested.
 tested_compilers = ['clang++', 'g++']
 
+# The following sets of options are tested independently, and are not combined
+# with one another. Each one in turn is appended to the first combination of the
+# options above.
 
+# The list of target arch/isa options to test with. Do not list 'all' as an
+# option since it is the default.
+build_options_target = ['a32', 't32', 'a32,t32', 'a64', 'a64,a32', 'a64,t32']
+# Negative testing is off by default, so do not list 'off' as an option.
+build_options_negative_testing = ['on']
diff --git a/tools/test.py b/tools/test.py
index 7806eed..fa07544 100755
--- a/tools/test.py
+++ b/tools/test.py
@@ -221,6 +221,10 @@
                                  and run only with one compiler, in one mode,
                                  with one C++ standard, and with an appropriate
                                  default for runtime options.''')
+  general_arguments.add_argument('--dry-run', action='store_true',
+                                 help='''Don't actually build or run anything,
+                                 but print the configurations that would be
+                                 tested.''')
   general_arguments.add_argument(
     '--jobs', '-j', metavar='N', type=int, nargs='?',
     default=multiprocessing.cpu_count(),
@@ -438,11 +442,11 @@
     SetFast(build_option_mode, args.mode, 'debug')
     SetFast(runtime_option_debugger, args.debugger, 'on')
 
-  if not args.nolint and not args.fast:
+  if not args.nolint and not (args.fast or args.dry_run):
     rc |= RunLinter()
     MaybeExitEarly(rc)
 
-  if not args.noclang_format and not args.fast:
+  if not args.noclang_format and not (args.fast or args.dry_run):
     rc |= RunClangFormat()
     MaybeExitEarly(rc)
 
@@ -460,22 +464,33 @@
     ]
     return list(itertools.product(*opts_list))
   # List combinations of options that should only be tested independently.
-  def ListIndependentCombinations(args, options):
+  def ListIndependentCombinations(args, options, base):
     n = []
     for opt in options:
       if opt.test_independently:
         for o in opt.ArgList(args.__dict__[opt.name]):
-          n.append((o,))
+          n.append(base + (o,))
     return n
   # TODO: We should refine the configurations we test by default, instead of
   #       always testing all possible combinations.
   test_env_combinations = ListCombinations(args, test_environment_options)
   test_build_combinations = ListCombinations(args, test_build_options)
-  test_build_combinations.extend(ListIndependentCombinations(args, test_build_options))
+  if not args.fast:
+    test_build_combinations.extend(
+        ListIndependentCombinations(args,
+                                    test_build_options,
+                                    test_build_combinations[0]))
   test_runtime_combinations = ListCombinations(args, test_runtime_options)
 
   for environment_options in test_env_combinations:
     for build_options in test_build_combinations:
+      if (args.dry_run):
+        for runtime_options in test_runtime_combinations:
+          print(' '.join(filter(None, environment_options)) + ', ' +
+                ' '.join(filter(None, build_options)) + ', ' +
+                ' '.join(filter(None, runtime_options)))
+        continue
+
       # Avoid going through the build stage if we are not using the build
       # result.
       if not (args.notest and args.nobench):
@@ -509,6 +524,7 @@
         rc |= RunBenchmarks(build_options, args)
         MaybeExitEarly(rc)
 
-  PrintStatus(rc == 0)
+  if not args.dry_run:
+    PrintStatus(rc == 0)
 
   sys.exit(rc)
