@@ -1735,46 +1735,80 @@ auto* _syncStackToShadowMemory_Xe(Value* arg_0, Value* arg_1, Value* arg_2, Valu
17351735 auto* BB_5 = BasicBlock ::Create (* Ctx .getLLVMContext (), VALUE_NAME ("_syncStackToShadowMemory_Xe." ), _JoinBB -> getParent (), _JoinBB );
17361736 auto* BB_6 = BasicBlock ::Create (* Ctx .getLLVMContext (), VALUE_NAME ("_syncStackToShadowMemory_Xe." ), _JoinBB -> getParent (), _JoinBB );
17371737 auto* BB_7 = BasicBlock ::Create (* Ctx .getLLVMContext (), VALUE_NAME ("_syncStackToShadowMemory_Xe." ), _JoinBB -> getParent (), _JoinBB );
1738+ auto* BB_8 = BasicBlock ::Create (* Ctx .getLLVMContext (), VALUE_NAME ("_syncStackToShadowMemory_Xe." ), _JoinBB -> getParent (), _JoinBB );
1739+ auto* BB_9 = BasicBlock ::Create (* Ctx .getLLVMContext (), VALUE_NAME ("_syncStackToShadowMemory_Xe." ), _JoinBB -> getParent (), _JoinBB );
1740+ auto* BB_10 = BasicBlock ::Create (* Ctx .getLLVMContext (), VALUE_NAME ("_syncStackToShadowMemory_Xe." ), _JoinBB -> getParent (), _JoinBB );
17381741 SetInsertPoint (BB_4 );
1739- auto* V_8 = CreateBitCast (arg_1 , PointerType ::get (getInt8Ty (), arg_1 -> getType ()-> getPointerAddressSpace ()));
1740- auto* V_9 = CreateBitCast (arg_0 , PointerType ::get (getInt8Ty (), arg_0 -> getType ()-> getPointerAddressSpace ()));
1741- auto* V_10 = CreateInBoundsGEP (_struct_RTStackFormat__RTStack (* Ctx .getModule ()), arg_1 , { getInt64 (0 ), getInt32 (1 ), getInt32 (3 ) });
1742- auto* V_11 = CreateLoad (getInt32Ty (), V_10 );
1743- auto* V_12 = CreateAnd (V_11 , getInt32 (268435456 ));
1744- auto* V_13 = CreateICmpEQ (V_12 , getInt32 (0 ));
1745- CreateCondBr (V_13 , BB_5 , BB_7 );
1742+ auto* V_11 = CreateBitCast (arg_1 , PointerType ::get (getInt8Ty (), arg_1 -> getType ()-> getPointerAddressSpace ()));
1743+ auto* V_12 = CreateBitCast (arg_0 , PointerType ::get (getInt8Ty (), arg_0 -> getType ()-> getPointerAddressSpace ()));
1744+ auto* V_13 = CreateInBoundsGEP (_struct_RTStackFormat__RTStack (* Ctx .getModule ()), arg_1 , { getInt64 (0 ), getInt32 (1 ), getInt32 (3 ) });
1745+ auto* V_14 = CreateLoad (getInt32Ty (), V_13 );
1746+ auto* V_15 = CreateAnd (V_14 , getInt32 (268435456 ));
1747+ auto* V_16 = CreateICmpEQ (V_15 , getInt32 (0 ));
1748+ CreateCondBr (V_16 , BB_5 , BB_10 );
17461749 SetInsertPoint (BB_5 );
17471750 createReadSyncTraceRay (arg_2 );
17481751 CreateStore (getInt32 (3 ), arg_3 );
1749- auto* V_14 = CreateGEP (_struct_RTStackFormat__RTStack (* Ctx .getModule ()), arg_1 , { getInt64 (0 ), getInt32 (1 ), getInt32 (0 ) });
1750- auto* V_15 = CreateBitCast (V_14 , PointerType ::get (getInt8Ty (), arg_1 -> getType ()-> getPointerAddressSpace ()));
1751- auto* V_16 = CreateGEP (_struct_RTStackFormat__RTStack (* Ctx .getModule ()), arg_0 , { getInt64 (0 ), getInt32 (1 ), getInt32 (0 ) });
1752- auto* V_17 = CreateBitCast (V_16 , PointerType ::get (getInt8Ty (), arg_0 -> getType ()-> getPointerAddressSpace ()));
1753- CreateIntrinsic (Intrinsic ::memcpy , { PointerType ::get (getInt8Ty (), arg_1 -> getType ()-> getPointerAddressSpace ()), PointerType ::get (getInt8Ty (), arg_0 -> getType ()-> getPointerAddressSpace ()), getInt64Ty () }, { V_15 , V_17 , getInt64 (32 ), getFalse () }, nullptr );
1754- auto* V_18 = CreateGEP (_struct_RTStackFormat__RTStack (* Ctx .getModule ()), arg_1 , { getInt64 (0 ), getInt32 (3 ), getInt32 (0 ), getInt64 (0 ) });
1755- auto* V_19 = CreateBitCast (V_18 , PointerType ::get (getInt8Ty (), arg_1 -> getType ()-> getPointerAddressSpace ()));
1756- auto* V_20 = CreateGEP (_struct_RTStackFormat__RTStack (* Ctx .getModule ()), arg_0 , { getInt64 (0 ), getInt32 (3 ), getInt32 (0 ), getInt64 (0 ) });
1757- auto* V_21 = CreateBitCast (V_20 , PointerType ::get (getInt8Ty (), arg_0 -> getType ()-> getPointerAddressSpace ()));
1758- CreateIntrinsic (Intrinsic ::memcpy , { PointerType ::get (getInt8Ty (), arg_1 -> getType ()-> getPointerAddressSpace ()), PointerType ::get (getInt8Ty (), arg_0 -> getType ()-> getPointerAddressSpace ()), getInt64Ty () }, { V_19 , V_21 , getInt64 (24 ), getFalse () }, nullptr );
1759- auto* V_22 = CreateInBoundsGEP (_struct_RTStackFormat__RTStack (* Ctx .getModule ()), arg_0 , { getInt64 (0 ), getInt32 (0 ), getInt32 (3 ) });
1760- auto* V_23 = CreateLoad (getInt32Ty (), V_22 );
1761- auto* V_24 = CreateAnd (V_23 , getInt32 (65536 ));
1762- auto* V_25 = CreateICmpEQ (V_24 , getInt32 (0 ));
1763- auto* V_26 = CreateLoad (getInt32Ty (), V_10 );
1764- auto* V_27 = CreateAnd (V_26 , getInt32 (268435456 ));
1765- auto* V_28 = CreateICmpEQ (V_27 , getInt32 (0 ));
1766- CreateCondBr (V_25 , BB_7 , BB_6 );
1752+ auto* V_17 = CreateGEP (_struct_RTStackFormat__RTStack (* Ctx .getModule ()), arg_1 , { getInt64 (0 ), getInt32 (1 ), getInt32 (0 ) });
1753+ auto* V_18 = CreateBitCast (V_17 , PointerType ::get (getInt8Ty (), arg_1 -> getType ()-> getPointerAddressSpace ()));
1754+ auto* V_19 = CreateGEP (_struct_RTStackFormat__RTStack (* Ctx .getModule ()), arg_0 , { getInt64 (0 ), getInt32 (1 ), getInt32 (0 ) });
1755+ auto* V_20 = CreateBitCast (V_19 , PointerType ::get (getInt8Ty (), arg_0 -> getType ()-> getPointerAddressSpace ()));
1756+ CreateIntrinsic (Intrinsic ::memcpy , { PointerType ::get (getInt8Ty (), arg_1 -> getType ()-> getPointerAddressSpace ()), PointerType ::get (getInt8Ty (), arg_0 -> getType ()-> getPointerAddressSpace ()), getInt64Ty () }, { V_18 , V_20 , getInt64 (32 ), getFalse () }, nullptr );
1757+ auto* V_21 = CreateGEP (_struct_RTStackFormat__RTStack (* Ctx .getModule ()), arg_1 , { getInt64 (0 ), getInt32 (3 ), getInt32 (0 ), getInt64 (0 ) });
1758+ auto* V_22 = CreateBitCast (V_21 , PointerType ::get (getInt8Ty (), arg_1 -> getType ()-> getPointerAddressSpace ()));
1759+ auto* V_23 = CreateGEP (_struct_RTStackFormat__RTStack (* Ctx .getModule ()), arg_0 , { getInt64 (0 ), getInt32 (3 ), getInt32 (0 ), getInt64 (0 ) });
1760+ auto* V_24 = CreateBitCast (V_23 , PointerType ::get (getInt8Ty (), arg_0 -> getType ()-> getPointerAddressSpace ()));
1761+ CreateIntrinsic (Intrinsic ::memcpy , { PointerType ::get (getInt8Ty (), arg_1 -> getType ()-> getPointerAddressSpace ()), PointerType ::get (getInt8Ty (), arg_0 -> getType ()-> getPointerAddressSpace ()), getInt64Ty () }, { V_22 , V_24 , getInt64 (24 ), getFalse () }, nullptr );
1762+ auto* V_25 = isRayQueryReturnOptimizationEnabled ();
1763+ CreateCondBr (V_25 , BB_6 , BB_7 );
17671764 SetInsertPoint (BB_6 );
1768- CreateIntrinsic (Intrinsic ::memcpy , { PointerType ::get (getInt8Ty (), arg_1 -> getType ()-> getPointerAddressSpace ()), PointerType ::get (getInt8Ty (), arg_0 -> getType ()-> getPointerAddressSpace ()), getInt64Ty () }, { V_8 , V_9 , getInt64 (32 ), getFalse () }, nullptr );
1769- CreateBr (BB_7 );
1765+ auto* V_26 = CreateLoad (getInt32Ty (), V_13 );
1766+ auto* V_27 = CreateShl (arg_2 , getInt32 (28 ));
1767+ auto* V_28 = CreateAnd (V_27 , getInt32 (268435456 ));
1768+ auto* V_29 = CreateAnd (V_26 , getInt32 (4025614335 ));
1769+ auto* V_30 = CreateAnd (arg_2 , getInt32 (8 ));
1770+ auto* V_31 = CreateICmpEQ (V_30 , getInt32 (0 ));
1771+ auto* V_32 = CreateSelect (V_31 , getInt32 (524288 ), getInt32 (393216 ));
1772+ auto* V_33 = CreateOr (V_32 , V_28 );
1773+ auto* V_34 = CreateOr (V_33 , V_29 );
1774+ auto* V_35 = CreateXor (V_34 , getInt32 (268435456 ));
1775+ CreateStore (V_35 , V_13 );
1776+ auto* V_36 = CreateAnd (arg_2 , getInt32 (6 ));
1777+ auto* V_37 = CreateICmpEQ (V_36 , getInt32 (0 ));
1778+ auto* V_38 = CreateICmpNE (V_28 , getInt32 (0 ));
1779+ CreateCondBr (V_37 , BB_10 , BB_9 );
1780+ SetInsertPoint (BB_9 );
1781+ CreateIntrinsic (Intrinsic ::memcpy , { PointerType ::get (getInt8Ty (), arg_1 -> getType ()-> getPointerAddressSpace ()), PointerType ::get (getInt8Ty (), arg_0 -> getType ()-> getPointerAddressSpace ()), getInt64Ty () }, { V_11 , V_12 , getInt64 (32 ), getFalse () }, nullptr );
1782+ auto* V_39 = CreateInBoundsGEP (_struct_RTStackFormat__RTStack (* Ctx .getModule ()), arg_1 , { getInt64 (0 ), getInt32 (0 ), getInt32 (3 ) });
1783+ auto* V_40 = CreateLoad (getInt32Ty (), V_39 );
1784+ auto* V_41 = CreateICmpEQ (V_36 , getInt32 (2 ));
1785+ auto* V_42 = CreateAnd (V_40 , getInt32 (4293984255 ));
1786+ auto* V_43 = CreateSelect (V_41 , getInt32 (589824 ), getInt32 (458752 ));
1787+ auto* V_44 = CreateOr (V_42 , V_43 );
1788+ CreateStore (V_44 , V_39 );
1789+ CreateBr (BB_10 );
17701790 SetInsertPoint (BB_7 );
1771- auto* V_29 = CreatePHI (getInt1Ty (), 3 , _ReturnName );
1791+ auto* V_45 = CreateInBoundsGEP (_struct_RTStackFormat__RTStack (* Ctx .getModule ()), arg_0 , { getInt64 (0 ), getInt32 (0 ), getInt32 (3 ) });
1792+ auto* V_46 = CreateLoad (getInt32Ty (), V_45 );
1793+ auto* V_47 = CreateAnd (V_46 , getInt32 (65536 ));
1794+ auto* V_48 = CreateLoad (getInt32Ty (), V_13 );
1795+ auto* V_49 = CreateICmpEQ (V_47 , getInt32 (0 ));
1796+ auto* V_50 = CreateAnd (V_48 , getInt32 (268435456 ));
1797+ auto* V_51 = CreateICmpEQ (V_50 , getInt32 (0 ));
1798+ CreateCondBr (V_49 , BB_10 , BB_8 );
1799+ SetInsertPoint (BB_8 );
1800+ CreateIntrinsic (Intrinsic ::memcpy , { PointerType ::get (getInt8Ty (), arg_1 -> getType ()-> getPointerAddressSpace ()), PointerType ::get (getInt8Ty (), arg_0 -> getType ()-> getPointerAddressSpace ()), getInt64Ty () }, { V_11 , V_12 , getInt64 (32 ), getFalse () }, nullptr );
1801+ CreateBr (BB_10 );
1802+ SetInsertPoint (BB_10 );
1803+ auto* V_52 = CreatePHI (getInt1Ty (), 5 , _ReturnName );
17721804 CreateBr (_JoinBB );
1773- V_29 -> addIncoming (V_28 , BB_5 );
1774- V_29 -> addIncoming (getFalse (), BB_4 );
1775- V_29 -> addIncoming (V_28 , BB_6 );
1805+ V_52 -> addIncoming (V_38 , BB_9 );
1806+ V_52 -> addIncoming (V_38 , BB_6 );
1807+ V_52 -> addIncoming (getFalse (), BB_4 );
1808+ V_52 -> addIncoming (V_51 , BB_7 );
1809+ V_52 -> addIncoming (V_51 , BB_8 );
17761810 SetInsertPoint (_CurIP );
1777- return V_29 ;
1811+ return V_52 ;
17781812}
17791813
17801814auto* _getCommittedStatus_Xe (Value * arg_0 , const Twine & _ReturnName = "" )
0 commit comments