The rising/falling edge function is for detecting falling edges on signals in VHDL - eg. detecting clock edges. They are NOT synthesisable other than for clocks.
To detect rising and falling edges of a signal in a synchronous environment, you need to register the source signal (like with signalx) and check the delayed and non-delayed version on a clock edge. You cannot use the rising edge function for this, because these functions can only check 1 signal, not two.