program float_stress {
	section module {
 
	}
	section data {
		int rax = 0
		float xmm0 = 0.0
		float xmm1 = 0.0
		float xmm2 = 0.0
		float xmm3 = 0.0
		float xmm4 = 0.0
		float xmm5 = 0.0
		float xmm6 = 0.0
		float xmm7 = 0.0
		float xmm8 = 0.0
		float xmm9 = 0.0
		float xmm10 = 0.0
		float xmm11 = 0.0
		float xmm12 = 0.0
		float xmm13 = 0.0
		float xmm14 = 0.0
		float xmm15 = 0.0
		float xmm16 = 0.0
		float xmm17 = 0.0
		float xmm18 = 0.0
		float xmm19 = 0.0
		float xmm20 = 0.0
		float xmm21 = 0.0
		float xmm22 = 0.0
		float xmm23 = 0.0
		float xmm24 = 0.0
		float xmm25 = 0.0
		float xmm26 = 0.0
		float xmm27 = 0.0
		float xmm28 = 0.0
		float xmm29 = 0.0
		float xmm30 = 0.0
		float xmm32 = 0.0
		float xmm33 = 0.0
		float xmm35 = 0.0
		float xmm36 = 0.0
		float xmm37 = 0.0
		float xmm38 = 0.0
		float xmm39 = 0.0
		float xmm41 = 0.0
		float real_const_19 = 20.20
		float real_const_18 = 19.19
		float real_const_15 = 16.16
		float real_const_13 = 14.14
		float real_const_4 = 5.5
		float real_const_1 = 2.2
		float real_const_12 = 13.13
		float real_const_16 = 17.17
		float real_const_2 = 3.3
		float real_const_0 = 1.1
		float real_const_3 = 4.4
		float real_const_5 = 6.6
		float real_const_11 = 12.12
		float real_const_20 = 0.0
		float real_const_10 = 11.11
		float real_const_7 = 8.8
		float real_const_6 = 7.7
		float real_const_9 = 10.10
		float real_const_17 = 18.18
		float real_const_14 = 15.15
		float real_const_8 = 9.9
		string fmt_float = "%.6f "
		string newline = "\n"
		float x = 0.0
		float y = 0.0
		float z = 0.0
		float test_a = 0.0
		float test_b = 0.0
		float test_c = 0.0
		float test_d = 0.0
		float test_e = 0.0
		float test_f = 0.0
		float test_g = 0.0
		float test_h = 0.0
		float test_i = 0.0
		float test_j = 0.0
		float test_k = 0.0
		float test_l = 0.0
		float test_m = 0.0
		float test_n = 0.0
		float test_o = 0.0
		float test_p = 0.0
		float test_q = 0.0
		float test_r = 0.0
		float test_s = 0.0
		float test_t = 0.0
		float test_sum = 0.0
		float test_tmp = 0.0
	}
	section code {
	start:
		call PROC_test
		mov x, 0
		mov y, 1
		mov z, 2
		mov x, y
		mul x, z
		print fmt_float, x
		print newline
		done
	function PROC_test:
		mov xmm0, real_const_0
		mov test_a, xmm0
		mov xmm1, real_const_1
		mov test_b, xmm1
		mov xmm2, real_const_2
		mov test_c, xmm2
		mov xmm3, real_const_3
		mov test_d, xmm3
		mov xmm4, real_const_4
		mov test_e, xmm4
		mov xmm5, real_const_5
		mov test_f, xmm5
		mov xmm6, real_const_6
		mov test_g, xmm6
		mov xmm7, real_const_7
		mov test_h, xmm7
		mov xmm8, real_const_8
		mov test_i, xmm8
		mov xmm9, real_const_9
		mov test_j, xmm9
		mov xmm10, real_const_10
		mov test_k, xmm10
		mov xmm11, real_const_11
		mov test_l, xmm11
		mov xmm12, real_const_12
		mov test_m, xmm12
		mov xmm13, real_const_13
		mov test_n, xmm13
		mov xmm14, real_const_14
		mov test_o, xmm14
		mov xmm15, real_const_15
		mov test_p, xmm15
		mov xmm16, real_const_16
		mov test_q, xmm16
		mov xmm17, real_const_17
		mov test_r, xmm17
		mov xmm18, real_const_18
		mov test_s, xmm18
		mov xmm19, real_const_19
		mov test_t, xmm19
		mov xmm20, real_const_20
		mov test_sum, xmm20
		mov xmm21, test_a
		mul xmm21, test_b
		mov xmm22, test_c
		div xmm22, test_d
		add xmm21, xmm22
		mov xmm23, test_e
		mul xmm23, test_f
		sub xmm21, xmm23
		mov xmm24, test_g
		div xmm24, test_h
		add xmm21, xmm24
		mov xmm25, test_i
		mul xmm25, test_j
		sub xmm21, xmm25
		mov xmm26, test_k
		div xmm26, test_l
		add xmm21, xmm26
		mov xmm27, test_m
		div xmm27, test_n
		sub xmm21, xmm27
		mov xmm28, test_o
		div xmm28, test_p
		add xmm21, xmm28
		mov xmm29, test_q
		div xmm29, test_r
		sub xmm21, xmm29
		mov xmm30, test_s
		div xmm30, test_t
		add xmm21, xmm30
		mov test_tmp, xmm21
		add test_sum, test_tmp
		mov xmm32, test_a
		add xmm32, test_b
		add xmm32, test_c
		add xmm32, test_d
		add xmm32, test_e
		mov xmm33, test_f
		add xmm33, test_g
		add xmm33, test_h
		add xmm33, test_i
		add xmm33, test_j
		mul xmm32, xmm33
		mov test_tmp, xmm32
		add test_sum, test_tmp
		mov xmm35, test_k
		mul xmm35, test_l
		mov xmm36, test_m
		mul xmm36, test_n
		sub xmm35, xmm36
		mov xmm37, test_o
		add xmm37, test_p
		add xmm37, test_q
		div xmm35, xmm37
		mov xmm38, test_r
		mul xmm38, test_s
		mov xmm39, test_t
		add xmm39, test_a
		mul xmm38, xmm39
		add xmm35, xmm38
		mov test_tmp, xmm35
		add test_sum, test_tmp
		mov xmm41, test_sum
		add xmm41, test_a
		add xmm41, test_b
		add xmm41, test_c
		add xmm41, test_d
		add xmm41, test_e
		add xmm41, test_f
		add xmm41, test_g
		add xmm41, test_h
		add xmm41, test_i
		add xmm41, test_j
		add xmm41, test_k
		add xmm41, test_l
		add xmm41, test_m
		add xmm41, test_n
		add xmm41, test_o
		add xmm41, test_p
		add xmm41, test_q
		add xmm41, test_r
		add xmm41, test_s
		add xmm41, test_t
		mov test_sum, xmm41
		print fmt_float, test_sum
		print newline
	PROC_END_test:
		ret
	}
}