Bug 12083

Summary: have builtin function comparing memory backwards
Product: gcc Reporter: Yuri <yuri>
Component: middle-endAssignee: Not yet assigned to anyone <unassigned>
Status: NEW ---    
Severity: enhancement CC: gcc-bugs, xiaoyuanbo
Priority: P3    
Version: 3.3   
Target Milestone: ---   
Host: Target:
Build: Known to work:
Known to fail: Last reconfirmed: 2005-12-24 19:53:18

Description Yuri 2003-08-27 20:44:25 UTC
Right now if code has function "memcmp" compiler will inline/optimize it into
"cld; repz cmpsb" - type of code inassembly on i386.

But if the problem is to compare backwards, assembly still can do it efficiently
just replacing cld with std and moving pointers to the end of block.

But from C this efficiency is unavailable.

I propose to add GCC-extention: add builtin function "gcc_rmemcmp" which
will compare memory in reverse direction.

Yuri (yuri at tsoft dot com).

PS: I will try to work on such patch myself once I have time.
Comment 1 Zack Weinberg 2003-08-27 21:11:44 UTC
The appropriate name for such an intrinsic would be __builtin_rmemcmp.

I admit to not seeing the utility, but additional intrinsics don't cost much,
and you must have a use for such a thing.
Comment 2 xiaoyuanbo 2012-02-22 13:04:37 UTC
in memcmp i sure