implement zextload bool and truncstore bool
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 1 Nov 2006 14:13:27 +0000 (14:13 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 1 Nov 2006 14:13:27 +0000 (14:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31348 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrInfo.td

index f2100e11ca4de12df9a3b3df04b20e875e988f49..fce25c9598b55ddf2bfaa9aa4cd813ec26e4f2bc 100644 (file)
@@ -347,3 +347,13 @@ def : Pat<(extloadi8 IntRegs:$addr),
           (LDRB IntRegs:$addr)>;
 def : Pat<(extloadi16 IntRegs:$addr),
           (LDRH IntRegs:$addr)>;
+
+// zextload bool -> zextload byte
+def : Pat<(i32 (zextloadi1 IntRegs:$addr)), (LDRB IntRegs:$addr)>;
+def : Pat<(i32 (zextloadi1 IntRegs:$addr)), (LDRB IntRegs:$addr)>;
+
+// truncstore bool -> truncstore byte.
+def : Pat<(truncstorei1 IntRegs:$src, IntRegs:$addr),
+          (STRB IntRegs:$addr, IntRegs:$src)>;
+def : Pat<(truncstorei1 IntRegs:$src, IntRegs:$addr),
+          (STRB IntRegs:$addr, IntRegs:$src)>;