llvm.org GIT mirror llvm / 1a3048b
Add a new FGETSIGN operation, which defaults to expand on all targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45320 91177308-0d34-0410-b5e6-96231b3b80d8 Chris Lattner 12 years ago
2 changed file(s) with 9 addition(s) and 1 deletion(s). Raw diff Collapse all Expand all
270270 // FCOPYSIGN(f32, f64) is allowed.
271271 FCOPYSIGN,
272272
273 // INT = FGETSIGN(FP) - Return the sign bit of the specified floating point
274 // value as an integer 0/1 value.
275 FGETSIGN,
276
273277 /// BUILD_VECTOR(ELT0, ELT1, ELT2, ELT3,...) - Return a vector
274278 /// with the specified, possibly variable, elements. The number of elements
275279 /// is required to be a power of two.
154154 memset(&IndexedModeActions, 0, sizeof(IndexedModeActions));
155155 memset(&ConvertActions, 0, sizeof(ConvertActions));
156156
157 // Set all indexed load / store to expand.
157 // Set default actions for various operations.
158158 for (unsigned VT = 0; VT != (unsigned)MVT::LAST_VALUETYPE; ++VT) {
159 // Default all indexed load / store to expand.
159160 for (unsigned IM = (unsigned)ISD::PRE_INC;
160161 IM != (unsigned)ISD::LAST_INDEXED_MODE; ++IM) {
161162 setIndexedLoadAction(IM, (MVT::ValueType)VT, Expand);
162163 setIndexedStoreAction(IM, (MVT::ValueType)VT, Expand);
163164 }
165
166 // These operations default to expand.
167 setOperationAction(ISD::FGETSIGN, (MVT::ValueType)VT, Expand);
164168 }
165169
166170 IsLittleEndian = TD->isLittleEndian();