Displaying 3 results from an estimated 3 matches for "forceeval".
2017 Jun 19
4
LLVM behavior different depending on function symbol name
Greetings,
I have a Zig implementation of ceil which is emitted into LLVM IR like this:
; Function Attrs: nobuiltin nounwind
define internal fastcc float @ceil(float) unnamed_addr #3 !dbg !644 {
Entry:
%x = alloca float, align 4
store float %0, float* %x
call void @llvm.dbg.declare(metadata float* %x, metadata !649, metadata
!494), !dbg !651
%1 = load float, float* %x, !dbg !652
%2 =
2017 Jun 19
2
LLVM behavior different depending on function symbol name
...and i32 %14, %15, !dbg !96
%17 = icmp eq i32 %16, 0, !dbg !97
br i1 %17, label %Then3, label %Else4, !dbg !97
Else2: ; preds = %Else
%18 = load float, float* %x, !dbg !98
%19 = fadd fast float %18, 0x4770000000000000, !dbg !100
call fastcc void @forceEval(float %19) #6, !dbg !101
%20 = load i32, i32* %u, !dbg !102
%21 = lshr i32 %20, 31, !dbg !103
%22 = icmp ne i32 %21, 0, !dbg !104
br i1 %22, label %Then5, label %Else6, !dbg !104
Then3: ; preds = %Then1
%23 = load float, float* %x, !dbg !105
r...
2017 Jun 19
2
LLVM behavior different depending on function symbol name
..., !dbg !97
>> br i1 %17, label %Then3, label %Else4, !dbg !97
>>
>> Else2: ; preds = %Else
>> %18 = load float, float* %x, !dbg !98
>> %19 = fadd fast float %18, 0x4770000000000000, !dbg !100
>> call fastcc void @forceEval(float %19) #6, !dbg !101
>> %20 = load i32, i32* %u, !dbg !102
>> %21 = lshr i32 %20, 31, !dbg !103
>> %22 = icmp ne i32 %21, 0, !dbg !104
>> br i1 %22, label %Then5, label %Else6, !dbg !104
>>
>> Then3: ; preds...