138c68e07SSimon Pilgrim; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 238c68e07SSimon Pilgrim; RUN: llc < %s -mtriple=i686-- | FileCheck %s --check-prefixes=X86,X86-GENERIC 338c68e07SSimon Pilgrim; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s --check-prefixes=X64,X64-GENERIC 4d838e5b3SSimon Pilgrim; RUN: llc < %s -mtriple=i686-- -mattr=+fast-imm16 | FileCheck %s --check-prefixes=X86,X86-FAST 5d838e5b3SSimon Pilgrim; RUN: llc < %s -mtriple=x86_64-- -mattr=+fast-imm16 | FileCheck %s --check-prefixes=X64,X64-FAST 638c68e07SSimon Pilgrim; RUN: llc < %s -mtriple=i686-- -mcpu=atom | FileCheck %s --check-prefixes=X86,X86-ATOM 738c68e07SSimon Pilgrim; RUN: llc < %s -mtriple=x86_64-- -mcpu=atom | FileCheck %s --check-prefixes=X64,X64-ATOM 8d838e5b3SSimon Pilgrim; RUN: llc < %s -mtriple=x86_64-- -mcpu=slm | FileCheck %s --check-prefixes=X64,X64-FAST 9d838e5b3SSimon Pilgrim; RUN: llc < %s -mtriple=x86_64-- -mcpu=knl | FileCheck %s --check-prefixes=X64,X64-FAST 10d838e5b3SSimon Pilgrim; RUN: llc < %s -mtriple=x86_64-- -mcpu=btver1 | FileCheck %s --check-prefixes=X64,X64-FAST 11d838e5b3SSimon Pilgrim; RUN: llc < %s -mtriple=x86_64-- -mcpu=btver2 | FileCheck %s --check-prefixes=X64,X64-FAST 12d838e5b3SSimon Pilgrim; RUN: llc < %s -mtriple=x86_64-- -mcpu=znver1 | FileCheck %s --check-prefixes=X64,X64-FAST 13d838e5b3SSimon Pilgrim; RUN: llc < %s -mtriple=x86_64-- -mcpu=znver2 | FileCheck %s --check-prefixes=X64,X64-FAST 14d838e5b3SSimon Pilgrim; RUN: llc < %s -mtriple=x86_64-- -mcpu=znver3 | FileCheck %s --check-prefixes=X64,X64-FAST 15d838e5b3SSimon Pilgrim; RUN: llc < %s -mtriple=x86_64-- -mcpu=znver4 | FileCheck %s --check-prefixes=X64,X64-FAST 16*02e4186dSGanesh; RUN: llc < %s -mtriple=x86_64-- -mcpu=znver5 | FileCheck %s --check-prefixes=X64,X64-FAST 1738c68e07SSimon Pilgrim 1838c68e07SSimon Pilgrimdefine i1 @cmp16_reg_eq_reg(i16 %a0, i16 %a1) { 1938c68e07SSimon Pilgrim; X86-GENERIC-LABEL: cmp16_reg_eq_reg: 2038c68e07SSimon Pilgrim; X86-GENERIC: # %bb.0: 2138c68e07SSimon Pilgrim; X86-GENERIC-NEXT: movzwl {{[0-9]+}}(%esp), %eax 2238c68e07SSimon Pilgrim; X86-GENERIC-NEXT: cmpw {{[0-9]+}}(%esp), %ax 2338c68e07SSimon Pilgrim; X86-GENERIC-NEXT: sete %al 2438c68e07SSimon Pilgrim; X86-GENERIC-NEXT: retl 2538c68e07SSimon Pilgrim; 2638c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_reg_eq_reg: 2738c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 2838c68e07SSimon Pilgrim; X64-GENERIC-NEXT: cmpw %si, %di 2938c68e07SSimon Pilgrim; X64-GENERIC-NEXT: sete %al 3038c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 3138c68e07SSimon Pilgrim; 32d838e5b3SSimon Pilgrim; X86-FAST-LABEL: cmp16_reg_eq_reg: 33d838e5b3SSimon Pilgrim; X86-FAST: # %bb.0: 34d838e5b3SSimon Pilgrim; X86-FAST-NEXT: movzwl {{[0-9]+}}(%esp), %eax 35d838e5b3SSimon Pilgrim; X86-FAST-NEXT: cmpw {{[0-9]+}}(%esp), %ax 36d838e5b3SSimon Pilgrim; X86-FAST-NEXT: sete %al 37d838e5b3SSimon Pilgrim; X86-FAST-NEXT: retl 38d838e5b3SSimon Pilgrim; 39d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_reg_eq_reg: 40d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 41d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw %si, %di 42d838e5b3SSimon Pilgrim; X64-FAST-NEXT: sete %al 43d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 44d838e5b3SSimon Pilgrim; 4538c68e07SSimon Pilgrim; X86-ATOM-LABEL: cmp16_reg_eq_reg: 4638c68e07SSimon Pilgrim; X86-ATOM: # %bb.0: 4738c68e07SSimon Pilgrim; X86-ATOM-NEXT: movzwl {{[0-9]+}}(%esp), %eax 4838c68e07SSimon Pilgrim; X86-ATOM-NEXT: cmpw {{[0-9]+}}(%esp), %ax 4938c68e07SSimon Pilgrim; X86-ATOM-NEXT: sete %al 5038c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 5138c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 5238c68e07SSimon Pilgrim; X86-ATOM-NEXT: retl 5338c68e07SSimon Pilgrim; 5438c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_reg_eq_reg: 5538c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 5638c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw %si, %di 5738c68e07SSimon Pilgrim; X64-ATOM-NEXT: sete %al 5838c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 5938c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 6038c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 6138c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 6238c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 6338c68e07SSimon Pilgrim %cmp = icmp eq i16 %a0, %a1 6438c68e07SSimon Pilgrim ret i1 %cmp 6538c68e07SSimon Pilgrim} 6638c68e07SSimon Pilgrimdefine i1 @cmp16_reg_eq_imm8(i16 %a0) { 6738c68e07SSimon Pilgrim; X86-GENERIC-LABEL: cmp16_reg_eq_imm8: 6838c68e07SSimon Pilgrim; X86-GENERIC: # %bb.0: 6938c68e07SSimon Pilgrim; X86-GENERIC-NEXT: cmpw $15, {{[0-9]+}}(%esp) 7038c68e07SSimon Pilgrim; X86-GENERIC-NEXT: sete %al 7138c68e07SSimon Pilgrim; X86-GENERIC-NEXT: retl 7238c68e07SSimon Pilgrim; 7338c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_reg_eq_imm8: 7438c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 7538c68e07SSimon Pilgrim; X64-GENERIC-NEXT: cmpw $15, %di 7638c68e07SSimon Pilgrim; X64-GENERIC-NEXT: sete %al 7738c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 7838c68e07SSimon Pilgrim; 79d838e5b3SSimon Pilgrim; X86-FAST-LABEL: cmp16_reg_eq_imm8: 80d838e5b3SSimon Pilgrim; X86-FAST: # %bb.0: 81d838e5b3SSimon Pilgrim; X86-FAST-NEXT: cmpw $15, {{[0-9]+}}(%esp) 82d838e5b3SSimon Pilgrim; X86-FAST-NEXT: sete %al 83d838e5b3SSimon Pilgrim; X86-FAST-NEXT: retl 84d838e5b3SSimon Pilgrim; 85d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_reg_eq_imm8: 86d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 87d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $15, %di 88d838e5b3SSimon Pilgrim; X64-FAST-NEXT: sete %al 89d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 90d838e5b3SSimon Pilgrim; 9138c68e07SSimon Pilgrim; X86-ATOM-LABEL: cmp16_reg_eq_imm8: 9238c68e07SSimon Pilgrim; X86-ATOM: # %bb.0: 9338c68e07SSimon Pilgrim; X86-ATOM-NEXT: cmpw $15, {{[0-9]+}}(%esp) 9438c68e07SSimon Pilgrim; X86-ATOM-NEXT: sete %al 9538c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 9638c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 9738c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 9838c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 9938c68e07SSimon Pilgrim; X86-ATOM-NEXT: retl 10038c68e07SSimon Pilgrim; 10138c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_reg_eq_imm8: 10238c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 10338c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $15, %di 10438c68e07SSimon Pilgrim; X64-ATOM-NEXT: sete %al 10538c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 10638c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 10738c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 10838c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 10938c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 11038c68e07SSimon Pilgrim %cmp = icmp eq i16 %a0, 15 11138c68e07SSimon Pilgrim ret i1 %cmp 11238c68e07SSimon Pilgrim} 11338c68e07SSimon Pilgrim 11438c68e07SSimon Pilgrimdefine i1 @cmp16_reg_eq_imm16(i16 %a0) { 11538c68e07SSimon Pilgrim; X86-GENERIC-LABEL: cmp16_reg_eq_imm16: 11638c68e07SSimon Pilgrim; X86-GENERIC: # %bb.0: 117e2d74a25SSimon Pilgrim; X86-GENERIC-NEXT: cmpw $1024, {{[0-9]+}}(%esp) # imm = 0x400 11838c68e07SSimon Pilgrim; X86-GENERIC-NEXT: sete %al 11938c68e07SSimon Pilgrim; X86-GENERIC-NEXT: retl 12038c68e07SSimon Pilgrim; 12138c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_reg_eq_imm16: 12238c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 12338c68e07SSimon Pilgrim; X64-GENERIC-NEXT: movzwl %di, %eax 12438c68e07SSimon Pilgrim; X64-GENERIC-NEXT: cmpl $1024, %eax # imm = 0x400 12538c68e07SSimon Pilgrim; X64-GENERIC-NEXT: sete %al 12638c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 12738c68e07SSimon Pilgrim; 128d838e5b3SSimon Pilgrim; X86-FAST-LABEL: cmp16_reg_eq_imm16: 129d838e5b3SSimon Pilgrim; X86-FAST: # %bb.0: 130d838e5b3SSimon Pilgrim; X86-FAST-NEXT: cmpw $1024, {{[0-9]+}}(%esp) # imm = 0x400 131d838e5b3SSimon Pilgrim; X86-FAST-NEXT: sete %al 132d838e5b3SSimon Pilgrim; X86-FAST-NEXT: retl 133d838e5b3SSimon Pilgrim; 134d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_reg_eq_imm16: 135d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 136d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $1024, %di # imm = 0x400 137d838e5b3SSimon Pilgrim; X64-FAST-NEXT: sete %al 138d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 139d838e5b3SSimon Pilgrim; 14038c68e07SSimon Pilgrim; X86-ATOM-LABEL: cmp16_reg_eq_imm16: 14138c68e07SSimon Pilgrim; X86-ATOM: # %bb.0: 14238c68e07SSimon Pilgrim; X86-ATOM-NEXT: cmpw $1024, {{[0-9]+}}(%esp) # imm = 0x400 14338c68e07SSimon Pilgrim; X86-ATOM-NEXT: sete %al 14438c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 14538c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 14638c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 14738c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 14838c68e07SSimon Pilgrim; X86-ATOM-NEXT: retl 14938c68e07SSimon Pilgrim; 15038c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_reg_eq_imm16: 15138c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 15238c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $1024, %di # imm = 0x400 15338c68e07SSimon Pilgrim; X64-ATOM-NEXT: sete %al 15438c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 15538c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 15638c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 15738c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 15838c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 15938c68e07SSimon Pilgrim %cmp = icmp eq i16 %a0, 1024 16038c68e07SSimon Pilgrim ret i1 %cmp 16138c68e07SSimon Pilgrim} 16238c68e07SSimon Pilgrim 16338c68e07SSimon Pilgrimdefine i1 @cmp16_reg_eq_imm16_minsize(i16 %a0) minsize { 16438c68e07SSimon Pilgrim; X86-LABEL: cmp16_reg_eq_imm16_minsize: 16538c68e07SSimon Pilgrim; X86: # %bb.0: 16638c68e07SSimon Pilgrim; X86-NEXT: cmpw $1024, {{[0-9]+}}(%esp) # imm = 0x400 16738c68e07SSimon Pilgrim; X86-NEXT: sete %al 16838c68e07SSimon Pilgrim; X86-NEXT: retl 16938c68e07SSimon Pilgrim; 17038c68e07SSimon Pilgrim; X64-LABEL: cmp16_reg_eq_imm16_minsize: 17138c68e07SSimon Pilgrim; X64: # %bb.0: 17238c68e07SSimon Pilgrim; X64-NEXT: cmpw $1024, %di # imm = 0x400 17338c68e07SSimon Pilgrim; X64-NEXT: sete %al 17438c68e07SSimon Pilgrim; X64-NEXT: retq 17538c68e07SSimon Pilgrim %cmp = icmp eq i16 %a0, 1024 17638c68e07SSimon Pilgrim ret i1 %cmp 17738c68e07SSimon Pilgrim} 17838c68e07SSimon Pilgrim 17938c68e07SSimon Pilgrimdefine i1 @cmp16_reg_eq_imm16_optsize(i16 %a0) optsize { 180e2d74a25SSimon Pilgrim; X86-LABEL: cmp16_reg_eq_imm16_optsize: 181e2d74a25SSimon Pilgrim; X86: # %bb.0: 182e2d74a25SSimon Pilgrim; X86-NEXT: cmpw $1024, {{[0-9]+}}(%esp) # imm = 0x400 183e2d74a25SSimon Pilgrim; X86-NEXT: sete %al 184e2d74a25SSimon Pilgrim; X86-NEXT: retl 18538c68e07SSimon Pilgrim; 18638c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_reg_eq_imm16_optsize: 18738c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 18838c68e07SSimon Pilgrim; X64-GENERIC-NEXT: movzwl %di, %eax 18938c68e07SSimon Pilgrim; X64-GENERIC-NEXT: cmpl $1024, %eax # imm = 0x400 19038c68e07SSimon Pilgrim; X64-GENERIC-NEXT: sete %al 19138c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 19238c68e07SSimon Pilgrim; 193d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_reg_eq_imm16_optsize: 194d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 195d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $1024, %di # imm = 0x400 196d838e5b3SSimon Pilgrim; X64-FAST-NEXT: sete %al 197d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 198d838e5b3SSimon Pilgrim; 19938c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_reg_eq_imm16_optsize: 20038c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 20138c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $1024, %di # imm = 0x400 20238c68e07SSimon Pilgrim; X64-ATOM-NEXT: sete %al 20338c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 20438c68e07SSimon Pilgrim %cmp = icmp eq i16 %a0, 1024 20538c68e07SSimon Pilgrim ret i1 %cmp 20638c68e07SSimon Pilgrim} 20738c68e07SSimon Pilgrim 20838c68e07SSimon Pilgrimdefine i1 @cmp16_reg_sgt_imm8(i16 %a0) { 20938c68e07SSimon Pilgrim; X86-GENERIC-LABEL: cmp16_reg_sgt_imm8: 21038c68e07SSimon Pilgrim; X86-GENERIC: # %bb.0: 21138c68e07SSimon Pilgrim; X86-GENERIC-NEXT: cmpw $16, {{[0-9]+}}(%esp) 21238c68e07SSimon Pilgrim; X86-GENERIC-NEXT: setge %al 21338c68e07SSimon Pilgrim; X86-GENERIC-NEXT: retl 21438c68e07SSimon Pilgrim; 21538c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_reg_sgt_imm8: 21638c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 21738c68e07SSimon Pilgrim; X64-GENERIC-NEXT: cmpw $16, %di 21838c68e07SSimon Pilgrim; X64-GENERIC-NEXT: setge %al 21938c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 22038c68e07SSimon Pilgrim; 221d838e5b3SSimon Pilgrim; X86-FAST-LABEL: cmp16_reg_sgt_imm8: 222d838e5b3SSimon Pilgrim; X86-FAST: # %bb.0: 223d838e5b3SSimon Pilgrim; X86-FAST-NEXT: cmpw $16, {{[0-9]+}}(%esp) 224d838e5b3SSimon Pilgrim; X86-FAST-NEXT: setge %al 225d838e5b3SSimon Pilgrim; X86-FAST-NEXT: retl 226d838e5b3SSimon Pilgrim; 227d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_reg_sgt_imm8: 228d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 229d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $16, %di 230d838e5b3SSimon Pilgrim; X64-FAST-NEXT: setge %al 231d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 232d838e5b3SSimon Pilgrim; 23338c68e07SSimon Pilgrim; X86-ATOM-LABEL: cmp16_reg_sgt_imm8: 23438c68e07SSimon Pilgrim; X86-ATOM: # %bb.0: 23538c68e07SSimon Pilgrim; X86-ATOM-NEXT: cmpw $16, {{[0-9]+}}(%esp) 23638c68e07SSimon Pilgrim; X86-ATOM-NEXT: setge %al 23738c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 23838c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 23938c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 24038c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 24138c68e07SSimon Pilgrim; X86-ATOM-NEXT: retl 24238c68e07SSimon Pilgrim; 24338c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_reg_sgt_imm8: 24438c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 24538c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $16, %di 24638c68e07SSimon Pilgrim; X64-ATOM-NEXT: setge %al 24738c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 24838c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 24938c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 25038c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 25138c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 25238c68e07SSimon Pilgrim %cmp = icmp sgt i16 %a0, 15 25338c68e07SSimon Pilgrim ret i1 %cmp 25438c68e07SSimon Pilgrim} 25538c68e07SSimon Pilgrim 25638c68e07SSimon Pilgrimdefine i1 @cmp16_reg_sgt_imm16(i16 %a0) { 25738c68e07SSimon Pilgrim; X86-GENERIC-LABEL: cmp16_reg_sgt_imm16: 25838c68e07SSimon Pilgrim; X86-GENERIC: # %bb.0: 259e2d74a25SSimon Pilgrim; X86-GENERIC-NEXT: cmpw $-1023, {{[0-9]+}}(%esp) # imm = 0xFC01 26038c68e07SSimon Pilgrim; X86-GENERIC-NEXT: setge %al 26138c68e07SSimon Pilgrim; X86-GENERIC-NEXT: retl 26238c68e07SSimon Pilgrim; 26338c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_reg_sgt_imm16: 26438c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 26538c68e07SSimon Pilgrim; X64-GENERIC-NEXT: movswl %di, %eax 26638c68e07SSimon Pilgrim; X64-GENERIC-NEXT: cmpl $-1023, %eax # imm = 0xFC01 26738c68e07SSimon Pilgrim; X64-GENERIC-NEXT: setge %al 26838c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 26938c68e07SSimon Pilgrim; 270d838e5b3SSimon Pilgrim; X86-FAST-LABEL: cmp16_reg_sgt_imm16: 271d838e5b3SSimon Pilgrim; X86-FAST: # %bb.0: 272d838e5b3SSimon Pilgrim; X86-FAST-NEXT: cmpw $-1023, {{[0-9]+}}(%esp) # imm = 0xFC01 273d838e5b3SSimon Pilgrim; X86-FAST-NEXT: setge %al 274d838e5b3SSimon Pilgrim; X86-FAST-NEXT: retl 275d838e5b3SSimon Pilgrim; 276d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_reg_sgt_imm16: 277d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 278d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $-1023, %di # imm = 0xFC01 279d838e5b3SSimon Pilgrim; X64-FAST-NEXT: setge %al 280d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 281d838e5b3SSimon Pilgrim; 28238c68e07SSimon Pilgrim; X86-ATOM-LABEL: cmp16_reg_sgt_imm16: 28338c68e07SSimon Pilgrim; X86-ATOM: # %bb.0: 28438c68e07SSimon Pilgrim; X86-ATOM-NEXT: cmpw $-1023, {{[0-9]+}}(%esp) # imm = 0xFC01 28538c68e07SSimon Pilgrim; X86-ATOM-NEXT: setge %al 28638c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 28738c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 28838c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 28938c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 29038c68e07SSimon Pilgrim; X86-ATOM-NEXT: retl 29138c68e07SSimon Pilgrim; 29238c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_reg_sgt_imm16: 29338c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 29438c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $-1023, %di # imm = 0xFC01 29538c68e07SSimon Pilgrim; X64-ATOM-NEXT: setge %al 29638c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 29738c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 29838c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 29938c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 30038c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 30138c68e07SSimon Pilgrim %cmp = icmp sgt i16 %a0, -1024 30238c68e07SSimon Pilgrim ret i1 %cmp 30338c68e07SSimon Pilgrim} 30438c68e07SSimon Pilgrim 30538c68e07SSimon Pilgrimdefine i1 @cmp16_reg_sgt_imm16_minsize(i16 %a0) minsize { 30638c68e07SSimon Pilgrim; X86-LABEL: cmp16_reg_sgt_imm16_minsize: 30738c68e07SSimon Pilgrim; X86: # %bb.0: 30838c68e07SSimon Pilgrim; X86-NEXT: cmpw $-1023, {{[0-9]+}}(%esp) # imm = 0xFC01 30938c68e07SSimon Pilgrim; X86-NEXT: setge %al 31038c68e07SSimon Pilgrim; X86-NEXT: retl 31138c68e07SSimon Pilgrim; 31238c68e07SSimon Pilgrim; X64-LABEL: cmp16_reg_sgt_imm16_minsize: 31338c68e07SSimon Pilgrim; X64: # %bb.0: 31438c68e07SSimon Pilgrim; X64-NEXT: cmpw $-1023, %di # imm = 0xFC01 31538c68e07SSimon Pilgrim; X64-NEXT: setge %al 31638c68e07SSimon Pilgrim; X64-NEXT: retq 31738c68e07SSimon Pilgrim %cmp = icmp sgt i16 %a0, -1024 31838c68e07SSimon Pilgrim ret i1 %cmp 31938c68e07SSimon Pilgrim} 32038c68e07SSimon Pilgrim 32138c68e07SSimon Pilgrimdefine i1 @cmp16_reg_sgt_imm16_optsize(i16 %a0) optsize { 322e2d74a25SSimon Pilgrim; X86-LABEL: cmp16_reg_sgt_imm16_optsize: 323e2d74a25SSimon Pilgrim; X86: # %bb.0: 324e2d74a25SSimon Pilgrim; X86-NEXT: cmpw $-1023, {{[0-9]+}}(%esp) # imm = 0xFC01 325e2d74a25SSimon Pilgrim; X86-NEXT: setge %al 326e2d74a25SSimon Pilgrim; X86-NEXT: retl 32738c68e07SSimon Pilgrim; 32838c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_reg_sgt_imm16_optsize: 32938c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 33038c68e07SSimon Pilgrim; X64-GENERIC-NEXT: movswl %di, %eax 33138c68e07SSimon Pilgrim; X64-GENERIC-NEXT: cmpl $-1023, %eax # imm = 0xFC01 33238c68e07SSimon Pilgrim; X64-GENERIC-NEXT: setge %al 33338c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 33438c68e07SSimon Pilgrim; 335d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_reg_sgt_imm16_optsize: 336d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 337d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $-1023, %di # imm = 0xFC01 338d838e5b3SSimon Pilgrim; X64-FAST-NEXT: setge %al 339d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 340d838e5b3SSimon Pilgrim; 34138c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_reg_sgt_imm16_optsize: 34238c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 34338c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $-1023, %di # imm = 0xFC01 34438c68e07SSimon Pilgrim; X64-ATOM-NEXT: setge %al 34538c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 34638c68e07SSimon Pilgrim %cmp = icmp sgt i16 %a0, -1024 34738c68e07SSimon Pilgrim ret i1 %cmp 34838c68e07SSimon Pilgrim} 34938c68e07SSimon Pilgrim 35038c68e07SSimon Pilgrimdefine i1 @cmp16_reg_uge_imm16(i16 %a0) { 35138c68e07SSimon Pilgrim; X86-GENERIC-LABEL: cmp16_reg_uge_imm16: 35238c68e07SSimon Pilgrim; X86-GENERIC: # %bb.0: 353e2d74a25SSimon Pilgrim; X86-GENERIC-NEXT: cmpw $-1024, {{[0-9]+}}(%esp) # imm = 0xFC00 35438c68e07SSimon Pilgrim; X86-GENERIC-NEXT: setae %al 35538c68e07SSimon Pilgrim; X86-GENERIC-NEXT: retl 35638c68e07SSimon Pilgrim; 35738c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_reg_uge_imm16: 35838c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 35938c68e07SSimon Pilgrim; X64-GENERIC-NEXT: movzwl %di, %eax 36038c68e07SSimon Pilgrim; X64-GENERIC-NEXT: cmpl $64512, %eax # imm = 0xFC00 36138c68e07SSimon Pilgrim; X64-GENERIC-NEXT: setae %al 36238c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 36338c68e07SSimon Pilgrim; 364d838e5b3SSimon Pilgrim; X86-FAST-LABEL: cmp16_reg_uge_imm16: 365d838e5b3SSimon Pilgrim; X86-FAST: # %bb.0: 366d838e5b3SSimon Pilgrim; X86-FAST-NEXT: cmpw $-1024, {{[0-9]+}}(%esp) # imm = 0xFC00 367d838e5b3SSimon Pilgrim; X86-FAST-NEXT: setae %al 368d838e5b3SSimon Pilgrim; X86-FAST-NEXT: retl 369d838e5b3SSimon Pilgrim; 370d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_reg_uge_imm16: 371d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 372d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $-1024, %di # imm = 0xFC00 373d838e5b3SSimon Pilgrim; X64-FAST-NEXT: setae %al 374d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 375d838e5b3SSimon Pilgrim; 37638c68e07SSimon Pilgrim; X86-ATOM-LABEL: cmp16_reg_uge_imm16: 37738c68e07SSimon Pilgrim; X86-ATOM: # %bb.0: 37838c68e07SSimon Pilgrim; X86-ATOM-NEXT: cmpw $-1024, {{[0-9]+}}(%esp) # imm = 0xFC00 37938c68e07SSimon Pilgrim; X86-ATOM-NEXT: setae %al 38038c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 38138c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 38238c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 38338c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 38438c68e07SSimon Pilgrim; X86-ATOM-NEXT: retl 38538c68e07SSimon Pilgrim; 38638c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_reg_uge_imm16: 38738c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 38838c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $-1024, %di # imm = 0xFC00 38938c68e07SSimon Pilgrim; X64-ATOM-NEXT: setae %al 39038c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 39138c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 39238c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 39338c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 39438c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 39538c68e07SSimon Pilgrim %cmp = icmp uge i16 %a0, -1024 39638c68e07SSimon Pilgrim ret i1 %cmp 39738c68e07SSimon Pilgrim} 39838c68e07SSimon Pilgrim 39938c68e07SSimon Pilgrimdefine i1 @cmp16_reg_uge_imm16_minsize(i16 %a0) minsize { 40038c68e07SSimon Pilgrim; X86-LABEL: cmp16_reg_uge_imm16_minsize: 40138c68e07SSimon Pilgrim; X86: # %bb.0: 40238c68e07SSimon Pilgrim; X86-NEXT: cmpw $-1024, {{[0-9]+}}(%esp) # imm = 0xFC00 40338c68e07SSimon Pilgrim; X86-NEXT: setae %al 40438c68e07SSimon Pilgrim; X86-NEXT: retl 40538c68e07SSimon Pilgrim; 40638c68e07SSimon Pilgrim; X64-LABEL: cmp16_reg_uge_imm16_minsize: 40738c68e07SSimon Pilgrim; X64: # %bb.0: 40838c68e07SSimon Pilgrim; X64-NEXT: cmpw $-1024, %di # imm = 0xFC00 40938c68e07SSimon Pilgrim; X64-NEXT: setae %al 41038c68e07SSimon Pilgrim; X64-NEXT: retq 41138c68e07SSimon Pilgrim %cmp = icmp uge i16 %a0, -1024 41238c68e07SSimon Pilgrim ret i1 %cmp 41338c68e07SSimon Pilgrim} 41438c68e07SSimon Pilgrim 41538c68e07SSimon Pilgrimdefine i1 @cmp16_reg_uge_imm16_optsize(i16 %a0) optsize { 416e2d74a25SSimon Pilgrim; X86-LABEL: cmp16_reg_uge_imm16_optsize: 417e2d74a25SSimon Pilgrim; X86: # %bb.0: 418e2d74a25SSimon Pilgrim; X86-NEXT: cmpw $-1024, {{[0-9]+}}(%esp) # imm = 0xFC00 419e2d74a25SSimon Pilgrim; X86-NEXT: setae %al 420e2d74a25SSimon Pilgrim; X86-NEXT: retl 42138c68e07SSimon Pilgrim; 42238c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_reg_uge_imm16_optsize: 42338c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 42438c68e07SSimon Pilgrim; X64-GENERIC-NEXT: movzwl %di, %eax 42538c68e07SSimon Pilgrim; X64-GENERIC-NEXT: cmpl $64512, %eax # imm = 0xFC00 42638c68e07SSimon Pilgrim; X64-GENERIC-NEXT: setae %al 42738c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 42838c68e07SSimon Pilgrim; 429d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_reg_uge_imm16_optsize: 430d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 431d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $-1024, %di # imm = 0xFC00 432d838e5b3SSimon Pilgrim; X64-FAST-NEXT: setae %al 433d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 434d838e5b3SSimon Pilgrim; 43538c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_reg_uge_imm16_optsize: 43638c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 43738c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $-1024, %di # imm = 0xFC00 43838c68e07SSimon Pilgrim; X64-ATOM-NEXT: setae %al 43938c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 44038c68e07SSimon Pilgrim %cmp = icmp uge i16 %a0, -1024 44138c68e07SSimon Pilgrim ret i1 %cmp 44238c68e07SSimon Pilgrim} 44338c68e07SSimon Pilgrim 44438c68e07SSimon Pilgrimdefine i1 @cmp16_load_ne_load(ptr %p0, ptr %p1) { 44538c68e07SSimon Pilgrim; X86-GENERIC-LABEL: cmp16_load_ne_load: 44638c68e07SSimon Pilgrim; X86-GENERIC: # %bb.0: 44738c68e07SSimon Pilgrim; X86-GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax 44838c68e07SSimon Pilgrim; X86-GENERIC-NEXT: movl {{[0-9]+}}(%esp), %ecx 44938c68e07SSimon Pilgrim; X86-GENERIC-NEXT: movzwl (%ecx), %ecx 45038c68e07SSimon Pilgrim; X86-GENERIC-NEXT: cmpw (%eax), %cx 45138c68e07SSimon Pilgrim; X86-GENERIC-NEXT: setne %al 45238c68e07SSimon Pilgrim; X86-GENERIC-NEXT: retl 45338c68e07SSimon Pilgrim; 45438c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_load_ne_load: 45538c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 45638c68e07SSimon Pilgrim; X64-GENERIC-NEXT: movzwl (%rdi), %eax 45738c68e07SSimon Pilgrim; X64-GENERIC-NEXT: cmpw (%rsi), %ax 45838c68e07SSimon Pilgrim; X64-GENERIC-NEXT: setne %al 45938c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 46038c68e07SSimon Pilgrim; 461d838e5b3SSimon Pilgrim; X86-FAST-LABEL: cmp16_load_ne_load: 462d838e5b3SSimon Pilgrim; X86-FAST: # %bb.0: 463d838e5b3SSimon Pilgrim; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %eax 464d838e5b3SSimon Pilgrim; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %ecx 465d838e5b3SSimon Pilgrim; X86-FAST-NEXT: movzwl (%ecx), %ecx 466d838e5b3SSimon Pilgrim; X86-FAST-NEXT: cmpw (%eax), %cx 467d838e5b3SSimon Pilgrim; X86-FAST-NEXT: setne %al 468d838e5b3SSimon Pilgrim; X86-FAST-NEXT: retl 469d838e5b3SSimon Pilgrim; 470d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_load_ne_load: 471d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 472d838e5b3SSimon Pilgrim; X64-FAST-NEXT: movzwl (%rdi), %eax 473d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw (%rsi), %ax 474d838e5b3SSimon Pilgrim; X64-FAST-NEXT: setne %al 475d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 476d838e5b3SSimon Pilgrim; 47738c68e07SSimon Pilgrim; X86-ATOM-LABEL: cmp16_load_ne_load: 47838c68e07SSimon Pilgrim; X86-ATOM: # %bb.0: 47938c68e07SSimon Pilgrim; X86-ATOM-NEXT: movl {{[0-9]+}}(%esp), %ecx 48038c68e07SSimon Pilgrim; X86-ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax 48138c68e07SSimon Pilgrim; X86-ATOM-NEXT: movzwl (%ecx), %ecx 48238c68e07SSimon Pilgrim; X86-ATOM-NEXT: cmpw (%eax), %cx 48338c68e07SSimon Pilgrim; X86-ATOM-NEXT: setne %al 48438c68e07SSimon Pilgrim; X86-ATOM-NEXT: retl 48538c68e07SSimon Pilgrim; 48638c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_load_ne_load: 48738c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 48838c68e07SSimon Pilgrim; X64-ATOM-NEXT: movzwl (%rdi), %eax 48938c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw (%rsi), %ax 49038c68e07SSimon Pilgrim; X64-ATOM-NEXT: setne %al 49138c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 49238c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 49338c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 49438c68e07SSimon Pilgrim %ld0 = load i16, ptr %p0 49538c68e07SSimon Pilgrim %ld1 = load i16, ptr %p1 49638c68e07SSimon Pilgrim %cmp = icmp ne i16 %ld0, %ld1 49738c68e07SSimon Pilgrim ret i1 %cmp 49838c68e07SSimon Pilgrim} 49938c68e07SSimon Pilgrim 50038c68e07SSimon Pilgrimdefine i1 @cmp16_load_ne_imm8(ptr %p0) { 50138c68e07SSimon Pilgrim; X86-GENERIC-LABEL: cmp16_load_ne_imm8: 50238c68e07SSimon Pilgrim; X86-GENERIC: # %bb.0: 50338c68e07SSimon Pilgrim; X86-GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax 50438c68e07SSimon Pilgrim; X86-GENERIC-NEXT: cmpw $15, (%eax) 50538c68e07SSimon Pilgrim; X86-GENERIC-NEXT: setne %al 50638c68e07SSimon Pilgrim; X86-GENERIC-NEXT: retl 50738c68e07SSimon Pilgrim; 50838c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_load_ne_imm8: 50938c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 51038c68e07SSimon Pilgrim; X64-GENERIC-NEXT: cmpw $15, (%rdi) 51138c68e07SSimon Pilgrim; X64-GENERIC-NEXT: setne %al 51238c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 51338c68e07SSimon Pilgrim; 514d838e5b3SSimon Pilgrim; X86-FAST-LABEL: cmp16_load_ne_imm8: 515d838e5b3SSimon Pilgrim; X86-FAST: # %bb.0: 516d838e5b3SSimon Pilgrim; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %eax 517d838e5b3SSimon Pilgrim; X86-FAST-NEXT: cmpw $15, (%eax) 518d838e5b3SSimon Pilgrim; X86-FAST-NEXT: setne %al 519d838e5b3SSimon Pilgrim; X86-FAST-NEXT: retl 520d838e5b3SSimon Pilgrim; 521d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_load_ne_imm8: 522d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 523d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $15, (%rdi) 524d838e5b3SSimon Pilgrim; X64-FAST-NEXT: setne %al 525d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 526d838e5b3SSimon Pilgrim; 52738c68e07SSimon Pilgrim; X86-ATOM-LABEL: cmp16_load_ne_imm8: 52838c68e07SSimon Pilgrim; X86-ATOM: # %bb.0: 52938c68e07SSimon Pilgrim; X86-ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax 53038c68e07SSimon Pilgrim; X86-ATOM-NEXT: cmpw $15, (%eax) 53138c68e07SSimon Pilgrim; X86-ATOM-NEXT: setne %al 53238c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 53338c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 53438c68e07SSimon Pilgrim; X86-ATOM-NEXT: retl 53538c68e07SSimon Pilgrim; 53638c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_load_ne_imm8: 53738c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 53838c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $15, (%rdi) 53938c68e07SSimon Pilgrim; X64-ATOM-NEXT: setne %al 54038c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 54138c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 54238c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 54338c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 54438c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 54538c68e07SSimon Pilgrim %ld = load i16, ptr %p0 54638c68e07SSimon Pilgrim %cmp = icmp ne i16 %ld, 15 54738c68e07SSimon Pilgrim ret i1 %cmp 54838c68e07SSimon Pilgrim} 54938c68e07SSimon Pilgrim 55038c68e07SSimon Pilgrimdefine i1 @cmp16_load_ne_imm16(ptr %p0) { 55138c68e07SSimon Pilgrim; X86-GENERIC-LABEL: cmp16_load_ne_imm16: 55238c68e07SSimon Pilgrim; X86-GENERIC: # %bb.0: 55338c68e07SSimon Pilgrim; X86-GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax 554e2d74a25SSimon Pilgrim; X86-GENERIC-NEXT: cmpw $512, (%eax) # imm = 0x200 55538c68e07SSimon Pilgrim; X86-GENERIC-NEXT: setne %al 55638c68e07SSimon Pilgrim; X86-GENERIC-NEXT: retl 55738c68e07SSimon Pilgrim; 55838c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_load_ne_imm16: 55938c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 560e2d74a25SSimon Pilgrim; X64-GENERIC-NEXT: cmpw $512, (%rdi) # imm = 0x200 56138c68e07SSimon Pilgrim; X64-GENERIC-NEXT: setne %al 56238c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 56338c68e07SSimon Pilgrim; 564d838e5b3SSimon Pilgrim; X86-FAST-LABEL: cmp16_load_ne_imm16: 565d838e5b3SSimon Pilgrim; X86-FAST: # %bb.0: 566d838e5b3SSimon Pilgrim; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %eax 567d838e5b3SSimon Pilgrim; X86-FAST-NEXT: cmpw $512, (%eax) # imm = 0x200 568d838e5b3SSimon Pilgrim; X86-FAST-NEXT: setne %al 569d838e5b3SSimon Pilgrim; X86-FAST-NEXT: retl 570d838e5b3SSimon Pilgrim; 571d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_load_ne_imm16: 572d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 573d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $512, (%rdi) # imm = 0x200 574d838e5b3SSimon Pilgrim; X64-FAST-NEXT: setne %al 575d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 576d838e5b3SSimon Pilgrim; 57738c68e07SSimon Pilgrim; X86-ATOM-LABEL: cmp16_load_ne_imm16: 57838c68e07SSimon Pilgrim; X86-ATOM: # %bb.0: 57938c68e07SSimon Pilgrim; X86-ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax 58038c68e07SSimon Pilgrim; X86-ATOM-NEXT: cmpw $512, (%eax) # imm = 0x200 58138c68e07SSimon Pilgrim; X86-ATOM-NEXT: setne %al 58238c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 58338c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 58438c68e07SSimon Pilgrim; X86-ATOM-NEXT: retl 58538c68e07SSimon Pilgrim; 58638c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_load_ne_imm16: 58738c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 58838c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $512, (%rdi) # imm = 0x200 58938c68e07SSimon Pilgrim; X64-ATOM-NEXT: setne %al 59038c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 59138c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 59238c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 59338c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 59438c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 59538c68e07SSimon Pilgrim %ld = load i16, ptr %p0 59638c68e07SSimon Pilgrim %cmp = icmp ne i16 %ld, 512 59738c68e07SSimon Pilgrim ret i1 %cmp 59838c68e07SSimon Pilgrim} 59938c68e07SSimon Pilgrim 60038c68e07SSimon Pilgrimdefine i1 @cmp16_load_slt_imm8(ptr %p0) { 60138c68e07SSimon Pilgrim; X86-GENERIC-LABEL: cmp16_load_slt_imm8: 60238c68e07SSimon Pilgrim; X86-GENERIC: # %bb.0: 60338c68e07SSimon Pilgrim; X86-GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax 60438c68e07SSimon Pilgrim; X86-GENERIC-NEXT: cmpw $15, (%eax) 60538c68e07SSimon Pilgrim; X86-GENERIC-NEXT: setl %al 60638c68e07SSimon Pilgrim; X86-GENERIC-NEXT: retl 60738c68e07SSimon Pilgrim; 60838c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_load_slt_imm8: 60938c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 61038c68e07SSimon Pilgrim; X64-GENERIC-NEXT: cmpw $15, (%rdi) 61138c68e07SSimon Pilgrim; X64-GENERIC-NEXT: setl %al 61238c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 61338c68e07SSimon Pilgrim; 614d838e5b3SSimon Pilgrim; X86-FAST-LABEL: cmp16_load_slt_imm8: 615d838e5b3SSimon Pilgrim; X86-FAST: # %bb.0: 616d838e5b3SSimon Pilgrim; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %eax 617d838e5b3SSimon Pilgrim; X86-FAST-NEXT: cmpw $15, (%eax) 618d838e5b3SSimon Pilgrim; X86-FAST-NEXT: setl %al 619d838e5b3SSimon Pilgrim; X86-FAST-NEXT: retl 620d838e5b3SSimon Pilgrim; 621d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_load_slt_imm8: 622d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 623d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $15, (%rdi) 624d838e5b3SSimon Pilgrim; X64-FAST-NEXT: setl %al 625d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 626d838e5b3SSimon Pilgrim; 62738c68e07SSimon Pilgrim; X86-ATOM-LABEL: cmp16_load_slt_imm8: 62838c68e07SSimon Pilgrim; X86-ATOM: # %bb.0: 62938c68e07SSimon Pilgrim; X86-ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax 63038c68e07SSimon Pilgrim; X86-ATOM-NEXT: cmpw $15, (%eax) 63138c68e07SSimon Pilgrim; X86-ATOM-NEXT: setl %al 63238c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 63338c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 63438c68e07SSimon Pilgrim; X86-ATOM-NEXT: retl 63538c68e07SSimon Pilgrim; 63638c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_load_slt_imm8: 63738c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 63838c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $15, (%rdi) 63938c68e07SSimon Pilgrim; X64-ATOM-NEXT: setl %al 64038c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 64138c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 64238c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 64338c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 64438c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 64538c68e07SSimon Pilgrim %ld = load i16, ptr %p0 64638c68e07SSimon Pilgrim %cmp = icmp slt i16 %ld, 15 64738c68e07SSimon Pilgrim ret i1 %cmp 64838c68e07SSimon Pilgrim} 64938c68e07SSimon Pilgrim 65038c68e07SSimon Pilgrimdefine i1 @cmp16_load_slt_imm16(ptr %p0) { 65138c68e07SSimon Pilgrim; X86-GENERIC-LABEL: cmp16_load_slt_imm16: 65238c68e07SSimon Pilgrim; X86-GENERIC: # %bb.0: 65338c68e07SSimon Pilgrim; X86-GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax 654e2d74a25SSimon Pilgrim; X86-GENERIC-NEXT: cmpw $512, (%eax) # imm = 0x200 65538c68e07SSimon Pilgrim; X86-GENERIC-NEXT: setl %al 65638c68e07SSimon Pilgrim; X86-GENERIC-NEXT: retl 65738c68e07SSimon Pilgrim; 65838c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_load_slt_imm16: 65938c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 660e2d74a25SSimon Pilgrim; X64-GENERIC-NEXT: cmpw $512, (%rdi) # imm = 0x200 66138c68e07SSimon Pilgrim; X64-GENERIC-NEXT: setl %al 66238c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 66338c68e07SSimon Pilgrim; 664d838e5b3SSimon Pilgrim; X86-FAST-LABEL: cmp16_load_slt_imm16: 665d838e5b3SSimon Pilgrim; X86-FAST: # %bb.0: 666d838e5b3SSimon Pilgrim; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %eax 667d838e5b3SSimon Pilgrim; X86-FAST-NEXT: cmpw $512, (%eax) # imm = 0x200 668d838e5b3SSimon Pilgrim; X86-FAST-NEXT: setl %al 669d838e5b3SSimon Pilgrim; X86-FAST-NEXT: retl 670d838e5b3SSimon Pilgrim; 671d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_load_slt_imm16: 672d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 673d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $512, (%rdi) # imm = 0x200 674d838e5b3SSimon Pilgrim; X64-FAST-NEXT: setl %al 675d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 676d838e5b3SSimon Pilgrim; 67738c68e07SSimon Pilgrim; X86-ATOM-LABEL: cmp16_load_slt_imm16: 67838c68e07SSimon Pilgrim; X86-ATOM: # %bb.0: 67938c68e07SSimon Pilgrim; X86-ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax 68038c68e07SSimon Pilgrim; X86-ATOM-NEXT: cmpw $512, (%eax) # imm = 0x200 68138c68e07SSimon Pilgrim; X86-ATOM-NEXT: setl %al 68238c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 68338c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 68438c68e07SSimon Pilgrim; X86-ATOM-NEXT: retl 68538c68e07SSimon Pilgrim; 68638c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_load_slt_imm16: 68738c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 68838c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $512, (%rdi) # imm = 0x200 68938c68e07SSimon Pilgrim; X64-ATOM-NEXT: setl %al 69038c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 69138c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 69238c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 69338c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 69438c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 69538c68e07SSimon Pilgrim %ld = load i16, ptr %p0 69638c68e07SSimon Pilgrim %cmp = icmp slt i16 %ld, 512 69738c68e07SSimon Pilgrim ret i1 %cmp 69838c68e07SSimon Pilgrim} 69938c68e07SSimon Pilgrim 70038c68e07SSimon Pilgrimdefine i1 @cmp16_load_slt_imm16_minsize(ptr %p0) minsize { 70138c68e07SSimon Pilgrim; X86-LABEL: cmp16_load_slt_imm16_minsize: 70238c68e07SSimon Pilgrim; X86: # %bb.0: 70338c68e07SSimon Pilgrim; X86-NEXT: movl {{[0-9]+}}(%esp), %eax 70438c68e07SSimon Pilgrim; X86-NEXT: cmpw $512, (%eax) # imm = 0x200 70538c68e07SSimon Pilgrim; X86-NEXT: setl %al 70638c68e07SSimon Pilgrim; X86-NEXT: retl 70738c68e07SSimon Pilgrim; 70838c68e07SSimon Pilgrim; X64-LABEL: cmp16_load_slt_imm16_minsize: 70938c68e07SSimon Pilgrim; X64: # %bb.0: 71038c68e07SSimon Pilgrim; X64-NEXT: cmpw $512, (%rdi) # imm = 0x200 71138c68e07SSimon Pilgrim; X64-NEXT: setl %al 71238c68e07SSimon Pilgrim; X64-NEXT: retq 71338c68e07SSimon Pilgrim %ld = load i16, ptr %p0 71438c68e07SSimon Pilgrim %cmp = icmp slt i16 %ld, 512 71538c68e07SSimon Pilgrim ret i1 %cmp 71638c68e07SSimon Pilgrim} 71738c68e07SSimon Pilgrim 71838c68e07SSimon Pilgrimdefine i1 @cmp16_load_slt_imm16_optsize(ptr %p0) optsize { 719e2d74a25SSimon Pilgrim; X86-LABEL: cmp16_load_slt_imm16_optsize: 720e2d74a25SSimon Pilgrim; X86: # %bb.0: 721e2d74a25SSimon Pilgrim; X86-NEXT: movl {{[0-9]+}}(%esp), %eax 722e2d74a25SSimon Pilgrim; X86-NEXT: cmpw $512, (%eax) # imm = 0x200 723e2d74a25SSimon Pilgrim; X86-NEXT: setl %al 724e2d74a25SSimon Pilgrim; X86-NEXT: retl 72538c68e07SSimon Pilgrim; 726e2d74a25SSimon Pilgrim; X64-LABEL: cmp16_load_slt_imm16_optsize: 727e2d74a25SSimon Pilgrim; X64: # %bb.0: 728e2d74a25SSimon Pilgrim; X64-NEXT: cmpw $512, (%rdi) # imm = 0x200 729e2d74a25SSimon Pilgrim; X64-NEXT: setl %al 730e2d74a25SSimon Pilgrim; X64-NEXT: retq 73138c68e07SSimon Pilgrim %ld = load i16, ptr %p0 73238c68e07SSimon Pilgrim %cmp = icmp slt i16 %ld, 512 73338c68e07SSimon Pilgrim ret i1 %cmp 73438c68e07SSimon Pilgrim} 73538c68e07SSimon Pilgrim 73638c68e07SSimon Pilgrimdefine i1 @cmp16_load_ule_imm8(ptr %p0) { 73738c68e07SSimon Pilgrim; X86-GENERIC-LABEL: cmp16_load_ule_imm8: 73838c68e07SSimon Pilgrim; X86-GENERIC: # %bb.0: 73938c68e07SSimon Pilgrim; X86-GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax 74038c68e07SSimon Pilgrim; X86-GENERIC-NEXT: cmpw $16, (%eax) 74138c68e07SSimon Pilgrim; X86-GENERIC-NEXT: setb %al 74238c68e07SSimon Pilgrim; X86-GENERIC-NEXT: retl 74338c68e07SSimon Pilgrim; 74438c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_load_ule_imm8: 74538c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 74638c68e07SSimon Pilgrim; X64-GENERIC-NEXT: cmpw $16, (%rdi) 74738c68e07SSimon Pilgrim; X64-GENERIC-NEXT: setb %al 74838c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 74938c68e07SSimon Pilgrim; 750d838e5b3SSimon Pilgrim; X86-FAST-LABEL: cmp16_load_ule_imm8: 751d838e5b3SSimon Pilgrim; X86-FAST: # %bb.0: 752d838e5b3SSimon Pilgrim; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %eax 753d838e5b3SSimon Pilgrim; X86-FAST-NEXT: cmpw $16, (%eax) 754d838e5b3SSimon Pilgrim; X86-FAST-NEXT: setb %al 755d838e5b3SSimon Pilgrim; X86-FAST-NEXT: retl 756d838e5b3SSimon Pilgrim; 757d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_load_ule_imm8: 758d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 759d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $16, (%rdi) 760d838e5b3SSimon Pilgrim; X64-FAST-NEXT: setb %al 761d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 762d838e5b3SSimon Pilgrim; 76338c68e07SSimon Pilgrim; X86-ATOM-LABEL: cmp16_load_ule_imm8: 76438c68e07SSimon Pilgrim; X86-ATOM: # %bb.0: 76538c68e07SSimon Pilgrim; X86-ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax 76638c68e07SSimon Pilgrim; X86-ATOM-NEXT: cmpw $16, (%eax) 76738c68e07SSimon Pilgrim; X86-ATOM-NEXT: setb %al 76838c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 76938c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 77038c68e07SSimon Pilgrim; X86-ATOM-NEXT: retl 77138c68e07SSimon Pilgrim; 77238c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_load_ule_imm8: 77338c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 77438c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $16, (%rdi) 77538c68e07SSimon Pilgrim; X64-ATOM-NEXT: setb %al 77638c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 77738c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 77838c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 77938c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 78038c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 78138c68e07SSimon Pilgrim %ld = load i16, ptr %p0 78238c68e07SSimon Pilgrim %cmp = icmp ule i16 %ld, 15 78338c68e07SSimon Pilgrim ret i1 %cmp 78438c68e07SSimon Pilgrim} 78538c68e07SSimon Pilgrim 78638c68e07SSimon Pilgrimdefine i1 @cmp16_load_ule_imm16(ptr %p0) { 78738c68e07SSimon Pilgrim; X86-GENERIC-LABEL: cmp16_load_ule_imm16: 78838c68e07SSimon Pilgrim; X86-GENERIC: # %bb.0: 78938c68e07SSimon Pilgrim; X86-GENERIC-NEXT: movl {{[0-9]+}}(%esp), %eax 790e2d74a25SSimon Pilgrim; X86-GENERIC-NEXT: cmpw $513, (%eax) # imm = 0x201 79138c68e07SSimon Pilgrim; X86-GENERIC-NEXT: setb %al 79238c68e07SSimon Pilgrim; X86-GENERIC-NEXT: retl 79338c68e07SSimon Pilgrim; 79438c68e07SSimon Pilgrim; X64-GENERIC-LABEL: cmp16_load_ule_imm16: 79538c68e07SSimon Pilgrim; X64-GENERIC: # %bb.0: 796e2d74a25SSimon Pilgrim; X64-GENERIC-NEXT: cmpw $513, (%rdi) # imm = 0x201 79738c68e07SSimon Pilgrim; X64-GENERIC-NEXT: setb %al 79838c68e07SSimon Pilgrim; X64-GENERIC-NEXT: retq 79938c68e07SSimon Pilgrim; 800d838e5b3SSimon Pilgrim; X86-FAST-LABEL: cmp16_load_ule_imm16: 801d838e5b3SSimon Pilgrim; X86-FAST: # %bb.0: 802d838e5b3SSimon Pilgrim; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %eax 803d838e5b3SSimon Pilgrim; X86-FAST-NEXT: cmpw $513, (%eax) # imm = 0x201 804d838e5b3SSimon Pilgrim; X86-FAST-NEXT: setb %al 805d838e5b3SSimon Pilgrim; X86-FAST-NEXT: retl 806d838e5b3SSimon Pilgrim; 807d838e5b3SSimon Pilgrim; X64-FAST-LABEL: cmp16_load_ule_imm16: 808d838e5b3SSimon Pilgrim; X64-FAST: # %bb.0: 809d838e5b3SSimon Pilgrim; X64-FAST-NEXT: cmpw $513, (%rdi) # imm = 0x201 810d838e5b3SSimon Pilgrim; X64-FAST-NEXT: setb %al 811d838e5b3SSimon Pilgrim; X64-FAST-NEXT: retq 812d838e5b3SSimon Pilgrim; 81338c68e07SSimon Pilgrim; X86-ATOM-LABEL: cmp16_load_ule_imm16: 81438c68e07SSimon Pilgrim; X86-ATOM: # %bb.0: 81538c68e07SSimon Pilgrim; X86-ATOM-NEXT: movl {{[0-9]+}}(%esp), %eax 81638c68e07SSimon Pilgrim; X86-ATOM-NEXT: cmpw $513, (%eax) # imm = 0x201 81738c68e07SSimon Pilgrim; X86-ATOM-NEXT: setb %al 81838c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 81938c68e07SSimon Pilgrim; X86-ATOM-NEXT: nop 82038c68e07SSimon Pilgrim; X86-ATOM-NEXT: retl 82138c68e07SSimon Pilgrim; 82238c68e07SSimon Pilgrim; X64-ATOM-LABEL: cmp16_load_ule_imm16: 82338c68e07SSimon Pilgrim; X64-ATOM: # %bb.0: 82438c68e07SSimon Pilgrim; X64-ATOM-NEXT: cmpw $513, (%rdi) # imm = 0x201 82538c68e07SSimon Pilgrim; X64-ATOM-NEXT: setb %al 82638c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 82738c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 82838c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 82938c68e07SSimon Pilgrim; X64-ATOM-NEXT: nop 83038c68e07SSimon Pilgrim; X64-ATOM-NEXT: retq 83138c68e07SSimon Pilgrim %ld = load i16, ptr %p0 83238c68e07SSimon Pilgrim %cmp = icmp ule i16 %ld, 512 83338c68e07SSimon Pilgrim ret i1 %cmp 83438c68e07SSimon Pilgrim} 83538c68e07SSimon Pilgrim 83638c68e07SSimon Pilgrimdefine i1 @cmp16_load_ule_imm16_minsize(ptr %p0) minsize { 83738c68e07SSimon Pilgrim; X86-LABEL: cmp16_load_ule_imm16_minsize: 83838c68e07SSimon Pilgrim; X86: # %bb.0: 83938c68e07SSimon Pilgrim; X86-NEXT: movl {{[0-9]+}}(%esp), %eax 84038c68e07SSimon Pilgrim; X86-NEXT: cmpw $513, (%eax) # imm = 0x201 84138c68e07SSimon Pilgrim; X86-NEXT: setb %al 84238c68e07SSimon Pilgrim; X86-NEXT: retl 84338c68e07SSimon Pilgrim; 84438c68e07SSimon Pilgrim; X64-LABEL: cmp16_load_ule_imm16_minsize: 84538c68e07SSimon Pilgrim; X64: # %bb.0: 84638c68e07SSimon Pilgrim; X64-NEXT: cmpw $513, (%rdi) # imm = 0x201 84738c68e07SSimon Pilgrim; X64-NEXT: setb %al 84838c68e07SSimon Pilgrim; X64-NEXT: retq 84938c68e07SSimon Pilgrim %ld = load i16, ptr %p0 85038c68e07SSimon Pilgrim %cmp = icmp ule i16 %ld, 512 85138c68e07SSimon Pilgrim ret i1 %cmp 85238c68e07SSimon Pilgrim} 85338c68e07SSimon Pilgrim 85438c68e07SSimon Pilgrimdefine i1 @cmp16_load_ule_imm16_optsize(ptr %p0) optsize { 855e2d74a25SSimon Pilgrim; X86-LABEL: cmp16_load_ule_imm16_optsize: 856e2d74a25SSimon Pilgrim; X86: # %bb.0: 857e2d74a25SSimon Pilgrim; X86-NEXT: movl {{[0-9]+}}(%esp), %eax 858e2d74a25SSimon Pilgrim; X86-NEXT: cmpw $513, (%eax) # imm = 0x201 859e2d74a25SSimon Pilgrim; X86-NEXT: setb %al 860e2d74a25SSimon Pilgrim; X86-NEXT: retl 86138c68e07SSimon Pilgrim; 862e2d74a25SSimon Pilgrim; X64-LABEL: cmp16_load_ule_imm16_optsize: 863e2d74a25SSimon Pilgrim; X64: # %bb.0: 864e2d74a25SSimon Pilgrim; X64-NEXT: cmpw $513, (%rdi) # imm = 0x201 865e2d74a25SSimon Pilgrim; X64-NEXT: setb %al 866e2d74a25SSimon Pilgrim; X64-NEXT: retq 86738c68e07SSimon Pilgrim %ld = load i16, ptr %p0 86838c68e07SSimon Pilgrim %cmp = icmp ule i16 %ld, 512 86938c68e07SSimon Pilgrim ret i1 %cmp 87038c68e07SSimon Pilgrim} 871