this just might work
authorDuraid Madina <duraid@octopus.com.au>
Wed, 11 Jan 2006 01:38:07 +0000 (01:38 +0000)
committerDuraid Madina <duraid@octopus.com.au>
Wed, 11 Jan 2006 01:38:07 +0000 (01:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25195 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/IA64/IA64InstrInfo.td

index 27888185d66a1d3ce50ee9a6dc3331e67f814001..f18b451b7f348975b87962f7d97967ef55af8d42 100644 (file)
@@ -429,10 +429,10 @@ def SELECTINT : Pat<(select PR:$which, GR:$src1, GR:$src2),
 def SELECTFP : Pat<(select PR:$which, FP:$src1, FP:$src2),
           (CFMOV (FMOV FP:$src2), FP:$src1, PR:$which)>; // note order!
 // TODO: can do this faster, w/o using any integer regs (see pattern isel)
-// FIXME: this makes tblgen cough and splutter:
-// Assertion && "Unknown node in result pattern!"'
-//def SELECTBOOL : Pat<(select PR:$which, PR:$src1, PR:$src2), // note order!
-//          (trunc (CMOV (MOV (zext PR:$src2)), (zext PR:$src1), PR:$which))>;
+def SELECTBOOL : Pat<(select PR:$which, PR:$src1, PR:$src2), // note order!
+          (CMPNE (CMOV
+            (MOV (TPCADDIMM22 (ADDS r0, 0), 1, PR:$src2)),
+            (TPCADDIMM22 (ADDS r0, 0), 1, PR:$src1), PR:$which), r0)>;
 
 // load constants of various sizes // FIXME: prettyprint -ve constants
 def : Pat<(i64 immSExt14:$imm), (ADDS r0, immSExt14:$imm)>;