1# RUN: llc %s -mtriple=m68k -start-after=prologepilog -O0 -filetype=obj -o - \ 2# RUN: | extract-section .text \ 3# RUN: | FileCheck %s -check-prefixes=CMP8KI,CMP32KI,CMP8QI,CMP32QI,CMP8FI,CMP32FI 4# RUN: llc %s -mtriple=m68k -start-after=prologepilog -O0 -filetype=obj -o - \ 5# RUN: | extract-section .text \ 6# RUN: | FileCheck %s -check-prefixes=CMP8PI,CMP32PI,CMP8JI,CMP32JI 7 8#------------------------------------------------------------------------------ 9# MxCMP_MI class used for compare operations and operates on memory data and 10# immediate data. It uses MxArithImmEncoding encoding class. 11# NOTE: CMP is calculated by subtracting LHS(Imm) from RHS(Mem) 12#------------------------------------------------------------------------------ 13 14 15--- # PCI 16# -------------------------------+-------+-----------+----------- 17# F E D C B A 9 8 | 7 6 | 5 4 3 | 2 1 0 18# -------------------------------+-------+-----------+----------- 19# OPWORD 0 0 0 0 1 1 0 0 | SIZE | MODE | REG 20# -------------------------------+-------+-----------+----------- 21# CMP8KI: 0 0 0 0 1 1 0 0 . 0 0 1 1 1 0 1 1 22# CMP8KI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 23# CMP8KI-SAME: 0 0 0 1 1 0 0 0 . 1 1 1 1 1 1 1 1 24# -------------------------------+-------+-----------+----------- 25# CMP8KI-SAME: 0 0 0 0 1 1 0 0 . 0 0 1 1 1 0 1 1 26# CMP8KI-SAME: 0 0 0 0 0 0 0 0 . 1 1 1 1 1 1 1 1 27# CMP8KI-SAME: 0 0 0 0 1 0 0 0 . 0 0 0 0 0 0 0 0 28# -------------------------------+-------+-----------+----------- 29# CMP32KI-SAME: 0 0 0 0 1 1 0 0 . 1 0 1 1 1 0 1 1 30# CMP32KI-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 31# CMP32KI-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 32# CMP32KI-SAME: 0 1 1 1 1 0 0 0 . 0 0 0 0 0 0 0 0 33# -------------------------------+-------+-----------+----------- 34# CMP32KI-SAME: 0 0 0 0 1 1 0 0 . 1 0 1 1 1 0 1 1 35# CMP32KI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 36# CMP32KI-SAME: 0 0 0 0 0 0 0 0 . 0 0 1 0 1 0 1 0 37# CMP32KI-SAME: 0 0 0 1 1 0 0 0 . 1 1 1 1 1 1 1 1 38# ---+-----------+---+-------+---+------------------------------- 39# BRIEF DA | REG | L | SCALE | 0 | DISPLACEMENT 40# ---+-----------+---+-------+---+------------------------------- 41name: MxCMP_MI_PCI 42body: | 43 bb.0: 44 CMP8ki 0, -1, $d1, implicit-def $ccr 45 CMP8ki -1, 0, $d0, implicit-def $ccr 46 CMP32ki -1, 0, $d7, implicit-def $ccr 47 CMP32ki 42, -1, $d1, implicit-def $ccr 48 49... 50--- # PCD 51# -------------------------------+-------+-----------+----------- 52# F E D C B A 9 8 | 7 6 | 5 4 3 | 2 1 0 53# -------------------------------+-------+-----------+----------- 54# OPWORD 0 0 0 0 1 1 0 0 | SIZE | MODE | REG 55# -------------------------------+-------+-----------+----------- 56# CMP8QI-SAME: 0 0 0 0 1 1 0 0 . 0 0 1 1 1 0 1 0 57# CMP8QI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 58# CMP8QI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 59# -------------------------------+-------+-----------+----------- 60# CMP8QI-SAME: 0 0 0 0 1 1 0 0 . 0 0 1 1 1 0 1 0 61# CMP8QI-SAME: 0 0 0 0 0 0 0 0 . 1 1 1 1 1 1 1 1 62# CMP8QI-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 63# -------------------------------+-------+-----------+----------- 64# CMP32QI-SAME: 0 0 0 0 1 1 0 0 . 1 0 1 1 1 0 1 0 65# CMP32QI-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 66# CMP32QI-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 67# CMP32QI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 68# -------------------------------+-------+-----------+----------- 69# CMP32QI-SAME: 0 0 0 0 1 1 0 0 . 1 0 1 1 1 0 1 0 70# CMP32QI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 71# CMP32QI-SAME: 0 0 0 0 0 0 0 0 . 0 0 1 0 1 0 1 0 72# CMP32QI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 73name: MxCMP_MI_PCD 74body: | 75 bb.0: 76 CMP8qi 0, 0, implicit-def $ccr 77 CMP8qi -1, -1, implicit-def $ccr 78 CMP32qi -1, 0, implicit-def $ccr 79 CMP32qi 42, 0, implicit-def $ccr 80 81... 82--- # ARII 83# -------------------------------+-------+-----------+----------- 84# F E D C B A 9 8 | 7 6 | 5 4 3 | 2 1 0 85# -------------------------------+-------+-----------+----------- 86# OPWORD 0 0 0 0 1 1 0 0 | SIZE | MODE | REG 87# -------------------------------+-------+-----------+----------- 88# CMP8FI-SAME: 0 0 0 0 1 1 0 0 . 0 0 1 1 0 0 0 1 89# CMP8FI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 90# CMP8FI-SAME: 1 0 0 0 1 0 0 0 . 1 1 1 1 1 1 1 1 91# -------------------------------+-------+-----------+----------- 92# CMP8FI-SAME: 0 0 0 0 1 1 0 0 . 0 0 1 1 0 0 0 0 93# CMP8FI-SAME: 0 0 0 0 0 0 0 0 . 1 1 1 1 1 1 1 1 94# CMP8FI-SAME: 1 0 0 0 1 0 0 0 . 0 0 0 0 0 0 0 0 95# -------------------------------+-------+-----------+----------- 96# CMP32FI-SAME: 0 0 0 0 1 1 0 0 . 1 0 1 1 0 1 1 0 97# CMP32FI-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 98# CMP32FI-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 99# CMP32FI-SAME: 1 0 0 0 1 0 0 0 . 0 0 0 0 0 0 0 0 100# -------------------------------+-------+-----------+----------- 101# CMP32FI-SAME: 0 0 0 0 1 1 0 0 . 1 0 1 1 0 0 0 1 102# CMP32FI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 103# CMP32FI-SAME: 0 0 0 0 0 0 0 0 . 0 0 1 0 1 0 1 0 104# CMP32FI-SAME: 1 0 0 0 1 0 0 0 . 1 1 1 1 1 1 1 1 105# ---+-----------+---+-------+---+------------------------------- 106# BRIEF DA | REG | L | SCALE | 0 | DISPLACEMENT 107# ---+-----------+---+-------+---+------------------------------- 108name: MxCMP_MI_ARII 109body: | 110 bb.0: 111 CMP8fi 0, -1, $a1, $a0, implicit-def $ccr 112 CMP8fi -1, 0, $a0, $a0, implicit-def $ccr 113 CMP32fi -1, 0, $a6, $a0, implicit-def $ccr 114 CMP32fi 42, -1, $a1, $a0, implicit-def $ccr 115 116... 117--- # ARID 118# -------------------------------+-------+-----------+----------- 119# F E D C B A 9 8 | 7 6 | 5 4 3 | 2 1 0 120# -------------------------------+-------+-----------+----------- 121# OPWORD 0 0 0 0 1 1 0 0 | SIZE | MODE | REG 122# -------------------------------+-------+-----------+----------- 123# CMP8PI: 0 0 0 0 1 1 0 0 . 0 0 1 0 1 0 0 1 124# CMP8PI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 125# CMP8PI-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 126# -------------------------------+-------+-----------+----------- 127# CMP8PI-SAME: 0 0 0 0 1 1 0 0 . 0 0 1 0 1 0 0 0 128# CMP8PI-SAME: 0 0 0 0 0 0 0 0 . 1 1 1 1 1 1 1 1 129# CMP8PI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 130# -------------------------------+-------+-----------+----------- 131# CMP32PI-SAME: 0 0 0 0 1 1 0 0 . 1 0 1 0 1 1 1 0 132# CMP32PI-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 133# CMP32PI-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 134# CMP32PI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 135# -------------------------------+-------+-----------+----------- 136# CMP32PI-SAME: 0 0 0 0 1 1 0 0 . 1 0 1 0 1 0 0 1 137# CMP32PI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 138# CMP32PI-SAME: 0 0 0 0 0 0 0 0 . 0 0 1 0 1 0 1 0 139# CMP32PI-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 140name: MxCMP_MI_ARID 141body: | 142 bb.0: 143 CMP8pi 0, -1, $a1, implicit-def $ccr 144 CMP8pi -1, 0, $a0, implicit-def $ccr 145 CMP32pi -1, 0, $a6, implicit-def $ccr 146 CMP32pi 42, -1, $a1, implicit-def $ccr 147 148... 149--- # ARI 150# -------------------------------+-------+-----------+----------- 151# F E D C B A 9 8 | 7 6 | 5 4 3 | 2 1 0 152# -------------------------------+-------+-----------+----------- 153# OPWORD 0 0 0 0 1 1 0 0 | SIZE | MODE | REG 154# -------------------------------+-------+-----------+----------- 155# CMP8JI-SAME: 0 0 0 0 1 1 0 0 . 0 0 0 1 0 0 0 1 156# CMP8JI-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 157# -------------------------------+-------+-----------+----------- 158# CMP8JI-SAME: 0 0 0 0 1 1 0 0 . 0 0 0 1 0 0 0 0 159# CMP8JI-SAME: 0 0 0 0 0 0 0 0 . 1 1 1 1 1 1 1 1 160# -------------------------------+-------+-----------+----------- 161# CMP32JI-SAME: 0 0 0 0 1 1 0 0 . 1 0 0 1 0 1 1 0 162# CMP32JI-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 163# -------------------------------+-------+-----------+----------- 164# CMP32JI-SAME: 0 0 0 0 1 1 0 0 . 1 0 0 1 0 0 0 1 165# CMP32JI-SAME: 0 0 0 0 0 0 0 0 . 0 0 1 0 1 0 1 0 166name: MxCMP_MI_ARI 167body: | 168 bb.0: 169 CMP8ji 0, $a1, implicit-def $ccr 170 CMP8ji -1, $a0, implicit-def $ccr 171 CMP32ji -1, $a6, implicit-def $ccr 172 CMP32ji 42, $a1, implicit-def $ccr 173 174... 175