Home | History | Annotate | Download | only in ARM
      1 @ RUN: not llvm-mc -triple thumbv7a--none-eabi -arm-implicit-it=never  < %s 2>%t | FileCheck %s --check-prefix=CHECK
      2 @ RUN:     FileCheck %s < %t --check-prefix=THUMB-STDERR
      3 @ RUN: not llvm-mc -triple   armv7a--none-eabi -arm-implicit-it=never  < %s 2>%t | FileCheck %s --check-prefix=CHECK --check-prefix=ARM
      4 @ RUN:     FileCheck %s < %t --check-prefix=ARM-STDERR
      5 
      6 @ RUN: not llvm-mc -triple thumbv7a--none-eabi -arm-implicit-it=always < %s      | FileCheck %s --check-prefix=CHECK --check-prefix=THUMB
      7 @ RUN: not llvm-mc -triple   armv7a--none-eabi -arm-implicit-it=always < %s      | FileCheck %s --check-prefix=CHECK --check-prefix=ARM
      8 
      9 @ RUN: not llvm-mc -triple thumbv7a--none-eabi -arm-implicit-it=arm    < %s 2>%t | FileCheck %s --check-prefix=CHECK
     10 @ RUN:     FileCheck %s < %t --check-prefix=THUMB-STDERR
     11 @ RUN: not llvm-mc -triple   armv7a--none-eabi -arm-implicit-it=arm    < %s      | FileCheck %s --check-prefix=CHECK --check-prefix=ARM
     12 
     13 @ RUN: not llvm-mc -triple thumbv7a--none-eabi                     < %s 2>%t | FileCheck %s --check-prefix=CHECK
     14 @ RUN:     FileCheck %s < %t --check-prefix=THUMB-STDERR
     15 @ RUN: not llvm-mc -triple   armv7a--none-eabi                     < %s      | FileCheck %s --check-prefix=CHECK --check-prefix=ARM
     16 
     17 @ RUN: not llvm-mc -triple thumbv7a--none-eabi -arm-implicit-it=thumb  < %s      | FileCheck %s --check-prefix=CHECK --check-prefix=THUMB
     18 @ RUN: not llvm-mc -triple   armv7a--none-eabi -arm-implicit-it=thumb  < %s 2>%t | FileCheck %s --check-prefix=CHECK --check-prefix=ARM
     19 @ RUN:     FileCheck %s < %t --check-prefix=ARM-STDERR
     20 
     21 @ A single conditional instruction without IT block
     22   .section test1
     23 @ CHECK-LABEL: test1
     24   addeq r0, r0, #1
     25 @ THUMB: it eq
     26 @ THUMB: addeq r0, r0, #1
     27 @ ARM:   addeq r0, r0, #1
     28 @ THUMB-STDERR: error: predicated instructions must be in IT block
     29 @ ARM-STDERR: warning: predicated instructions should be in IT block
     30 
     31 @ A single conditional instruction with IT block
     32   .section test2
     33 @ CHECK-LABEL: test2
     34   it eq
     35   addeq r0, r0, #1
     36 @ THUMB: it eq
     37 @ THUMB: addeq r0, r0, #1
     38 @ ARM:   addeq r0, r0, #1
     39 @ THUMB-STDERR-NOT: error:
     40 @ ARM-STDERR-NOT: warning:
     41 
     42 @ A single conditional instruction with IT block, but incorrect condition
     43   .section test3
     44 @ CHECK-LABEL: test3
     45   it eq
     46   addgt r0, r0, #1
     47 @ THUMB-STDERR: error: incorrect condition in IT block
     48 @ ARM-STDERR:   error: incorrect condition in IT block
     49 
     50 @ Multiple conditional instructions in an IT block, inverted and non-inverted conditions
     51   .section test4
     52 @ CHECK-LABEL: test4
     53   itete gt
     54   addgt r0, r0, #1
     55   addle r0, r0, #1
     56   addgt r0, r0, #1
     57   addle r0, r0, #1
     58 @ THUMB: itete gt
     59 @ CHECK: addgt r0, r0, #1
     60 @ CHECK: addle r0, r0, #1
     61 @ CHECK: addgt r0, r0, #1
     62 @ CHECK: addle r0, r0, #1
     63 @ THUMB-STDERR-NOT: error:
     64 @ ARM-STDERR-NOT: warning:
     65 
     66 @ Incorrectly inverted condition on the second slot of an IT block
     67   .section test5
     68 @ CHECK-LABEL: test5
     69   itt eq
     70   addeq r0, r0, #1
     71   addne r0, r0, #1
     72 @ THUMB-STDERR: error: incorrect condition in IT block
     73 @ ARM-STDERR:   error: incorrect condition in IT block
     74