[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / PowerPC / fast-isel-ext.ll
blob510f14888385e1dfc64b348b3cc52eef421715fa
1 ; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort=1 -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s --check-prefix=ELF64
3 ; zext
5 define i32 @zext_8_32(i8 %a) nounwind {
6 ; ELF64: zext_8_32
7   %r = zext i8 %a to i32
8 ; ELF64: clrlwi {{[0-9]+}}, {{[0-9]+}}, 24
9   ret i32 %r
12 define i32 @zext_16_32(i16 %a) nounwind {
13 ; ELF64: zext_16_32
14   %r = zext i16 %a to i32
15 ; ELF64: clrlwi {{[0-9]+}}, {{[0-9]+}}, 16
16   ret i32 %r
19 define i64 @zext_8_64(i8 %a) nounwind {
20 ; ELF64: zext_8_64
21   %r = zext i8 %a to i64
22 ; ELF64: clrldi {{[0-9]+}}, {{[0-9]+}}, 56
23   ret i64 %r
26 define i64 @zext_16_64(i16 %a) nounwind {
27 ; ELF64: zext_16_64
28   %r = zext i16 %a to i64
29 ; ELF64: clrldi {{[0-9]+}}, {{[0-9]+}}, 48
30   ret i64 %r
33 define i64 @zext_32_64(i32 %a) nounwind {
34 ; ELF64: zext_32_64
35   %r = zext i32 %a to i64
36 ; ELF64: clrldi {{[0-9]+}}, {{[0-9]+}}, 32
37   ret i64 %r
40 ; sext
42 define i32 @sext_8_32(i8 %a) nounwind {
43 ; ELF64: sext_8_32
44   %r = sext i8 %a to i32
45 ; ELF64: extsb
46   ret i32 %r
49 define i32 @sext_16_32(i16 %a) nounwind {
50 ; ELF64: sext_16_32
51   %r = sext i16 %a to i32
52 ; ELF64: extsh
53   ret i32 %r
56 define i64 @sext_8_64(i8 %a) nounwind {
57 ; ELF64: sext_8_64
58   %r = sext i8 %a to i64
59 ; ELF64: extsb
60   ret i64 %r
63 define i64 @sext_16_64(i16 %a) nounwind {
64 ; ELF64: sext_16_64
65   %r = sext i16 %a to i64
66 ; ELF64: extsh
67   ret i64 %r
70 define i64 @sext_32_64(i32 %a) nounwind {
71 ; ELF64: sext_32_64
72   %r = sext i32 %a to i64
73 ; ELF64: extsw
74   ret i64 %r