| ; RUN: llc -verify-machineinstrs -O0 -mcpu=pwr7 -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s | |
| define zeroext i32 @f1() { | |
| entry: | |
| ret i32 65535 | |
| } | |
| ; CHECK-LABEL: @f1 | |
| ; CHECK: lis 3, 0 | |
| ; CHECK: ori 3, 3, 65535 | |
| define zeroext i32 @f2() { | |
| entry: | |
| ret i32 32768 | |
| } | |
| ; CHECK-LABEL: @f2 | |
| ; CHECK: lis 3, 0 | |
| ; CHECK: ori 3, 3, 32768 | |
| define zeroext i32 @f3() { | |
| entry: | |
| ret i32 32767 | |
| } | |
| ; CHECK-LABEL: @f3 | |
| ; CHECK: li 3, 32767 | |
| define zeroext i16 @f4() { | |
| entry: | |
| ret i16 65535 | |
| } | |
| ; CHECK-LABEL: @f4 | |
| ; CHECK: lis 3, 0 | |
| ; CHECK: ori 3, 3, 65535 | |
| define zeroext i16 @f5() { | |
| entry: | |
| ret i16 32768 | |
| } | |
| ; CHECK-LABEL: @f5 | |
| ; CHECK: lis 3, 0 | |
| ; CHECK: ori 3, 3, 32768 | |
| define zeroext i16 @f6() { | |
| entry: | |
| ret i16 32767 | |
| } | |
| ; CHECK-LABEL: @f6 | |
| ; CHECK: li 3, 32767 | |
| define zeroext i16 @f7() { | |
| entry: | |
| ret i16 -1 | |
| } | |
| ; CHECK-LABEL: @f7 | |
| ; CHECK: lis 3, 0 | |
| ; CHECK: ori 3, 3, 65535 | |
| define zeroext i16 @f8() { | |
| entry: | |
| ret i16 -32768 | |
| } | |
| ; CHECK-LABEL: @f8 | |
| ; CHECK: lis 3, 0 | |
| ; CHECK: ori 3, 3, 32768 | |
| define signext i32 @f1s() { | |
| entry: | |
| ret i32 65535 | |
| } | |
| ; CHECK-LABEL: @f1s | |
| ; CHECK: lis 3, 0 | |
| ; CHECK: ori 3, 3, 65535 | |
| define signext i32 @f2s() { | |
| entry: | |
| ret i32 32768 | |
| } | |
| ; CHECK-LABEL: @f2s | |
| ; CHECK: lis 3, 0 | |
| ; CHECK: ori 3, 3, 32768 | |
| define signext i32 @f3s() { | |
| entry: | |
| ret i32 32767 | |
| } | |
| ; CHECK-LABEL: @f3s | |
| ; CHECK: li 3, 32767 | |
| define signext i16 @f4s() { | |
| entry: | |
| ret i16 32767 | |
| } | |
| ; CHECK-LABEL: @f4s | |
| ; CHECK: li 3, 32767 | |
| define signext i32 @f1sn() { | |
| entry: | |
| ret i32 -65535 | |
| } | |
| ; CHECK-LABEL: @f1sn | |
| ; CHECK: lis 3, -1 | |
| ; CHECK: ori 3, 3, 1 | |
| define signext i32 @f2sn() { | |
| entry: | |
| ret i32 -32768 | |
| } | |
| ; CHECK-LABEL: @f2sn | |
| ; CHECK: li 3, -32768 | |
| define signext i32 @f3sn() { | |
| entry: | |
| ret i32 -32767 | |
| } | |
| ; CHECK-LABEL: @f3sn | |
| ; CHECK: li 3, -32767 | |
| define signext i32 @f4sn() { | |
| entry: | |
| ret i32 -65536 | |
| } | |
| ; CHECK-LABEL: @f4sn | |
| ; CHECK: lis 3, -1 | |
| define signext i16 @f5sn() { | |
| entry: | |
| ret i16 -32767 | |
| } | |
| ; CHECK-LABEL: @f5sn | |
| ; CHECK: li 3, -32767 | |
| define signext i16 @f6sn() { | |
| entry: | |
| ret i16 -32768 | |
| } | |
| ; CHECK-LABEL: @f6sn | |
| ; CHECK: li 3, -32768 |