[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / Mips / GlobalISel / instruction-select / zextLoad_and_sextLoad.mir
blobf6a6598a76a01e479ce6d297f3ba8c830eb7f633
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32
3 --- |
5   define void @load1_s8_to_zextLoad1_s32(i8* %px) {entry: ret void}
6   define void @load2_s16_to_zextLoad2_s32(i16* %px) {entry: ret void}
7   define void @load1_s8_to_sextLoad1_s32(i8* %px) {entry: ret void}
8   define void @load2_s16_to_sextLoad2_s32(i16* %px) {entry: ret void}
10 ...
11 ---
12 name:            load1_s8_to_zextLoad1_s32
13 alignment:       4
14 legalized:       true
15 regBankSelected: true
16 tracksRegLiveness: true
17 body:             |
18   bb.1.entry:
19     liveins: $a0
21     ; MIPS32-LABEL: name: load1_s8_to_zextLoad1_s32
22     ; MIPS32: liveins: $a0
23     ; MIPS32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0
24     ; MIPS32: [[LBu:%[0-9]+]]:gpr32 = LBu [[COPY]], 0 :: (load 1 from %ir.px)
25     ; MIPS32: $v0 = COPY [[LBu]]
26     ; MIPS32: RetRA implicit $v0
27     %0:gprb(p0) = COPY $a0
28     %2:gprb(s32) = G_ZEXTLOAD %0(p0) :: (load 1 from %ir.px)
29     $v0 = COPY %2(s32)
30     RetRA implicit $v0
32 ...
33 ---
34 name:            load2_s16_to_zextLoad2_s32
35 alignment:       4
36 legalized:       true
37 regBankSelected: true
38 tracksRegLiveness: true
39 body:             |
40   bb.1.entry:
41     liveins: $a0
43     ; MIPS32-LABEL: name: load2_s16_to_zextLoad2_s32
44     ; MIPS32: liveins: $a0
45     ; MIPS32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0
46     ; MIPS32: [[LHu:%[0-9]+]]:gpr32 = LHu [[COPY]], 0 :: (load 2 from %ir.px)
47     ; MIPS32: $v0 = COPY [[LHu]]
48     ; MIPS32: RetRA implicit $v0
49     %0:gprb(p0) = COPY $a0
50     %2:gprb(s32) = G_ZEXTLOAD %0(p0) :: (load 2 from %ir.px)
51     $v0 = COPY %2(s32)
52     RetRA implicit $v0
54 ...
55 ---
56 name:            load1_s8_to_sextLoad1_s32
57 alignment:       4
58 legalized:       true
59 regBankSelected: true
60 tracksRegLiveness: true
61 body:             |
62   bb.1.entry:
63     liveins: $a0
65     ; MIPS32-LABEL: name: load1_s8_to_sextLoad1_s32
66     ; MIPS32: liveins: $a0
67     ; MIPS32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0
68     ; MIPS32: [[LB:%[0-9]+]]:gpr32 = LB [[COPY]], 0 :: (load 1 from %ir.px)
69     ; MIPS32: $v0 = COPY [[LB]]
70     ; MIPS32: RetRA implicit $v0
71     %0:gprb(p0) = COPY $a0
72     %2:gprb(s32) = G_SEXTLOAD %0(p0) :: (load 1 from %ir.px)
73     $v0 = COPY %2(s32)
74     RetRA implicit $v0
76 ...
77 ---
78 name:            load2_s16_to_sextLoad2_s32
79 alignment:       4
80 legalized:       true
81 regBankSelected: true
82 tracksRegLiveness: true
83 body:             |
84   bb.1.entry:
85     liveins: $a0
87     ; MIPS32-LABEL: name: load2_s16_to_sextLoad2_s32
88     ; MIPS32: liveins: $a0
89     ; MIPS32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0
90     ; MIPS32: [[LH:%[0-9]+]]:gpr32 = LH [[COPY]], 0 :: (load 2 from %ir.px)
91     ; MIPS32: $v0 = COPY [[LH]]
92     ; MIPS32: RetRA implicit $v0
93     %0:gprb(p0) = COPY $a0
94     %2:gprb(s32) = G_SEXTLOAD %0(p0) :: (load 2 from %ir.px)
95     $v0 = COPY %2(s32)
96     RetRA implicit $v0
98 ...