Added missing CMN case in Thumb2SizeReduction pass so that LLVM emits 16-bits encodin...
authorSebastian Pop <spop@codeaurora.org>
Fri, 4 May 2012 19:53:56 +0000 (19:53 +0000)
committerSebastian Pop <spop@codeaurora.org>
Fri, 4 May 2012 19:53:56 +0000 (19:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156195 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/Thumb2SizeReduction.cpp
test/CodeGen/Thumb2/thumb2-cmn.ll

index b5a397e616857f51cd2bf7603c5b151dd1dfaa9a..f18f491f4995d02224f7ffd1f9ba5009815e12ce 100644 (file)
@@ -67,6 +67,7 @@ namespace {
     { ARM::t2BICrr, 0,            ARM::tBIC,     0,   0,    0,   1,  0,0, 1,0 },
     //FIXME: Disable CMN, as CCodes are backwards from compare expectations
     //{ ARM::t2CMNrr, ARM::tCMN,  0,             0,   0,    1,   0,  2,0, 0,0 },
+    { ARM::t2CMNzrr, ARM::tCMNz,  0,             0,   0,    1,   0,  2,0, 0,0 },
     { ARM::t2CMPri, ARM::tCMPi8,  0,             8,   0,    1,   0,  2,0, 0,0 },
     { ARM::t2CMPrr, ARM::tCMPhir, 0,             0,   0,    0,   0,  2,0, 0,1 },
     { ARM::t2EORrr, 0,            ARM::tEOR,     0,   0,    0,   1,  0,0, 1,0 },
index df221b945e2ac170349a65130ab72d423ae4074c..21bbd269ca960acc5bf2f43b826fa3ca6a615f4c 100644 (file)
@@ -9,7 +9,7 @@ define i1 @f1(i32 %a, i32 %b) {
     ret i1 %tmp
 }
 ; CHECK: f1:
-; CHECK:       cmn.w   r0, r1
+; CHECK:       cmn     r0, r1
 
 define i1 @f2(i32 %a, i32 %b) {
     %nb = sub i32 0, %b
@@ -17,7 +17,7 @@ define i1 @f2(i32 %a, i32 %b) {
     ret i1 %tmp
 }
 ; CHECK: f2:
-; CHECK:       cmn.w   r0, r1
+; CHECK:       cmn     r0, r1
 
 define i1 @f3(i32 %a, i32 %b) {
     %nb = sub i32 0, %b
@@ -25,7 +25,7 @@ define i1 @f3(i32 %a, i32 %b) {
     ret i1 %tmp
 }
 ; CHECK: f3:
-; CHECK:       cmn.w   r0, r1
+; CHECK:       cmn     r0, r1
 
 define i1 @f4(i32 %a, i32 %b) {
     %nb = sub i32 0, %b
@@ -33,7 +33,7 @@ define i1 @f4(i32 %a, i32 %b) {
     ret i1 %tmp
 }
 ; CHECK: f4:
-; CHECK:       cmn.w   r0, r1
+; CHECK:       cmn     r0, r1
 
 define i1 @f5(i32 %a, i32 %b) {
     %tmp = shl i32 %b, 5
@@ -73,3 +73,13 @@ define i1 @f8(i32 %a, i32 %b) {
 ; CHECK: f8:
 ; CHECK:       cmn.w   r0, r0, ror #8
 
+
+define void @f9(i32 %a, i32 %b) nounwind optsize {
+  tail call void asm sideeffect "cmn.w     r0, r1", ""() nounwind, !srcloc !0
+  ret void
+}
+
+!0 = metadata !{i32 81}
+
+; CHECK: f9:
+; CHECK:       cmn.w   r0, r1