[ARM] Adjust how NEON shifts are lowered
[llvm-core.git] / test / CodeGen / X86 / GlobalISel / x86_64-legalize-sdiv.mir
blob5314c91fe036c23431d6dd4be4e2dab9ca33393c
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
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"
9   define i8 @test_sdiv_i8(i8 %arg1, i8 %arg2) {
10     %res = sdiv i8 %arg1, %arg2
11     ret i8 %res
12   }
14   define i16 @test_sdiv_i16(i16 %arg1, i16 %arg2) {
15     %res = sdiv i16 %arg1, %arg2
16     ret i16 %res
17   }
19   define i32 @test_sdiv_i32(i32 %arg1, i32 %arg2) {
20     %res = sdiv i32 %arg1, %arg2
21     ret i32 %res
22   }
24   define i64 @test_sdiv_i64(i64 %arg1, i64 %arg2) {
25     %res = sdiv i64 %arg1, %arg2
26     ret i64 %res
27   }
29 ...
30 ---
31 name:            test_sdiv_i8
32 alignment:       4
33 tracksRegLiveness: true
34 registers:
35   - { id: 0, class: _ }
36   - { id: 1, class: _ }
37   - { id: 2, class: _ }
38   - { id: 3, class: _ }
39   - { id: 4, class: _ }
40 body:             |
41   bb.1 (%ir-block.0):
42     liveins: $edi, $esi
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
61 ...
62 ---
63 name:            test_sdiv_i16
64 alignment:       4
65 tracksRegLiveness: true
66 registers:
67   - { id: 0, class: _ }
68   - { id: 1, class: _ }
69   - { id: 2, class: _ }
70   - { id: 3, class: _ }
71   - { id: 4, class: _ }
72 body:             |
73   bb.1 (%ir-block.0):
74     liveins: $edi, $esi
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
93 ...
94 ---
95 name:            test_sdiv_i32
96 alignment:       4
97 tracksRegLiveness: true
98 registers:
99   - { id: 0, class: _ }
100   - { id: 1, class: _ }
101   - { id: 2, class: _ }
102 body:             |
103   bb.1 (%ir-block.0):
104     liveins: $edi, $esi
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
121 name:            test_sdiv_i64
122 alignment:       4
123 tracksRegLiveness: true
124 registers:
125   - { id: 0, class: _ }
126   - { id: 1, class: _ }
127   - { id: 2, class: _ }
128 body:             |
129   bb.1 (%ir-block.0):
130     liveins: $rdi, $rsi
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