diff --git a/lib/Target/ARM/ARMInstrThumb.td b/lib/Target/ARM/ARMInstrThumb.td
index 73951854a1f44fcdea4ae4b9206d040db398241e..29b20b9446b5e4be044bab76a2be4d7fa491e3be 100644
--- a/lib/Target/ARM/ARMInstrThumb.td
+++ b/lib/Target/ARM/ARMInstrThumb.td
@@ -272,6 +272,20 @@ def tADJCALLSTACKDOWN :
 //def PSEUDO_LOOPBOUND : PseudoInst<(outs), (ins i32imm:$minv, i32imm:$maxv),
 //                          "#PSEUDO_LOOPBOUND", "[$minv,$maxv]",
 //                          [(loopbound (i32 imm:$minv), (i32 imm:$maxv))]>;
+//                          [(loopbound (i32 imm:$minv), (i32 imm:$maxv))]>;
+//
+// thumb pseudo instructions: tPseudoInst
+//def PSEUDO_LOOPBOUND : tPseudoInst<(outs), (ins i32imm:$minv, i32imm:$maxv),
+//                          "#PSEUDO_LOOPBOUND", "[$minv,$maxv]">
+//                          [(loopbound (i32 imm:$minv), (i32 imm:$maxv))]>;
+
+// let isReMaterializable = 1 in
+def PSEUDO_LOOPBOUND : PseudoInst<(outs), (ins i32imm:$minv, i32imm:$maxv),
+                             NoItinerary,
+               [(loopbound (i32 imm:$minv), (i32 imm:$maxv))]>,
+               Requires<[IsThumb, IsThumb1Only]>;
+
+
 
 class T1SystemEncoding<bits<8> opc>
   : T1Encoding<0b101111> {