1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s 3 4--- | 5 ; ModuleID = 'sdiv.ll' 6 source_filename = "sdiv.ll" 7 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 8 9 define i8 @test_sdiv_i8(i8 %arg1, i8 %arg2) { 10 %res = sdiv i8 %arg1, %arg2 11 ret i8 %res 12 } 13 14 define i16 @test_sdiv_i16(i16 %arg1, i16 %arg2) { 15 %res = sdiv i16 %arg1, %arg2 16 ret i16 %res 17 } 18 19 define i32 @test_sdiv_i32(i32 %arg1, i32 %arg2) { 20 %res = sdiv i32 %arg1, %arg2 21 ret i32 %res 22 } 23 24 define i64 @test_sdiv_i64(i64 %arg1, i64 %arg2) { 25 %res = sdiv i64 %arg1, %arg2 26 ret i64 %res 27 } 28 29... 30--- 31name: test_sdiv_i8 32alignment: 16 33tracksRegLiveness: true 34registers: 35 - { id: 0, class: _ } 36 - { id: 1, class: _ } 37 - { id: 2, class: _ } 38 - { id: 3, class: _ } 39 - { id: 4, class: _ } 40body: | 41 bb.1 (%ir-block.0): 42 liveins: $edi, $esi 43 44 ; CHECK-LABEL: name: test_sdiv_i8 45 ; CHECK: liveins: $edi, $esi 46 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $edi 47 ; CHECK: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32) 48 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $esi 49 ; CHECK: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[COPY1]](s32) 50 ; CHECK: [[SDIV:%[0-9]+]]:_(s8) = G_SDIV [[TRUNC]], [[TRUNC1]] 51 ; CHECK: $al = COPY [[SDIV]](s8) 52 ; CHECK: RET 0, implicit $al 53 %2:_(s32) = COPY $edi 54 %0:_(s8) = G_TRUNC %2(s32) 55 %3:_(s32) = COPY $esi 56 %1:_(s8) = G_TRUNC %3(s32) 57 %4:_(s8) = G_SDIV %0, %1 58 $al = COPY %4(s8) 59 RET 0, implicit $al 60 61... 62--- 63name: test_sdiv_i16 64alignment: 16 65tracksRegLiveness: true 66registers: 67 - { id: 0, class: _ } 68 - { id: 1, class: _ } 69 - { id: 2, class: _ } 70 - { id: 3, class: _ } 71 - { id: 4, class: _ } 72body: | 73 bb.1 (%ir-block.0): 74 liveins: $edi, $esi 75 76 ; CHECK-LABEL: name: test_sdiv_i16 77 ; CHECK: liveins: $edi, $esi 78 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $edi 79 ; CHECK: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32) 80 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $esi 81 ; CHECK: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32) 82 ; CHECK: [[SDIV:%[0-9]+]]:_(s16) = G_SDIV [[TRUNC]], [[TRUNC1]] 83 ; CHECK: $ax = COPY [[SDIV]](s16) 84 ; CHECK: RET 0, implicit $ax 85 %2:_(s32) = COPY $edi 86 %0:_(s16) = G_TRUNC %2(s32) 87 %3:_(s32) = COPY $esi 88 %1:_(s16) = G_TRUNC %3(s32) 89 %4:_(s16) = G_SDIV %0, %1 90 $ax = COPY %4(s16) 91 RET 0, implicit $ax 92 93... 94--- 95name: test_sdiv_i32 96alignment: 16 97tracksRegLiveness: true 98registers: 99 - { id: 0, class: _ } 100 - { id: 1, class: _ } 101 - { id: 2, class: _ } 102body: | 103 bb.1 (%ir-block.0): 104 liveins: $edi, $esi 105 106 ; CHECK-LABEL: name: test_sdiv_i32 107 ; CHECK: liveins: $edi, $esi 108 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $edi 109 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $esi 110 ; CHECK: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[COPY]], [[COPY1]] 111 ; CHECK: $eax = COPY [[SDIV]](s32) 112 ; CHECK: RET 0, implicit $eax 113 %0:_(s32) = COPY $edi 114 %1:_(s32) = COPY $esi 115 %2:_(s32) = G_SDIV %0, %1 116 $eax = COPY %2(s32) 117 RET 0, implicit $eax 118 119... 120--- 121name: test_sdiv_i64 122alignment: 16 123tracksRegLiveness: true 124registers: 125 - { id: 0, class: _ } 126 - { id: 1, class: _ } 127 - { id: 2, class: _ } 128body: | 129 bb.1 (%ir-block.0): 130 liveins: $rdi, $rsi 131 132 ; CHECK-LABEL: name: test_sdiv_i64 133 ; CHECK: liveins: $rdi, $rsi 134 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $rdi 135 ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $rsi 136 ; CHECK: [[SDIV:%[0-9]+]]:_(s64) = G_SDIV [[COPY]], [[COPY1]] 137 ; CHECK: $rax = COPY [[SDIV]](s64) 138 ; CHECK: RET 0, implicit $rax 139 %0:_(s64) = COPY $rdi 140 %1:_(s64) = COPY $rsi 141 %2:_(s64) = G_SDIV %0, %1 142 $rax = COPY %2(s64) 143 RET 0, implicit $rax 144 145... 146