Gotta get ready for work so will just dump the code and output for now (uploaded all code to alu project on github just now so can search through that whilst waiting for me to get a chance to repond to questions)
Code:
int_t alup__neg_int( alup_t const * const _SRC )
{
	int ret = alup_not( _SRC );
	
	if ( ret == 0 )
		return alup__inc_int( _SRC );
		
	alu_error( ret );
	return ret;
}

int_t alup_neg( alup_t const * const _SRC )
{
	if ( alup_floating( _SRC ) )
	{
		alup_t _MAN;
		alub_t sign = alup_final_bit( _SRC );
		bool_t neg = !(*(sign.ptr) & sign.mask);
		
		*(sign.ptr) &= ~(sign.mask);
		*(sign.ptr) |= IFTRUE( neg, sign.mask );
		
		alup_init_mantissa( _SRC, _MAN );
		
		return alup__neg_int( &_MAN );
	}
	
	return alup__neg_int( _SRC );
}
Code:
make check.run
...
Running suite(s): ALU
../tests/check_alu.c:670: test_alup_op1_floating_incremental_fn() 192, -(192.000000) = -192.000000, got 192.000000
../tests/check_alu.c:680: test_alup_op1_floating_incremental_fn() &_TESTNO = 0 000'0000'0000'0000'0000'0000'1100'0000
../tests/check_alu.c:681: test_alup_op1_floating_incremental_fn() &_BEFORE = 0 +0007 10000110 100'0000'0000'0000'0000'0000
../tests/check_alu.c:682: test_alup_op1_floating_incremental_fn() &_EXPECT = 1 +0007 10000110 100'0000'0000'0000'0000'0000
../tests/check_alu.c:683: test_alup_op1_floating_incremental_fn() &_RESULT = 0 +0007 10000110 100'0000'0000'0000'0000'0000
99%: Checks: 3561, Failures: 1, Errors: 0
...
Compilation finished successfully.