14#include "llvm/IR/IntrinsicsDirectX.h"
21 case Intrinsic::dx_wave_readlane:
22 return ScalarOpdIdx == 1;
31 case Intrinsic::dx_asdouble:
32 case Intrinsic::dx_isinf:
33 case Intrinsic::dx_firstbitlow:
34 case Intrinsic::dx_firstbituhigh:
35 case Intrinsic::dx_firstbitshigh:
45 case Intrinsic::dx_asdouble:
46 case Intrinsic::dx_firstbitlow:
47 case Intrinsic::dx_firstbitshigh:
48 case Intrinsic::dx_firstbituhigh:
49 case Intrinsic::dx_frac:
50 case Intrinsic::dx_isinf:
51 case Intrinsic::dx_rsqrt:
52 case Intrinsic::dx_saturate:
53 case Intrinsic::dx_splitdouble:
54 case Intrinsic::dx_wave_readlane:
55 case Intrinsic::dx_wave_reduce_max:
56 case Intrinsic::dx_wave_reduce_sum:
57 case Intrinsic::dx_wave_reduce_umax:
58 case Intrinsic::dx_wave_reduce_usum:
59 case Intrinsic::dx_imad:
60 case Intrinsic::dx_umad:
bool isTargetIntrinsicWithScalarOpAtArg(Intrinsic::ID ID, unsigned ScalarOpdIdx) const override
bool isTargetIntrinsicTriviallyScalarizable(Intrinsic::ID ID) const override
bool isTargetIntrinsicWithOverloadTypeAtArg(Intrinsic::ID ID, int OpdIdx) const override
This is an optimization pass for GlobalISel generic memory operations.