/*
 *    regchecker - watch out for registers that are not correctly saved/restored
 *    Copyright (C) 2005  Tony Luck, Intel Corporation
 *
 *    This program is free software; you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *
 *    This program is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with this program; if not, write to the Free Software
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

	.text
	.align 16
	.global regcheck#
	.proc regcheck#
regcheck:
	alloc loc1 = ar.pfs, 2, 8, 40, 0
	mov loc0 = b0
	mov r8 = r0 // assume success

	# Save regs
	mov loc3 = in0;;
	stf.spill [loc3] = f0, 16;;
	stf.spill [loc3] = f1, 16;;
	stf.spill [loc3] = f2, 16;;
	stf.spill [loc3] = f3, 16;;
	stf.spill [loc3] = f4, 16;;
	stf.spill [loc3] = f5, 16;;
	stf.spill [loc3] = f6, 16;;
	stf.spill [loc3] = f7, 16;;
	stf.spill [loc3] = f8, 16;;
	stf.spill [loc3] = f9, 16;;
	stf.spill [loc3] = f10, 16;;
	stf.spill [loc3] = f11, 16;;
	stf.spill [loc3] = f12, 16;;
	stf.spill [loc3] = f13, 16;;
	stf.spill [loc3] = f14, 16;;
	stf.spill [loc3] = f15, 16;;
	stf.spill [loc3] = f16, 16;;
	stf.spill [loc3] = f17, 16;;
	stf.spill [loc3] = f18, 16;;
	stf.spill [loc3] = f19, 16;;
	stf.spill [loc3] = f20, 16;;
	stf.spill [loc3] = f21, 16;;
	stf.spill [loc3] = f22, 16;;
	stf.spill [loc3] = f23, 16;;
	stf.spill [loc3] = f24, 16;;
	stf.spill [loc3] = f25, 16;;
	stf.spill [loc3] = f26, 16;;
	stf.spill [loc3] = f27, 16;;
	stf.spill [loc3] = f28, 16;;
	stf.spill [loc3] = f29, 16;;
	stf.spill [loc3] = f30, 16;;
	stf.spill [loc3] = f31, 16;;
	stf.spill [loc3] = f32, 16;;
	stf.spill [loc3] = f33, 16;;
	stf.spill [loc3] = f34, 16;;
	stf.spill [loc3] = f35, 16;;
	stf.spill [loc3] = f36, 16;;
	stf.spill [loc3] = f37, 16;;
	stf.spill [loc3] = f38, 16;;
	stf.spill [loc3] = f39, 16;;
	stf.spill [loc3] = f40, 16;;
	stf.spill [loc3] = f41, 16;;
	stf.spill [loc3] = f42, 16;;
	stf.spill [loc3] = f43, 16;;
	stf.spill [loc3] = f44, 16;;
	stf.spill [loc3] = f45, 16;;
	stf.spill [loc3] = f46, 16;;
	stf.spill [loc3] = f47, 16;;
	stf.spill [loc3] = f48, 16;;
	stf.spill [loc3] = f49, 16;;
	stf.spill [loc3] = f50, 16;;
	stf.spill [loc3] = f51, 16;;
	stf.spill [loc3] = f52, 16;;
	stf.spill [loc3] = f53, 16;;
	stf.spill [loc3] = f54, 16;;
	stf.spill [loc3] = f55, 16;;
	stf.spill [loc3] = f56, 16;;
	stf.spill [loc3] = f57, 16;;
	stf.spill [loc3] = f58, 16;;
	stf.spill [loc3] = f59, 16;;
	stf.spill [loc3] = f60, 16;;
	stf.spill [loc3] = f61, 16;;
	stf.spill [loc3] = f62, 16;;
	stf.spill [loc3] = f63, 16;;
	stf.spill [loc3] = f64, 16;;
	stf.spill [loc3] = f65, 16;;
	stf.spill [loc3] = f66, 16;;
	stf.spill [loc3] = f67, 16;;
	stf.spill [loc3] = f68, 16;;
	stf.spill [loc3] = f69, 16;;
	stf.spill [loc3] = f70, 16;;
	stf.spill [loc3] = f71, 16;;
	stf.spill [loc3] = f72, 16;;
	stf.spill [loc3] = f73, 16;;
	stf.spill [loc3] = f74, 16;;
	stf.spill [loc3] = f75, 16;;
	stf.spill [loc3] = f76, 16;;
	stf.spill [loc3] = f77, 16;;
	stf.spill [loc3] = f78, 16;;
	stf.spill [loc3] = f79, 16;;
	stf.spill [loc3] = f80, 16;;
	stf.spill [loc3] = f81, 16;;
	stf.spill [loc3] = f82, 16;;
	stf.spill [loc3] = f83, 16;;
	stf.spill [loc3] = f84, 16;;
	stf.spill [loc3] = f85, 16;;
	stf.spill [loc3] = f86, 16;;
	stf.spill [loc3] = f87, 16;;
	stf.spill [loc3] = f88, 16;;
	stf.spill [loc3] = f89, 16;;
	stf.spill [loc3] = f90, 16;;
	stf.spill [loc3] = f91, 16;;
	stf.spill [loc3] = f92, 16;;
	stf.spill [loc3] = f93, 16;;
	stf.spill [loc3] = f94, 16;;
	stf.spill [loc3] = f95, 16;;
	stf.spill [loc3] = f96, 16;;
	stf.spill [loc3] = f97, 16;;
	stf.spill [loc3] = f98, 16;;
	stf.spill [loc3] = f99, 16;;
	stf.spill [loc3] = f100, 16;;
	stf.spill [loc3] = f101, 16;;
	stf.spill [loc3] = f102, 16;;
	stf.spill [loc3] = f103, 16;;
	stf.spill [loc3] = f104, 16;;
	stf.spill [loc3] = f105, 16;;
	stf.spill [loc3] = f106, 16;;
	stf.spill [loc3] = f107, 16;;
	stf.spill [loc3] = f108, 16;;
	stf.spill [loc3] = f109, 16;;
	stf.spill [loc3] = f110, 16;;
	stf.spill [loc3] = f111, 16;;
	stf.spill [loc3] = f112, 16;;
	stf.spill [loc3] = f113, 16;;
	stf.spill [loc3] = f114, 16;;
	stf.spill [loc3] = f115, 16;;
	stf.spill [loc3] = f116, 16;;
	stf.spill [loc3] = f117, 16;;
	stf.spill [loc3] = f118, 16;;
	stf.spill [loc3] = f119, 16;;
	stf.spill [loc3] = f120, 16;;
	stf.spill [loc3] = f121, 16;;
	stf.spill [loc3] = f122, 16;;
	stf.spill [loc3] = f123, 16;;
	stf.spill [loc3] = f124, 16;;
	stf.spill [loc3] = f125, 16;;
	stf.spill [loc3] = f126, 16;;
	stf.spill [loc3] = f127, 16;;

	st8 [loc3] = r0, 8;;
	st8 [loc3] = r1, 8;;
	st8 [loc3] = r2, 8;;
	st8 [loc3] = r3, 8;;
	st8 [loc3] = r4, 8;;
	st8 [loc3] = r5, 8;;
	st8 [loc3] = r6, 8;;
	st8 [loc3] = r7, 8;;
	st8 [loc3] = r8, 8;;
	st8 [loc3] = r9, 8;;
	st8 [loc3] = r10, 8;;
	st8 [loc3] = r11, 8;;
	st8 [loc3] = r12, 8;;
	st8 [loc3] = r13, 8;;
	st8 [loc3] = r14, 8;;
	st8 [loc3] = r15, 8;;
	st8 [loc3] = r16, 8;;
	st8 [loc3] = r17, 8;;
	st8 [loc3] = r18, 8;;
	st8 [loc3] = r19, 8;;
	st8 [loc3] = r20, 8;;
	st8 [loc3] = r21, 8;;
	st8 [loc3] = r22, 8;;
	st8 [loc3] = r23, 8;;
	st8 [loc3] = r24, 8;;
	st8 [loc3] = r25, 8;;
	st8 [loc3] = r26, 8;;
	st8 [loc3] = r27, 8;;
	st8 [loc3] = r28, 8;;
	st8 [loc3] = r29, 8;;
	st8 [loc3] = r30, 8;;
	st8 [loc3] = r31, 8;;

	mov loc4 = b0;; st8 [loc3] = loc4, 8;;
	mov loc4 = b1;; st8 [loc3] = loc4, 8;;
	mov loc4 = b2;; st8 [loc3] = loc4, 8;;
	mov loc4 = b3;; st8 [loc3] = loc4, 8;;
	mov loc4 = b4;; st8 [loc3] = loc4, 8;;
	mov loc4 = b5;; st8 [loc3] = loc4, 8;;
	mov loc4 = b6;; st8 [loc3] = loc4, 8;;
	mov loc4 = b7;; st8 [loc3] = loc4, 8;;

	mov loc4 = ar.csd;; st8 [loc3] = loc4, 8;;
	mov loc4 = ar.ssd;; st8 [loc3] = loc4, 8;;
	mov loc4 = ar.ccv;; st8 [loc3] = loc4, 8;;
	mov loc4 = ar.unat;; st8 [loc3] = loc4, 8;;
	mov loc4 = ar.lc;; st8 [loc3] = loc4, 8;;
	mov loc4 = ar.ec;; st8 [loc3] = loc4, 8;;

	mov loc4 = pr;; st8 [loc3] = loc4, 8;;

	# Load random data
	mov loc3 = in1;;
	add loc3 = 16, loc3;; //ldf.fill f0 = [loc3], 16;;
	add loc3 = 16, loc3;; //ldf.fill f1 = [loc3], 16;;
	ldf.fill f2 = [loc3];; stf.spill [loc3] = f2, 16;;
	ldf.fill f3 = [loc3];; stf.spill [loc3] = f3, 16;;
	ldf.fill f4 = [loc3];; stf.spill [loc3] = f4, 16;;
	ldf.fill f5 = [loc3];; stf.spill [loc3] = f5, 16;;
	ldf.fill f6 = [loc3];; stf.spill [loc3] = f6, 16;;
	ldf.fill f7 = [loc3];; stf.spill [loc3] = f7, 16;;
	ldf.fill f8 = [loc3];; stf.spill [loc3] = f8, 16;;
	ldf.fill f9 = [loc3];; stf.spill [loc3] = f9, 16;;
	ldf.fill f10 = [loc3];; stf.spill [loc3] = f10, 16;;
	ldf.fill f11 = [loc3];; stf.spill [loc3] = f11, 16;;
	ldf.fill f12 = [loc3];; stf.spill [loc3] = f12, 16;;
	ldf.fill f13 = [loc3];; stf.spill [loc3] = f13, 16;;
	ldf.fill f14 = [loc3];; stf.spill [loc3] = f14, 16;;
	ldf.fill f15 = [loc3];; stf.spill [loc3] = f15, 16;;
	ldf.fill f16 = [loc3];; stf.spill [loc3] = f16, 16;;
	ldf.fill f17 = [loc3];; stf.spill [loc3] = f17, 16;;
	ldf.fill f18 = [loc3];; stf.spill [loc3] = f18, 16;;
	ldf.fill f19 = [loc3];; stf.spill [loc3] = f19, 16;;
	ldf.fill f20 = [loc3];; stf.spill [loc3] = f20, 16;;
	ldf.fill f21 = [loc3];; stf.spill [loc3] = f21, 16;;
	ldf.fill f22 = [loc3];; stf.spill [loc3] = f22, 16;;
	ldf.fill f23 = [loc3];; stf.spill [loc3] = f23, 16;;
	ldf.fill f24 = [loc3];; stf.spill [loc3] = f24, 16;;
	ldf.fill f25 = [loc3];; stf.spill [loc3] = f25, 16;;
	ldf.fill f26 = [loc3];; stf.spill [loc3] = f26, 16;;
	ldf.fill f27 = [loc3];; stf.spill [loc3] = f27, 16;;
	ldf.fill f28 = [loc3];; stf.spill [loc3] = f28, 16;;
	ldf.fill f29 = [loc3];; stf.spill [loc3] = f29, 16;;
	ldf.fill f30 = [loc3];; stf.spill [loc3] = f30, 16;;
	ldf.fill f31 = [loc3];; stf.spill [loc3] = f31, 16;;
	ldf.fill f32 = [loc3];; stf.spill [loc3] = f32, 16;;
	ldf.fill f33 = [loc3];; stf.spill [loc3] = f33, 16;;
	ldf.fill f34 = [loc3];; stf.spill [loc3] = f34, 16;;
	ldf.fill f35 = [loc3];; stf.spill [loc3] = f35, 16;;
	ldf.fill f36 = [loc3];; stf.spill [loc3] = f36, 16;;
	ldf.fill f37 = [loc3];; stf.spill [loc3] = f37, 16;;
	ldf.fill f38 = [loc3];; stf.spill [loc3] = f38, 16;;
	ldf.fill f39 = [loc3];; stf.spill [loc3] = f39, 16;;
	ldf.fill f40 = [loc3];; stf.spill [loc3] = f40, 16;;
	ldf.fill f41 = [loc3];; stf.spill [loc3] = f41, 16;;
	ldf.fill f42 = [loc3];; stf.spill [loc3] = f42, 16;;
	ldf.fill f43 = [loc3];; stf.spill [loc3] = f43, 16;;
	ldf.fill f44 = [loc3];; stf.spill [loc3] = f44, 16;;
	ldf.fill f45 = [loc3];; stf.spill [loc3] = f45, 16;;
	ldf.fill f46 = [loc3];; stf.spill [loc3] = f46, 16;;
	ldf.fill f47 = [loc3];; stf.spill [loc3] = f47, 16;;
	ldf.fill f48 = [loc3];; stf.spill [loc3] = f48, 16;;
	ldf.fill f49 = [loc3];; stf.spill [loc3] = f49, 16;;
	ldf.fill f50 = [loc3];; stf.spill [loc3] = f50, 16;;
	ldf.fill f51 = [loc3];; stf.spill [loc3] = f51, 16;;
	ldf.fill f52 = [loc3];; stf.spill [loc3] = f52, 16;;
	ldf.fill f53 = [loc3];; stf.spill [loc3] = f53, 16;;
	ldf.fill f54 = [loc3];; stf.spill [loc3] = f54, 16;;
	ldf.fill f55 = [loc3];; stf.spill [loc3] = f55, 16;;
	ldf.fill f56 = [loc3];; stf.spill [loc3] = f56, 16;;
	ldf.fill f57 = [loc3];; stf.spill [loc3] = f57, 16;;
	ldf.fill f58 = [loc3];; stf.spill [loc3] = f58, 16;;
	ldf.fill f59 = [loc3];; stf.spill [loc3] = f59, 16;;
	ldf.fill f60 = [loc3];; stf.spill [loc3] = f60, 16;;
	ldf.fill f61 = [loc3];; stf.spill [loc3] = f61, 16;;
	ldf.fill f62 = [loc3];; stf.spill [loc3] = f62, 16;;
	ldf.fill f63 = [loc3];; stf.spill [loc3] = f63, 16;;
	ldf.fill f64 = [loc3];; stf.spill [loc3] = f64, 16;;
	ldf.fill f65 = [loc3];; stf.spill [loc3] = f65, 16;;
	ldf.fill f66 = [loc3];; stf.spill [loc3] = f66, 16;;
	ldf.fill f67 = [loc3];; stf.spill [loc3] = f67, 16;;
	ldf.fill f68 = [loc3];; stf.spill [loc3] = f68, 16;;
	ldf.fill f69 = [loc3];; stf.spill [loc3] = f69, 16;;
	ldf.fill f70 = [loc3];; stf.spill [loc3] = f70, 16;;
	ldf.fill f71 = [loc3];; stf.spill [loc3] = f71, 16;;
	ldf.fill f72 = [loc3];; stf.spill [loc3] = f72, 16;;
	ldf.fill f73 = [loc3];; stf.spill [loc3] = f73, 16;;
	ldf.fill f74 = [loc3];; stf.spill [loc3] = f74, 16;;
	ldf.fill f75 = [loc3];; stf.spill [loc3] = f75, 16;;
	ldf.fill f76 = [loc3];; stf.spill [loc3] = f76, 16;;
	ldf.fill f77 = [loc3];; stf.spill [loc3] = f77, 16;;
	ldf.fill f78 = [loc3];; stf.spill [loc3] = f78, 16;;
	ldf.fill f79 = [loc3];; stf.spill [loc3] = f79, 16;;
	ldf.fill f80 = [loc3];; stf.spill [loc3] = f80, 16;;
	ldf.fill f81 = [loc3];; stf.spill [loc3] = f81, 16;;
	ldf.fill f82 = [loc3];; stf.spill [loc3] = f82, 16;;
	ldf.fill f83 = [loc3];; stf.spill [loc3] = f83, 16;;
	ldf.fill f84 = [loc3];; stf.spill [loc3] = f84, 16;;
	ldf.fill f85 = [loc3];; stf.spill [loc3] = f85, 16;;
	ldf.fill f86 = [loc3];; stf.spill [loc3] = f86, 16;;
	ldf.fill f87 = [loc3];; stf.spill [loc3] = f87, 16;;
	ldf.fill f88 = [loc3];; stf.spill [loc3] = f88, 16;;
	ldf.fill f89 = [loc3];; stf.spill [loc3] = f89, 16;;
	ldf.fill f90 = [loc3];; stf.spill [loc3] = f90, 16;;
	ldf.fill f91 = [loc3];; stf.spill [loc3] = f91, 16;;
	ldf.fill f92 = [loc3];; stf.spill [loc3] = f92, 16;;
	ldf.fill f93 = [loc3];; stf.spill [loc3] = f93, 16;;
	ldf.fill f94 = [loc3];; stf.spill [loc3] = f94, 16;;
	ldf.fill f95 = [loc3];; stf.spill [loc3] = f95, 16;;
	ldf.fill f96 = [loc3];; stf.spill [loc3] = f96, 16;;
	ldf.fill f97 = [loc3];; stf.spill [loc3] = f97, 16;;
	ldf.fill f98 = [loc3];; stf.spill [loc3] = f98, 16;;
	ldf.fill f99 = [loc3];; stf.spill [loc3] = f99, 16;;
	ldf.fill f100 = [loc3];; stf.spill [loc3] = f100, 16;;
	ldf.fill f101 = [loc3];; stf.spill [loc3] = f101, 16;;
	ldf.fill f102 = [loc3];; stf.spill [loc3] = f102, 16;;
	ldf.fill f103 = [loc3];; stf.spill [loc3] = f103, 16;;
	ldf.fill f104 = [loc3];; stf.spill [loc3] = f104, 16;;
	ldf.fill f105 = [loc3];; stf.spill [loc3] = f105, 16;;
	ldf.fill f106 = [loc3];; stf.spill [loc3] = f106, 16;;
	ldf.fill f107 = [loc3];; stf.spill [loc3] = f107, 16;;
	ldf.fill f108 = [loc3];; stf.spill [loc3] = f108, 16;;
	ldf.fill f109 = [loc3];; stf.spill [loc3] = f109, 16;;
	ldf.fill f110 = [loc3];; stf.spill [loc3] = f110, 16;;
	ldf.fill f111 = [loc3];; stf.spill [loc3] = f111, 16;;
	ldf.fill f112 = [loc3];; stf.spill [loc3] = f112, 16;;
	ldf.fill f113 = [loc3];; stf.spill [loc3] = f113, 16;;
	ldf.fill f114 = [loc3];; stf.spill [loc3] = f114, 16;;
	ldf.fill f115 = [loc3];; stf.spill [loc3] = f115, 16;;
	ldf.fill f116 = [loc3];; stf.spill [loc3] = f116, 16;;
	ldf.fill f117 = [loc3];; stf.spill [loc3] = f117, 16;;
	ldf.fill f118 = [loc3];; stf.spill [loc3] = f118, 16;;
	ldf.fill f119 = [loc3];; stf.spill [loc3] = f119, 16;;
	ldf.fill f120 = [loc3];; stf.spill [loc3] = f120, 16;;
	ldf.fill f121 = [loc3];; stf.spill [loc3] = f121, 16;;
	ldf.fill f122 = [loc3];; stf.spill [loc3] = f122, 16;;
	ldf.fill f123 = [loc3];; stf.spill [loc3] = f123, 16;;
	ldf.fill f124 = [loc3];; stf.spill [loc3] = f124, 16;;
	ldf.fill f125 = [loc3];; stf.spill [loc3] = f125, 16;;
	ldf.fill f126 = [loc3];; stf.spill [loc3] = f126, 16;;
	ldf.fill f127 = [loc3];; stf.spill [loc3] = f127, 16;;

	add loc3 = 8, loc3;; //ld8 r0 = [loc3], 8;;
	ld8 r1 = [loc3], 8;;
	ld8 r2 = [loc3], 8;;
	ld8 r3 = [loc3], 8;;
	ld8 r4 = [loc3], 8;;
	ld8 r5 = [loc3], 8;;
	ld8 r6 = [loc3], 8;;
	ld8 r7 = [loc3], 8;;
	ld8 r8 = [loc3], 8;;
	ld8 r9 = [loc3], 8;;
	ld8 r10 = [loc3], 8;;
	ld8 r11 = [loc3], 8;;
	ld8 r12 = [loc3], 8;;
	ld8 r13 = [loc3], 8;;
	ld8 r14 = [loc3], 8;;
	ld8 r15 = [loc3], 8;;
	ld8 r16 = [loc3], 8;;
	ld8 r17 = [loc3], 8;;
	ld8 r18 = [loc3], 8;;
	ld8 r19 = [loc3], 8;;
	ld8 r20 = [loc3], 8;;
	ld8 r21 = [loc3], 8;;
	ld8 r22 = [loc3], 8;;
	ld8 r23 = [loc3], 8;;
	ld8 r24 = [loc3], 8;;
	ld8 r25 = [loc3], 8;;
	ld8 r26 = [loc3], 8;;
	ld8 r27 = [loc3], 8;;
	ld8 r28 = [loc3], 8;;
	ld8 r29 = [loc3], 8;;
	ld8 r30 = [loc3], 8;;
	ld8 r31 = [loc3], 8;;

	ld8 out0 = [loc3], 8;;
	ld8 out1 = [loc3], 8;;
	ld8 out2 = [loc3], 8;;
	ld8 out3 = [loc3], 8;;
	ld8 out4 = [loc3], 8;;
	ld8 out5 = [loc3], 8;;
	ld8 out6 = [loc3], 8;;
	ld8 out7 = [loc3], 8;;
	ld8 out8 = [loc3], 8;;
	ld8 out9 = [loc3], 8;;
	ld8 out10 = [loc3], 8;;
	ld8 out11 = [loc3], 8;;
	ld8 out12 = [loc3], 8;;
	ld8 out13 = [loc3], 8;;
	ld8 out14 = [loc3], 8;;
	ld8 out15 = [loc3], 8;;
	ld8 out16 = [loc3], 8;;
	ld8 out17 = [loc3], 8;;
	ld8 out18 = [loc3], 8;;
	ld8 out19 = [loc3], 8;;
	ld8 out20 = [loc3], 8;;
	ld8 out21 = [loc3], 8;;
	ld8 out22 = [loc3], 8;;
	ld8 out23 = [loc3], 8;;
	ld8 out24 = [loc3], 8;;
	ld8 out25 = [loc3], 8;;
	ld8 out26 = [loc3], 8;;
	ld8 out27 = [loc3], 8;;
	ld8 out28 = [loc3], 8;;
	ld8 out29 = [loc3], 8;;
	ld8 out30 = [loc3], 8;;
	ld8 out31 = [loc3], 8;;
	ld8 out32 = [loc3], 8;;
	ld8 out33 = [loc3], 8;;
	ld8 out34 = [loc3], 8;;
	ld8 out35 = [loc3], 8;;
	ld8 out36 = [loc3], 8;;
	ld8 out37 = [loc3], 8;;
	ld8 out38 = [loc3], 8;;
	ld8 out39 = [loc3], 8;;

	ld8 loc4 = [loc3], 8;; mov b0 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b1 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b2 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b3 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b4 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b5 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b6 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b7 = loc4;;

	// not all bits are implemented in csd/ssd/unat/ec
	ld8 loc4 = [loc3];; mov ar.csd = loc4;; mov loc5 = ar.csd;; st8 [loc3] = loc5, 8;;
	ld8 loc4 = [loc3];; mov ar.ssd = loc4;; mov loc5 = ar.ssd;; st8 [loc3] = loc5, 8;;
	ld8 loc4 = [loc3], 8;; mov ar.ccv = loc4;;
	ld8 loc4 = [loc3];; mov ar.unat = loc4;; mov loc5 = ar.unat;; st8 [loc3] = loc5, 8;;
	ld8 loc4 = [loc3], 8;; mov ar.lc = loc4;;
	ld8 loc4 = [loc3];; mov ar.ec = loc4;; mov loc5 = ar.ec;; st8 [loc3] = loc5, 8;;

	ld8 loc4 = [loc3];; mov pr = loc4,-1;; mov loc5 = pr;; st8 [loc3] = loc5, 8;;

	# loop, checking regs didn't change
	movl loc2 = 10000000
loop:
	mov loc5 = in1;;
	add loc5 = 2*16,loc5;; // skip f0 & f1 regs
	stf.spill [in0] = f2;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f3;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f4;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f5;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f6;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f7;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f8;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f9;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f10;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f11;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f12;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f13;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f14;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f15;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f16;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f17;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f18;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f19;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f20;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f21;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f22;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f23;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f24;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f25;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f26;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f27;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f28;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f29;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f30;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f31;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f32;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f33;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f34;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f35;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f36;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f37;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f38;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f39;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f40;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f41;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f42;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f43;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f44;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f45;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f46;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f47;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f48;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f49;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f50;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f51;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f52;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f53;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f54;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f55;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f56;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f57;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f58;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f59;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f60;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f61;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f62;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f63;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f64;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f65;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f66;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f67;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f68;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f69;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f70;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f71;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f72;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f73;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f74;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f75;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f76;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f77;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f78;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f79;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f80;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f81;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f82;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f83;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f84;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f85;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f86;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f87;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f88;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f89;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f90;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f91;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f92;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f93;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f94;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f95;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f96;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f97;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f98;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f99;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f100;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f101;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f102;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f103;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f104;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f105;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f106;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f107;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f108;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f109;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f110;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f111;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f112;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f113;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f114;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f115;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f116;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f117;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f118;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f119;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f120;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f121;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f122;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f123;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f124;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f125;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f126;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;
	stf.spill [in0] = f127;; ld8 loc7 = [in0], 8;; ld8 loc6 = [in0], -8;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc7;; (p7) br bad;; ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad;;


	add loc5 = 8,loc5;; // skip r0
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r1;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r2;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r3;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r4;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r5;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r7;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r8;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r9;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r10;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r11;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r12;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r13;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r14;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r15;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r16;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r17;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r18;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r19;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r20;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r21;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r22;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r23;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r24;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r25;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r26;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r27;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r28;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r29;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r30;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, r31;; (p7) br bad

	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out0;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out1;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out2;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out3;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out4;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out5;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out7;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out8;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out9;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out10;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out11;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out12;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out13;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out14;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out15;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out16;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out17;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out18;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out19;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out20;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out21;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out22;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out23;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out24;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out25;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out26;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out27;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out28;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out29;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out30;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out31;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out32;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out33;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out34;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out35;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out36;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out37;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out38;; (p7) br bad
	ld8 loc4 = [loc5], 8;; cmp.eq p6,p7 = loc4, out39;; (p7) br bad

	ld8 loc4 = [loc5], 8;; mov loc6 = b0;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; mov loc6 = b1;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; mov loc6 = b2;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; mov loc6 = b3;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; mov loc6 = b4;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; mov loc6 = b5;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; mov loc6 = b6;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; mov loc6 = b7;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad

	ld8 loc4 = [loc5], 8;; mov loc6 = ar.csd;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; mov loc6 = ar.ssd;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; mov loc6 = ar.ccv;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; mov loc6 = ar.unat;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; mov loc6 = ar.lc;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad
	ld8 loc4 = [loc5], 8;; mov loc6 = ar.ec;; cmp.eq p6,p7 = loc4, loc6;; (p7) br bad

	mov loc7 = 0xc1
	ld8 loc4 = [loc5], 8;; mov loc6 = pr;;
	or loc4 = loc4, loc7
	or loc6 = loc6, loc7;;
	cmp.eq p6,p7 = loc4, loc6;; (p7) br bad

	add loc2 = -1,loc2;;
	cmp.eq p6,p7 = loc2,r0;;
(p7)	br loop


bad:
	# Restore regs
	mov loc3 = in0;;

	add loc3 = 16, loc3;; //ldf.fill f0 = [loc3], 16;;
	add loc3 = 16, loc3;; //ldf.fill f1 = [loc3], 16;;
	ldf.fill f2 = [loc3], 16;;
	ldf.fill f3 = [loc3], 16;;
	ldf.fill f4 = [loc3], 16;;
	ldf.fill f5 = [loc3], 16;;
	ldf.fill f6 = [loc3], 16;;
	ldf.fill f7 = [loc3], 16;;
	ldf.fill f8 = [loc3], 16;;
	ldf.fill f9 = [loc3], 16;;
	ldf.fill f10 = [loc3], 16;;
	ldf.fill f11 = [loc3], 16;;
	ldf.fill f12 = [loc3], 16;;
	ldf.fill f13 = [loc3], 16;;
	ldf.fill f14 = [loc3], 16;;
	ldf.fill f15 = [loc3], 16;;
	ldf.fill f16 = [loc3], 16;;
	ldf.fill f17 = [loc3], 16;;
	ldf.fill f18 = [loc3], 16;;
	ldf.fill f19 = [loc3], 16;;
	ldf.fill f20 = [loc3], 16;;
	ldf.fill f21 = [loc3], 16;;
	ldf.fill f22 = [loc3], 16;;
	ldf.fill f23 = [loc3], 16;;
	ldf.fill f24 = [loc3], 16;;
	ldf.fill f25 = [loc3], 16;;
	ldf.fill f26 = [loc3], 16;;
	ldf.fill f27 = [loc3], 16;;
	ldf.fill f28 = [loc3], 16;;
	ldf.fill f29 = [loc3], 16;;
	ldf.fill f30 = [loc3], 16;;
	ldf.fill f31 = [loc3], 16;;
	ldf.fill f32 = [loc3], 16;;
	ldf.fill f33 = [loc3], 16;;
	ldf.fill f34 = [loc3], 16;;
	ldf.fill f35 = [loc3], 16;;
	ldf.fill f36 = [loc3], 16;;
	ldf.fill f37 = [loc3], 16;;
	ldf.fill f38 = [loc3], 16;;
	ldf.fill f39 = [loc3], 16;;
	ldf.fill f40 = [loc3], 16;;
	ldf.fill f41 = [loc3], 16;;
	ldf.fill f42 = [loc3], 16;;
	ldf.fill f43 = [loc3], 16;;
	ldf.fill f44 = [loc3], 16;;
	ldf.fill f45 = [loc3], 16;;
	ldf.fill f46 = [loc3], 16;;
	ldf.fill f47 = [loc3], 16;;
	ldf.fill f48 = [loc3], 16;;
	ldf.fill f49 = [loc3], 16;;
	ldf.fill f50 = [loc3], 16;;
	ldf.fill f51 = [loc3], 16;;
	ldf.fill f52 = [loc3], 16;;
	ldf.fill f53 = [loc3], 16;;
	ldf.fill f54 = [loc3], 16;;
	ldf.fill f55 = [loc3], 16;;
	ldf.fill f56 = [loc3], 16;;
	ldf.fill f57 = [loc3], 16;;
	ldf.fill f58 = [loc3], 16;;
	ldf.fill f59 = [loc3], 16;;
	ldf.fill f60 = [loc3], 16;;
	ldf.fill f61 = [loc3], 16;;
	ldf.fill f62 = [loc3], 16;;
	ldf.fill f63 = [loc3], 16;;
	ldf.fill f64 = [loc3], 16;;
	ldf.fill f65 = [loc3], 16;;
	ldf.fill f66 = [loc3], 16;;
	ldf.fill f67 = [loc3], 16;;
	ldf.fill f68 = [loc3], 16;;
	ldf.fill f69 = [loc3], 16;;
	ldf.fill f70 = [loc3], 16;;
	ldf.fill f71 = [loc3], 16;;
	ldf.fill f72 = [loc3], 16;;
	ldf.fill f73 = [loc3], 16;;
	ldf.fill f74 = [loc3], 16;;
	ldf.fill f75 = [loc3], 16;;
	ldf.fill f76 = [loc3], 16;;
	ldf.fill f77 = [loc3], 16;;
	ldf.fill f78 = [loc3], 16;;
	ldf.fill f79 = [loc3], 16;;
	ldf.fill f80 = [loc3], 16;;
	ldf.fill f81 = [loc3], 16;;
	ldf.fill f82 = [loc3], 16;;
	ldf.fill f83 = [loc3], 16;;
	ldf.fill f84 = [loc3], 16;;
	ldf.fill f85 = [loc3], 16;;
	ldf.fill f86 = [loc3], 16;;
	ldf.fill f87 = [loc3], 16;;
	ldf.fill f88 = [loc3], 16;;
	ldf.fill f89 = [loc3], 16;;
	ldf.fill f90 = [loc3], 16;;
	ldf.fill f91 = [loc3], 16;;
	ldf.fill f92 = [loc3], 16;;
	ldf.fill f93 = [loc3], 16;;
	ldf.fill f94 = [loc3], 16;;
	ldf.fill f95 = [loc3], 16;;
	ldf.fill f96 = [loc3], 16;;
	ldf.fill f97 = [loc3], 16;;
	ldf.fill f98 = [loc3], 16;;
	ldf.fill f99 = [loc3], 16;;
	ldf.fill f100 = [loc3], 16;;
	ldf.fill f101 = [loc3], 16;;
	ldf.fill f102 = [loc3], 16;;
	ldf.fill f103 = [loc3], 16;;
	ldf.fill f104 = [loc3], 16;;
	ldf.fill f105 = [loc3], 16;;
	ldf.fill f106 = [loc3], 16;;
	ldf.fill f107 = [loc3], 16;;
	ldf.fill f108 = [loc3], 16;;
	ldf.fill f109 = [loc3], 16;;
	ldf.fill f110 = [loc3], 16;;
	ldf.fill f111 = [loc3], 16;;
	ldf.fill f112 = [loc3], 16;;
	ldf.fill f113 = [loc3], 16;;
	ldf.fill f114 = [loc3], 16;;
	ldf.fill f115 = [loc3], 16;;
	ldf.fill f116 = [loc3], 16;;
	ldf.fill f117 = [loc3], 16;;
	ldf.fill f118 = [loc3], 16;;
	ldf.fill f119 = [loc3], 16;;
	ldf.fill f120 = [loc3], 16;;
	ldf.fill f121 = [loc3], 16;;
	ldf.fill f122 = [loc3], 16;;
	ldf.fill f123 = [loc3], 16;;
	ldf.fill f124 = [loc3], 16;;
	ldf.fill f125 = [loc3], 16;;
	ldf.fill f126 = [loc3], 16;;
	ldf.fill f127 = [loc3], 16;;

	add loc3 = 8, loc3;; //ld8 r0 = [loc3], 8;;
	ld8 r1 = [loc3], 8;;
	ld8 r2 = [loc3], 8;;
	ld8 r3 = [loc3], 8;;
	ld8 r4 = [loc3], 8;;
	ld8 r5 = [loc3], 8;;
	ld8 r6 = [loc3], 8;;
	ld8 r7 = [loc3], 8;;
(p6)	ld8 r8 = [loc3], 8;;
(p7)	add r8 = -8,loc5
(p7)	add loc3 = 8,loc3;;
	ld8 r9 = [loc3], 8;;
	ld8 r10 = [loc3], 8;;
	ld8 r11 = [loc3], 8;;
	ld8 r12 = [loc3], 8;;
	ld8 r13 = [loc3], 8;;
	ld8 r14 = [loc3], 8;;
	ld8 r15 = [loc3], 8;;
	ld8 r16 = [loc3], 8;;
	ld8 r17 = [loc3], 8;;
	ld8 r18 = [loc3], 8;;
	ld8 r19 = [loc3], 8;;
	ld8 r20 = [loc3], 8;;
	ld8 r21 = [loc3], 8;;
	ld8 r22 = [loc3], 8;;
	ld8 r23 = [loc3], 8;;
	ld8 r24 = [loc3], 8;;
	ld8 r25 = [loc3], 8;;
	ld8 r26 = [loc3], 8;;
	ld8 r27 = [loc3], 8;;
	ld8 r28 = [loc3], 8;;
	ld8 r29 = [loc3], 8;;
	ld8 r30 = [loc3], 8;;
	ld8 r31 = [loc3], 8;;

	ld8 loc4 = [loc3], 8;; mov b0 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b1 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b2 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b3 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b4 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b5 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b6 = loc4;;
	ld8 loc4 = [loc3], 8;; mov b7 = loc4;;

	ld8 loc4 = [loc3], 8;; mov ar.csd = loc4;;
	ld8 loc4 = [loc3], 8;; mov ar.ssd = loc4;;
	ld8 loc4 = [loc3], 8;; mov ar.ccv = loc4;;
	ld8 loc4 = [loc3], 8;; mov ar.unat = loc4;;
	ld8 loc4 = [loc3], 8;; mov ar.lc = loc4;;
	ld8 loc4 = [loc3], 8;; mov ar.ec = loc4;;

	ld8 loc4 = [loc3], 8;; mov pr = loc4,-1;;

	mov ar.pfs = loc1
	mov b0 = loc0
	br.ret.sptk.many b0
	;;
