@@ -1735,46 +1735,80 @@ auto* _syncStackToShadowMemory_Xe(Value* arg_0, Value* arg_1, Value* arg_2, Valu
1735
1735
auto* BB_5 = BasicBlock ::Create (* Ctx .getLLVMContext (), VALUE_NAME ("_syncStackToShadowMemory_Xe." ), _JoinBB -> getParent (), _JoinBB );
1736
1736
auto* BB_6 = BasicBlock ::Create (* Ctx .getLLVMContext (), VALUE_NAME ("_syncStackToShadowMemory_Xe." ), _JoinBB -> getParent (), _JoinBB );
1737
1737
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 );
1738
1741
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 );
1746
1749
SetInsertPoint (BB_5 );
1747
1750
createReadSyncTraceRay (arg_2 );
1748
1751
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 );
1767
1764
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 );
1770
1790
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 );
1772
1804
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 );
1776
1810
SetInsertPoint (_CurIP );
1777
- return V_29 ;
1811
+ return V_52 ;
1778
1812
}
1779
1813
1780
1814
auto* _getCommittedStatus_Xe (Value * arg_0 , const Twine & _ReturnName = "" )
0 commit comments