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