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