Thread: I can't spot my mistake...

  1. #166
    Registered User awsdert's Avatar
    Join Date
    Jan 2015
    Posts
    1,733
    Quote Originally Posted by stahta01 View Post
    If you really want others to help; then you need to:

    1. Post which git repo has the current code you are having issues with
    2. Add a README in the repo on how to compile/build the repo.

    Tim S.
    Have you looked at my signature?

    As for the README, that's something I completely forgot about since creating it at the start of the project, I'll make a few edits 2mw but for now it's basically in shell run "make check.run" or "make check.gede", gede you will have to install if you want to use it, it's a GUI for gdb (I prefer GUI on many things if only to streamline long stuff)

  2. #167
    Registered User awsdert's Avatar
    Join Date
    Jan 2015
    Posts
    1,733
    Quote Originally Posted by awsdert View Post
    Have you looked at my signature?

    As for the README, that's something I completely forgot about since creating it at the start of the project, I'll make a few edits 2mw but for now it's basically in shell run "make check.run" or "make check.gede", gede you will have to install if you want to use it, it's a GUI for gdb (I prefer GUI on many things if only to streamline long stuff)
    Done now

  3. #168
    Registered User
    Join Date
    Sep 2020
    Posts
    150
    I suggest you youtube binary math then
    I don't see a need for that. I am just a hobbyist without higher ambitions.

  4. #169
    Registered User awsdert's Avatar
    Join Date
    Jan 2015
    Posts
    1,733
    Quote Originally Posted by thmm View Post
    I don't see a need for that. I am just a hobbyist without higher ambitions.
    So am I, I just happened to be interested in the inner workings of the CPU is all

  5. #170
    Registered User rstanley's Avatar
    Join Date
    Jun 2014
    Location
    New York, NY
    Posts
    1,110
    Quote Originally Posted by thmm View Post
    It's certainly true for me, though out of curiosity and lack of other meaningful projects I sometimes read the posts.
    If you are interested in viewing C code, may I suggest downloading and looking at the GNU coreutils to see some of the source code that makes up the Linux O/S?

    You can download the code here. "coreutils-8.32" is the latest version.

  6. #171
    Registered User
    Join Date
    Sep 2020
    Posts
    150
    Thanks I will have a look later.

  7. #172
    Registered User awsdert's Avatar
    Join Date
    Jan 2015
    Posts
    1,733
    Not gotten round to retrying to find the cause of that segfault I was on about but for now I want to ask if anyone has any ideas for finishing this train of thought to a working function:
    Code:
    // FIXME: Unfinished train of thought here
    int_t alup__rol_without_tmp( alup_t _NUM, size_t by )
    {
    	size_t diff = _NUM.upto - _NUM.from;
    	
    	if ( by && diff )
    	{	
    		alub_t d, w, s;
    		uintmax_t was, tmp;
    		bool_t same_node;
    		
    		by %= diff;
    		
    		s = alub( _NUM.data, _NUM.from );
    		d = alub( _NUM.data, _NUM.from + by );
    			
    		w = alub( &was, (diff - by) % bitsof(uintmax_t) );
    		
    		for ( tmp = *(d.ptr); d.bit < _NUM.upto; )
    		{
    			was = tmp;
    			tmp = *(d.ptr);
    			
    			rotate:
    			
    			for
    			(
    				; w.bit < diff && w.ptr == &was && d.bit < _NUM.upto
    				; alub_inc(&w), alub_inc(&d), alub_inc(&s)
    			)
    			{
    				*(d.ptr) &= ~(d.mask);
    				*(d.ptr) |= IFTRUE( *(s.ptr) & s.mask, d.mask );
    				*(s.ptr) &= ~(s.mask);
    				*(s.ptr) |= IFTRUE( *(w.ptr) & w.mask, s.mask );
    			}
    			
    			same_node = (w.ptr == &was);
    			
    			w = alub( &was, 0 );
    			
    			if ( same_node && d.bit < _NUM.upto )
    				goto rotate;
    		}
    	}
    	
    	return 0;
    }
    Output:
    Code:
    make check.run
    ...
    Running suite(s): ALU
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 1
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 1000000110111101
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 0000000110111101
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 2
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0000001101111011
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 3
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0000011011110110
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 0000000110111101
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 4
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0000110111101100
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 5
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0001101111011000
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 0000000110111101
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 6
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0011011110110000
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 7
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0110111101100000
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 0000000110111101
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 8
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 1101111011000000
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 9
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 1011110110000001
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 0000000110111101
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 10
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0111101100000011
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 11
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 1111011000000110
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 0000000110111101
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 12
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 1110110000001101
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 13
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 1101100000011011
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 0000000110111101
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 14
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 1011000000110111
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    99%: Checks: 1704, Failures: 14, Errors: 0
    ../tests/check_alu.c:466:F:Core:test_alup_rol:1: Assertion 'got_num == dst_num' failed
    ...
    Compilation finished successfully.
    I've not uploaded this one yet because I don't want to pollute the online project with another function name, prefer to get this working then replace the existing ones with it

    Edit: Forgot to post the checking code:
    Code:
    START_TEST( test_alup_rol )
    {
    	ushort_t src_num = 0xC0DE, src_val = _i, tmp
    		, dst_num = src_num, dst_val = src_val % bitsof(ushort_t)
    		, got_num = src_num, got_val = src_val;
    	alup_t _GOT_NUM, _GOT_VAL;
    	
    	alup_init_unsigned( _GOT_NUM, &got_num, sizeof(ushort_t) );
    	alup_init_unsigned( _GOT_VAL, &got_val, sizeof(ushort_t) );
    	
    	dst_num = unic_rol( dst_num, dst_val );
    	alup_rol( _GOT_NUM, _GOT_VAL, &tmp );
    	
    	if ( got_num != dst_num )
    	{
    		alup_t _DST_NUM, _SRC_NUM;
    		
    		alup_init_unsigned( _SRC_NUM, &src_num, sizeof(ushort_t) );
    		alup_init_unsigned( _DST_NUM, &dst_num, sizeof(ushort_t) );
    		
    		alu_printf( "src_val = %u", src_val );
    		alup_print( _SRC_NUM, 0, 1 );
    		alup_print( _DST_NUM, 0, 1 );
    		alup_print( _GOT_NUM, 0, 1 );
    	}
    	
    	ck_assert( got_num == dst_num );
    }
    END_TEST

  8. #173
    Registered User awsdert's Avatar
    Join Date
    Jan 2015
    Posts
    1,733
    Realised I was slightly going in the wrong direction previously, new code succeeds on rotate by 1 but fails subsequent rotates, any ideas?
    Code:
    // FIXME: Unfinished train of thought here
    int_t alup__rol_without_tmp( alup_t _NUM, size_t by )
    {
    	size_t diff = _NUM.upto - _NUM.from;
    	
    	if ( by && diff )
    	{	
    		alub_t d, w;
    		uintmax_t was, tmp;
    		alup_t _SEG, _TMP;
    		size_t cap;
    		
    		_SEG = _NUM;
    		alup_init_unsigned( _TMP, &tmp, sizeof(uintmax_t) );
    		
    		by %= diff;
    		
    		d = alub( _NUM.data, _NUM.from );
    		
    		_SEG.from = _NUM.upto - by;
    		alup_mov_int2int( _TMP, _SEG );
    		cap = by;
    		
    		while ( d.bit < _NUM.upto )
    		{
    			was = tmp;
    			
    			_SEG.from = d.bit;
    			alup_mov_int2int( _TMP, _SEG );
    			
    			for
    			(
    				w = alub( &was, 0 )
    				; w.ptr == &was && d.bit < _NUM.upto
    				; alub_inc(&w), alub_inc(&d)
    			)
    			{
    				if ( w.bit == cap )
    					break;
    					
    				
    				*(d.ptr) &= ~(d.mask);
    				*(d.ptr) |= IFTRUE( *(w.ptr) & w.mask, d.mask );
    			}
    			
    			cap = bitsof(uintmax_t);
    		}
    	}
    	
    	return 0;
    }
    Output:
    Code:
    make check.run
    ...
    Running suite(s): ALU
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 2
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0000001101111011
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 3
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0000011011110110
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1000000110111101
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 4
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0000110111101100
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 5
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0001101111011000
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1000000110111101
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 6
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0011011110110000
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 7
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0110111101100000
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1000000110111101
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 8
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 1101111011000000
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 9
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 1011110110000001
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1000000110111101
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 10
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 0111101100000011
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 11
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 1111011000000110
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1000000110111101
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 12
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 1110110000001101
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 13
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 1101100000011011
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1000000110111101
    ../tests/check_alu.c:460: test_alup_rol_fn() src_val = 14
    ../tests/check_alu.c:461: test_alup_rol_fn() _SRC_NUM = 1100000011011110
    ../tests/check_alu.c:462: test_alup_rol_fn() _DST_NUM = 1011000000110111
    ../tests/check_alu.c:463: test_alup_rol_fn() _GOT_NUM = 1100000011011110
    99%: Checks: 1704, Failures: 13, Errors: 0
    ../tests/check_alu.c:466:F:Core:test_alup_rol:2: Assertion 'got_num == dst_num' failed
    ...
    Compilation finished successfully.

  9. #174
    Registered User awsdert's Avatar
    Join Date
    Jan 2015
    Posts
    1,733
    Tried calling the function directly and it turned out it was working perfectly, it seems the fault actually lied in this function:
    Code:
    int_t alup_rol( alup_t _NUM, alup_t _VAL, void *_tmp )
    {
    	size_t rot, len = _NUM.upto - _NUM.from, cap = BITS2SIZE(len);
    	alup_t _CAP, _TMP, _ROT;
    	
    	alup_init_unsigned( _CAP, &cap, sizeof(size_t) );
    	alup_init_unsigned( _ROT, &rot, sizeof(size_t) );
    	alup_init_unsigned( _TMP, _tmp, cap );
    	
    	/* Retrieve only an amount that fits into size_t,
    	 * also ensure within bounds of nbits */
    	alup__div_int2int( _VAL, _CAP, _tmp );
    	alup_mov_int2int( _ROT, _TMP );
    	
    	/* Reconstruct _VAL to what it was,
    	 * supposed to be constant - we fake it here */
    	alup__mul_int2int( _VAL, _CAP, _tmp );
    	alup__add_int2int( _VAL, _ROT );
    	
    	return alup__rol_without_tmp( _NUM, rot );
    }
    Since the tests for the functions it uses work out fine the cause must be something I overlooked, anyone see it?

  10. #175
    Registered User
    Join Date
    Sep 2020
    Posts
    150
    I would check if *_tmp is != NULL, or would that be ok?
    A few posts before you mentioned a segfault and a null ptr is a common cause for one.

  11. #176
    Registered User awsdert's Avatar
    Join Date
    Jan 2015
    Posts
    1,733
    Quote Originally Posted by thmm View Post
    I would check if *_tmp is != NULL, or would that be ok?
    A few posts before you mentioned a segfault and a null ptr is a common cause for one.
    That segfault is not caused by a NULL pointer (I checked for that before even posting it), I think it's more likely corrupted information being passed onto the handlers, just haven't managed to identify that corrupted information, as for _tmp, I will be adding code for checking that later but in this particular case it's impossible as it is being called directly by code and passed a pointer to a local variable of same size as _NUM & _VAL

    No the problem here is that a correct value (the one going into rot) is being corrupted before it can reach the function it is passed to (which I've now renamed to alup__rol_int2int).

    Ah btw alup__rol_int2int() & it's counterpart alup__ror_int2int() have been uploaded along with their tests added in

  12. #177
    Registered User awsdert's Avatar
    Join Date
    Jan 2015
    Posts
    1,733
    Finally got round to trying to track down that segfault again, only thing is when I re-enabled the test that encountered it it had vanished, since that was the case I decided to put that problem to one side until I can reliably encounter it again. Instead I moved onto FPN multiplication, I seem to have got the exponent part right but the mantissa is not working out, any ideas from the below?
    Code:
    int_t alup__mul( alup_t _NUM, alup_t _VAL, void *_cpy, void *_tmp )
    {
    	if ( alup_floating( _NUM ) || alup_floating( _VAL ) )
    	{
    		int_t ret;
    		alub_t b;
    		alup_t _DST, _SRC, _DMAN, _SMAN;
    		ssize_t dexp, sexp, dbias, sbias, dbits, sbits, bits, size;
    		bool_t dneg, sneg;
    		
    		/* Ensure dealing with just floats, impossible for both to take _tmp
    		 * given the above if statment */
    		
    		if ( alup_floating( _NUM ) )
    		{
    			_DST = _NUM;
    		}
    		else
    		{
    			bits = _NUM.upto - _NUM.from;
    			size = BITS2SIZE( bits );
    			alup_init_floating( _DST, _tmp, size );
    			alup_mov( _DST, _NUM );
    		}
    		
    		if ( alup_floating( _VAL ) )
    		{
    			_SRC = _VAL;
    		}
    		else
    		{
    			bits = _VAL.upto - _VAL.from;
    			size = BITS2SIZE( bits );
    			alup_init_floating( _SRC, _tmp, size );
    			alup_mov( _SRC, _VAL );
    		}
    		
    		b = alub( _DST.data, _DST.upto - 1 );
    		dneg = alup_below0( _DST );
    		sneg = alup_below0( _SRC );
    		*(b.ptr) &= ~(b.mask);
    		*(b.ptr) |= IFTRUE( dneg != sneg, b.mask );
    		
    		dexp = alup_get_exponent( _DST );
    		sexp = alup_get_exponent( _SRC );
    		
    		if ( !dexp || !sexp )
    		{
    			_NUM.upto--;
    			alup_set( _NUM, 0 );
    			return 0;
    		}
    		
    		dbias = alup_get_exponent_bias( _DST );
    		dexp -= dbias;
    		
    		sbias = alup_get_exponent_bias( _SRC );
    		sexp -= sbias;
    				
    		alup_init_mantissa( _DST, _DMAN );
    		alup_init_mantissa( _SRC, _SMAN );
    		
    #if 0
    		dbits = _DMAN.upto - _DMAN.from;
    		sbits = _SMAN.upto - _SMAN.from;
    		bits = LOWEST( dbits, sbits );
    		
    		_DMAN.from = _DMAN.upto - EITHER( dexp > 0 && dexp < bits, dexp, bits );
    		_SMAN.from = _SMAN.upto - EITHER( sexp > 0 && sexp < bits, sexp, bits );
    #endif
    		
    		ret = alup__mul_int2int( _DMAN, _SMAN, _cpy );
    		/* Multiplication prep may have changed this value, ensure is what it
    		 * started as before using it any more */
    		_DMAN.from = _DST.from;
    		
    		if ( ret == EOVERFLOW )
    		{
    			dexp++;
    			alup__shr( _DMAN, 1 );
    			b = alub( _DMAN.data, _DMAN.upto - 1 );
    			*(b.ptr) |= b.mask;
    		}
    		
    		dexp += sexp;
    		if ( dexp > dbias )
    		{
    			alup_t _EXP;
    			
    			alup_init_exponent( _DST, _EXP );
    			
    			/* Set infinity */
    			alup_set( _EXP, 1 );
    			alup_set( _DMAN, 0 );
    			
    			if ( alup_floating( _NUM ) )
    				return 0;
    			
    			return alup_mov( _NUM, _DST );
    		}
    		
    		dexp += dbias;
    		alup_set_exponent( _DST, dexp );
    		
    		return 0;
    	}
    	
    	return alup__mul_int2int( _NUM, _VAL, _cpy );
    }
    Output:
    Code:
    make check.run
    ...
    Running suite(s): ALU
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 3, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0001 10000000000 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000000011
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 5, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0002 10000000001 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0002 10000000001 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000000101
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 6, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0002 10000000001 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000000110
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 7, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0002 10000000001 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0002 10000000001 1100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000000111
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 9, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0003 10000000010 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0003 10000000010 0010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001001
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 10, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0003 10000000010 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0003 10000000010 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001010
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 11, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0003 10000000010 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0003 10000000010 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    97%: Checks: 1824, Failures: 46, Errors: 0
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:3: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ...
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:37: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001011
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 12, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0003 10000000010 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0003 10000000010 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001100
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 13, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0003 10000000010 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0003 10000000010 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001101
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 14, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0003 10000000010 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0003 10000000010 1100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001110
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 15, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0003 10000000010 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0003 10000000010 1110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001111
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 17, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 0001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010001
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 18, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 0010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:38: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:39: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:40: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:41: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:42: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:43: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:44: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:45: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:46: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:47: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:48: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:49: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:50: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:51: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1421:F:Core:test_alup_mul_floating:52: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    [Inferior 1 (process 10809) exited with code 01]
    (gdb) quit
    rm ../src/alu_int_d.o ../src/alup_d.o ../src/alur_d.o ../src/alu_math_d.o ../src/alum_d.o ../tests/check_alu_d.o ../src/alu_main_d.o ../src/alub_d.o ../src/alu_uint_d.o ../src/alu_fpn_d.o ../src/aluv_d.o
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010010
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 19, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 0011000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010011
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 20, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010100
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 21, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 0101000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010101
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 22, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010110
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 23, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010111
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 24, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011000
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 25, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 1001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011001
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 26, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011010
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 27, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 1011000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011011
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 28, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 1100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011100
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 29, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 1101000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011101
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 30, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 1110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011110
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 31, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0004 10000000011 1111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011111
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 33, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0000100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100001
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 34, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100010
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 35, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0001100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100011
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 36, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100100
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 37, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0010100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100101
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 38, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0011000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100110
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 39, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0011100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100111
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 40, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101000
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 41, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0100100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101001
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 42, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0101000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101010
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 43, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0101100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101011
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 44, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101100
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 45, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0110100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101101
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 46, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101110
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 47, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 0111100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101111
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 48, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000110000
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 49, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 1000100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000110001
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 50, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 1001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000110010
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 51, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 1001100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000110011
    ../tests/check_alu.c:1404: test_alup_mul_floating_fn() _num = 52, _val = 1, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1415: test_alup_mul_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1416: test_alup_mul_floating_fn() _SRC_NUM = 0 +0005 10000000100 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1417: test_alup_mul_floating_fn() _GOT_VAL = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1418: test_alup_mul_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000110100
    Compilation finished successfully.
    FYI all code is already uploaded.

  13. #178
    Registered User awsdert's Avatar
    Join Date
    Jan 2015
    Posts
    1,733
    Managed to fix the FPN multiplication (I'll do more thorough testing later when I can consolidate tests into a list as I did with integers), knowing that FPN multiplication and division where similar in execution I did a dump of the function into the division then just changed what I knew had to be changed, still coming out buggy however so until I get an idea myself I will post the code and results of the division, if I'm lucky someone else will get an idea before I do and post it
    Code:
    Code:
    int_t alup__div( alup_t _NUM, alup_t _VAL, void *_rem, void *_tmp )
    {
    	if ( alup_floating( _NUM ) || alup_floating( _VAL ) )
    	{
    		int_t ret;
    		alub_t b;
    		alup_t _DST, _SRC, _DMAN, _SMAN;
    		ssize_t dexp, sexp, dbias, sbias, dbits, sbits, bits, size;
    		bool_t dneg, sneg;
    		
    		/* Ensure dealing with just floats, impossible for both to take _tmp
    		 * given the above if statment */
    		
    		if ( alup_floating( _NUM ) )
    		{
    			_DST = _NUM;
    		}
    		else
    		{
    			bits = _NUM.upto - _NUM.from;
    			size = BITS2SIZE( bits );
    			alup_init_floating( _DST, _tmp, size );
    			alup_mov( _DST, _NUM );
    		}
    		
    		if ( alup_floating( _VAL ) )
    		{
    			_SRC = _VAL;
    		}
    		else
    		{
    			bits = _VAL.upto - _VAL.from;
    			size = BITS2SIZE( bits );
    			alup_init_floating( _SRC, _tmp, size );
    			alup_mov( _SRC, _VAL );
    		}
    		
    		b = alub( _DST.data, _DST.upto - 1 );
    		dneg = alup_below0( _DST );
    		sneg = alup_below0( _SRC );
    		*(b.ptr) &= ~(b.mask);
    		*(b.ptr) |= IFTRUE( dneg != sneg, b.mask );
    		
    		dexp = alup_get_exponent( _DST );
    		sexp = alup_get_exponent( _SRC );
    		
    		if ( !dexp || !sexp )
    		{
    			_NUM.upto--;
    			alup_set( _NUM, 0 );
    			return 0;
    		}
    		
    		dbias = alup_get_exponent_bias( _DST );
    		dexp -= dbias;
    		
    		sbias = alup_get_exponent_bias( _SRC );
    		sexp -= sbias;
    				
    		alup_init_mantissa( _DST, _DMAN );
    		alup_init_mantissa( _SRC, _SMAN );
    		
    		dbits = _DMAN.upto - _DMAN.from;
    		sbits = _SMAN.upto - _SMAN.from;
    		bits = LOWEST( dbits, sbits );
    		
    		_DMAN.from = _DMAN.upto - EITHER( dexp >= 0 && dexp < bits, dexp, bits );
    		_SMAN.from = _SMAN.upto - EITHER( sexp >= 0 && sexp < bits, sexp, bits );
    		
    		alub_set( _DMAN.data, _DMAN.upto, 1 );
    		alub_set( _SMAN.data, _SMAN.upto, 1 );
    		_DMAN.upto++;
    		_SMAN.upto++;
    		
    		ret = alup__div_int2int( _DMAN, _SMAN, _rem );
    		
    		_DMAN.upto--;
    		_SMAN.upto--;
    		
    		/* Multiplication prep may have changed this value, ensure is what it
    		 * started as before using it any more */
    		_DMAN.from = _DST.from;
    		
    		if ( ret == EOVERFLOW )
    		{
    			dexp++;
    			alup__shr( _DMAN, 1 );
    			b = alub( _DMAN.data, _DMAN.upto - 1 );
    			*(b.ptr) |= b.mask;
    		}
    		
    		dexp -= sexp;
    		if ( dexp > dbias )
    		{
    			alup_t _EXP;
    			
    			alup_init_exponent( _DST, _EXP );
    			
    			/* Set infinity */
    			alup_set( _EXP, 1 );
    			alup_set( _DMAN, 0 );
    			
    			if ( alup_floating( _NUM ) )
    				return 0;
    			
    			return alup_mov( _NUM, _DST );
    		}
    		
    		dexp += dbias;
    		alup_set_exponent( _DST, dexp );
    		
    		return 0;
    	}
    	
    	return alup__div_int2int( _NUM, _VAL, _rem );
    }
    Results:
    Code:
    make check.run
    ...
    Running suite(s): ALU
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 1, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 -0001 01111111110 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 -0002 01111111101 0101010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000000001
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 2, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 -0001 01111111110 0101010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000000010
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 3, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0000 01111111111 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000000011
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 4, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0001 10000000000 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0000 01111111111 0101010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000000100
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 5, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0001 10000000000 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0000 01111111111 1010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000000101
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 6, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0001 10000000000 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000000110
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 7, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    97%: Checks: 1877, Failures: 52, Errors: 0
    ../tests/check_alu.c:1471:F:Core:test_alup_div_floating:1: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ...
    ../tests/check_alu.c:1471:F:Core:test_alup_div_floating:31: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0001 10000000000 0010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000000111
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 8, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0002 10000000001 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0001 10000000000 0101010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001000
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 9, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0002 10000000001 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001001
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 10, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0002 10000000001 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0001 10000000000 1010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001010
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 11, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0002 10000000001 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0001 10000000000 1101010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001011
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 12, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001100
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 13, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1471:F:Core:test_alup_div_floating:32: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    ...
    ../tests/check_alu.c:1471:F:Core:test_alup_div_floating:52: Assertion 'memcmp( &got_num, &src_num, sizeof(double) ) == 0' failed
    [Inferior 1 (process 2233) exited with code 01]
    (gdb) quit
    rm ../src/alu_int_d.o ../src/alup_d.o ../src/alur_d.o ../src/alu_math_d.o ../src/alum_d.o ../tests/check_alu_d.o ../src/alu_main_d.o ../src/alub_d.o ../src/alu_uint_d.o ../src/alu_fpn_d.o ../src/aluv_d.o
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 0001010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001101
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 14, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 0010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001110
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 15, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0002 10000000001 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000001111
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 16, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 0101000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 0101010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010000
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 17, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 0101000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 0110101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010001
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 18, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010010
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 19, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 1001010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010011
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 20, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 1010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010100
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 21, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 1100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010101
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 22, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 1101010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010110
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 23, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 1110101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000010111
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 24, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011000
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 25, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0000101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011001
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 26, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0001010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011010
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 27, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 1001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011011
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 28, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 1001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011100
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 29, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 1001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0011010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011101
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 30, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011110
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 31, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0100101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000011111
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 32, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0101000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0101010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100000
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 33, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0101100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100001
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 34, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0101100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0110101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100010
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 35, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0101100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0111010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100011
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 36, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100100
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 37, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1000101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100101
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 38, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1001010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100110
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 39, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0110100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000100111
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 40, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0110100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101000
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 41, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0110100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1011010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101001
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 42, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101010
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 43, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1100101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101011
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 44, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1101010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101100
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 45, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0111100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101101
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 46, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0111100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1110101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101110
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 47, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0111100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1111010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000101111
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 48, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000110000
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 49, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 0000010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000110001
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 50, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 0000101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000110010
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 51, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 1000100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 0001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000110011
    ../tests/check_alu.c:1454: test_alup_div_floating_fn() _num = 52, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1465: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 1000100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1466: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 0001010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _GOT_VAL = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _NUM = 0000000000000000000000000000000000000000000000000000000000110100
    Compilation finished successfully.

  14. #179
    Registered User awsdert's Avatar
    Join Date
    Jan 2015
    Posts
    1,733
    I stripped the
    _DMAN.from = ...
    part and the mantissa's started to look as they should mostly, the main bug appears to be a lack of overflow support in division, anyone got any ideas on how to do so from this?
    Code:
    int_t alup__div_int2int( alup_t _NUM, alup_t _VAL, void *_rem )
    {	
    
    	int ret;
    	alup_t _SEG, _REM;
    	alub_t n;
    	bool_t nNeg, vNeg;
    	size_t bits, diff, size;
    	
    	if ( !_NUM.data || !_VAL.data || !_rem )
    	{
    		ret = EINVAL;
    		
    		alu_error( ret );
    		
    		if ( !_NUM.data ) alu_puts("NUM.data was NULL!");
    			
    		if ( !_VAL.data ) alu_puts("VAL.data was NULL!");
    			
    		if ( !_rem ) alu_puts("_rem was NULL!");
    		
    		return ret;
    	}
    	
    	ret = 0;
    	nNeg = alup_below0( _NUM );
    	vNeg = alup_below0( _VAL );
    	
    	if ( nNeg )
    		alup_neg( _NUM );
    	
    	if ( vNeg )
    		alup_neg( _VAL );
    	
    	bits = 0;
    	diff = _NUM.upto - _NUM.from;
    	size = (diff / UNIC_CHAR_BIT) + !!(diff % UNIC_CHAR_BIT);
    	
    	alup_init_unsigned( _REM, _rem, size );
    	_REM.info = _NUM.info;
    	
    	(void)alup_mov_int2int( _REM, _NUM );
    	(void)alup_set( _NUM, 0 );
    	
    	_SEG = _REM;
    	_SEG.info = 0;
    	
    	n = alup_end_bit( _REM );
    	_SEG.upto = _SEG.from = n.bit + 1;
    	n = alub( _NUM.data, _NUM.from );
    	
    #if 0
    	while ( _SEG.from > _REM.from )
    #else
    	while ( alup_cmp_int2int( _REM, _VAL ) >= 0 )
    #endif
    	{
    		++bits;
    		_SEG.from--;
    		if ( alup_cmp_int2int( _SEG, _VAL ) >= 0 )
    		{
    			ret = alup__sub_int2int( _SEG, _VAL );
    			
    			if ( ret == ENODATA )
    				break;
    			
    			alup__shl( _NUM, bits );
    			*(n.ptr) |= n.mask;
    			bits = 0;
    		}
    	}
    	
    	if ( bits )
    		alup__shl( _NUM, bits );
    		
    	if ( nNeg != vNeg )
    		alup_neg( _NUM );
    	
    	if ( nNeg )
    		alup_neg( _REM );
    	
    	if ( vNeg )
    		alup_neg( _VAL );
    	
    	return ret;
    }
    Currently the only idea I have is to shift the mantissa across to start where the exponent should and then check for set bits after where it should respectively end, then finally shifting the mantissa back into position before finally setting the exponent to what it should be, I would prefer to catch overflow directly in the alup__div_int2int() though so any ideas are welcome

  15. #180
    Registered User awsdert's Avatar
    Join Date
    Jan 2015
    Posts
    1,733
    Decided to go with generating the overflow if the remainder was not 0, circling back to the initial problem I can't quite get the mantissa & exponent to always be correct, the incorrect results are generally 1 bit off:
    Code:
    make check.run
    ...
    Running suite(s): ALU
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 3, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0000 01111111111 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0000 01111111111 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 5, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0000 01111111111 1010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0000 01111111111 0110101010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0002 10000000001 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 6, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0001 10000000000 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 7, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0001 10000000000 0010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0000 01111111111 1001010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0002 10000000001 1100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0002 10000000001 1100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 9, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0002 10000000001 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 0010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 10, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0001 10000000000 1010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0001 10000000000 0110101010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 11, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0001 10000000000 1101010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0001 10000000000 0111010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 12, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0002 10000000001 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 13, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0002 10000000001 0001010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0001 10000000000 1000101010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 14, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0002 10000000001 0010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0001 10000000000 1001010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 1100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 15, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0002 10000000001 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0002 10000000001 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0003 10000000010 1110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0003 10000000010 1110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 17, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0002 10000000001 0110101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0002 10000000001 0101101010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 0001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 18, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0002 10000000001 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 0010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 19, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0002 10000000001 1001010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0002 10000000001 0110010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0011000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 0011000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 20, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0002 10000000001 1010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0002 10000000001 0110101010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 21, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0002 10000000001 1100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0101000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 0101000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 22, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0002 10000000001 1101010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0002 10000000001 0111010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 23, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0002 10000000001 1110101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0002 10000000001 0111101010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 24, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 25, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 0000101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0002 10000000001 1000010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 1001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 1001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 26, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 0001010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0002 10000000001 1000101010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 27, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 0010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 1001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 1011000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 1011000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 28, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 0010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0002 10000000001 1001010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 1100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 1100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 29, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 0011010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0002 10000000001 1001101010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 1101000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 1101000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 30, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 1110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 1110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 31, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 0100101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0002 10000000001 1010010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0004 10000000011 1111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0004 10000000011 1111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 33, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0004 10000000011 0101100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0000100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0000100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 34, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 0110101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 0101101010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 35, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 0111010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 0101110101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0001100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0001100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 36, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0004 10000000011 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 37, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 1000101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 0110001010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0010100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0010100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 38, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 1001010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 0110010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0011000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0011000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 39, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0004 10000000011 0110100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0011100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0011100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 40, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 1010101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 0110101010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 41, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 1011010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 0110110101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0100100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0100100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 42, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 1100000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0004 10000000011 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0101000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0101000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 43, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 1100101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 0111001010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0101100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0101100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 44, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 1101010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 0111010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 45, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 1110000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0004 10000000011 0111100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0110100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0110100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 46, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 1110101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 0111101010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0111000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 47, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0003 10000000010 1111010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 0111110101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 0111100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 0111100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 48, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0004 10000000011 0000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0004 10000000011 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 49, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0004 10000000011 0000010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 1000001010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 1000100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 1000100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 50, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0004 10000000011 0000101010101010101010101010101010101010101010101011
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 1000010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 1001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 1001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 51, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0004 10000000011 0001000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0004 10000000011 1000100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 1001100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 1001100000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1456: test_alup_div_floating_fn() _num = 52, _val = 3, (_EXP.upto = 63) - (_EXP.from = 52) = 11, (_MAN.upto = 52) - (_MAN.from = 0) = 52
    ../tests/check_alu.c:1467: test_alup_div_floating_fn() _EXPECT = 0 +0004 10000000011 0001010101010101010101010101010101010101010101010101
    ../tests/check_alu.c:1468: test_alup_div_floating_fn() _RESULT = 0 +0003 10000000010 1000101010101010101010101010101010101010101010101010
    ../tests/check_alu.c:1469: test_alup_div_floating_fn() _GOT_NUM = 0 +0005 10000000100 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1470: test_alup_div_floating_fn() _SRC_NUM = 0 +0005 10000000100 1010000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1471: test_alup_div_floating_fn() _GOT_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    ../tests/check_alu.c:1472: test_alup_div_floating_fn() _SRC_VAL = 0 +0001 10000000000 1000000000000000000000000000000000000000000000000000
    97%: Checks: 1877, Failures: 46, Errors: 0
    ../tests/check_alu.c:1475:F:Core:test_alup_div_floating:3: Assertion 'memcmp( &result, &expect, sizeof(double) ) == 0' failed
    ...
    ../tests/check_alu.c:1475:F:Core:test_alup_div_floating:52: Assertion 'memcmp( &result, &expect, sizeof(double) ) == 0' failed
    Compilation finished successfully.
    This is the code I currently have:
    Code:
    int_t alup__div( alup_t _NUM, alup_t _VAL, void *_rem, void *_tmp )
    {
    	if ( alup_floating( _NUM ) || alup_floating( _VAL ) )
    	{
    		int_t ret;
    		alup_t _DST, _SRC, _DMAN, _SMAN;
    		ssize_t dexp, sexp, dbias, sbias, dbits, sbits, bits, size;
    		bool_t dneg, sneg;
    		
    		/* Ensure dealing with just floats, impossible for both to take _tmp
    		 * given the above if statment */
    		
    		if ( alup_floating( _NUM ) )
    		{
    			_DST = _NUM;
    		}
    		else
    		{
    			bits = _NUM.upto - _NUM.from;
    			size = BITS2SIZE( bits );
    			alup_init_floating( _DST, _tmp, size );
    			alup_mov( _DST, _NUM );
    		}
    		
    		if ( alup_floating( _VAL ) )
    		{
    			_SRC = _VAL;
    		}
    		else
    		{
    			bits = _VAL.upto - _VAL.from;
    			size = BITS2SIZE( bits );
    			alup_init_floating( _SRC, _tmp, size );
    			alup_mov( _SRC, _VAL );
    		}
    		
    		dneg = alup_below0( _DST );
    		sneg = alup_below0( _SRC );
    		alub_set( _DST.data, _DST.upto - 1, dneg != sneg );
    		
    		dexp = alup_get_exponent( _DST );
    		sexp = alup_get_exponent( _SRC );
    		
    		if ( !dexp || !sexp )
    		{
    			_NUM.upto--;
    			alup_set( _NUM, 0 );
    			return 0;
    		}
    		
    		dbias = alup_get_exponent_bias( _DST );
    		dexp -= dbias;
    		
    		sbias = alup_get_exponent_bias( _DST );
    		sexp -= sbias;
    				
    		alup_init_mantissa( _DST, _DMAN );
    		alup_init_mantissa( _SRC, _SMAN );
    		
    		dbits = _DMAN.upto - _DMAN.from;
    		sbits = _SMAN.upto - _SMAN.from;
    		bits = LOWEST( dbits, sbits );
    		
    		_SMAN.from = _SMAN.upto - EITHER( sexp >= 0 && sexp < bits, sexp, bits );
    		
    		alub_set( _DMAN.data, _DMAN.upto, 1 );
    		alub_set( _SMAN.data, _SMAN.upto, 1 );
    		_DMAN.upto++;
    		_SMAN.upto++;
    		
    		ret = alup__div_int2int( _DMAN, _SMAN, _rem );
    		
    		_DMAN.upto--;
    		_SMAN.upto--;
    		
    		/* We mangled this so restore it now */
    		alup_set_exponent( _SRC, sexp + sbias );
    
    #if 1
    		if ( ret == EOVERFLOW )
    		{
    			dexp--;
    			//alup__shr( _DMAN, 1 );
    			//alub_set( _DMAN.data, _DMAN.upto - 1, 1 );
    		}
    #endif
    		
    		dexp -= sexp;
    		if ( dexp > dbias )
    		{	
    			/* Set infinity */
    			alup_set_exponent( _DST, (dbias << 1) | 1 );
    			alup_set( _DMAN, 0 );
    		}
    		else
    		{
    			alup_set_exponent( _DST, dexp + dbias );
    		}
    		
    		if ( alup_floating( _NUM ) )
    			return 0;
    			
    		return alup_mov( _NUM, _DST );
    	}
    	
    	return alup__div_int2int( _NUM, _VAL, _rem );
    }
    I'm drawing a blank on ideas after trying everything I could think of, anyone else have some idea/s?

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. can anyone help to spot mistake in the code
    By chess_queen in forum C Programming
    Replies: 1
    Last Post: 10-21-2012, 10:37 AM
  2. Can you spot my mistake?
    By Brewer in forum C Programming
    Replies: 13
    Last Post: 11-12-2006, 12:50 PM
  3. going to a certain spot in a file...
    By agerealm in forum C++ Programming
    Replies: 3
    Last Post: 05-17-2002, 02:31 AM

Tags for this Thread