xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/urem-i8-constant.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=i386-unknown-unknown | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine i8 @foo(i8 %tmp325) {
5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: foo:
6*9880d681SAndroid Build Coastguard Worker; CHECK:       # BB#0:
7*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movzbl {{[0-9]+}}(%esp), %ecx
8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    imull $111, %ecx, %eax
9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    andl $28672, %eax # imm = 0x7000
10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    shrl $12, %eax
11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movb $37, %dl
12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
13*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    mulb %dl
14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    subb %al, %cl
15*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movl %ecx, %eax
16*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    retl
17*9880d681SAndroid Build Coastguard Worker;
18*9880d681SAndroid Build Coastguard Worker  %t546 = urem i8 %tmp325, 37
19*9880d681SAndroid Build Coastguard Worker  ret i8 %t546
20*9880d681SAndroid Build Coastguard Worker}
21*9880d681SAndroid Build Coastguard Worker
22