; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s define i8 @p0i8() { ; CHECK-LABEL: p0i8: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i8 0 } define signext i8 @p0si8() { ; CHECK-LABEL: p0si8: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i8 0 } define zeroext i8 @p0zi8() { ; CHECK-LABEL: p0zi8: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i8 0 } define i8 @p128i8() { ; CHECK-LABEL: p128i8: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 128 ; CHECK-NEXT: b.l.t (, %s10) ret i8 128 } define signext i8 @p128si8() { ; CHECK-LABEL: p128si8: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, -128 ; CHECK-NEXT: b.l.t (, %s10) ret i8 128 } define zeroext i8 @p128zi8() { ; CHECK-LABEL: p128zi8: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 128 ; CHECK-NEXT: b.l.t (, %s10) ret i8 128 } define i8 @p256i8() { ; CHECK-LABEL: p256i8: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i8 256 } define signext i8 @p256si8() { ; CHECK-LABEL: p256si8: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i8 256 } define zeroext i8 @p256zi8() { ; CHECK-LABEL: p256zi8: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i8 256 } define i16 @p0i16() { ; CHECK-LABEL: p0i16: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i16 0 } define signext i16 @p0si16() { ; CHECK-LABEL: p0si16: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i16 0 } define zeroext i16 @p0zi16() { ; CHECK-LABEL: p0zi16: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i16 0 } define i32 @p0i32() { ; CHECK-LABEL: p0i32: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i32 0 } define signext i32 @p0si32() { ; CHECK-LABEL: p0si32: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i32 0 } define zeroext i32 @p0zi32() { ; CHECK-LABEL: p0zi32: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i32 0 } define i32 @p128i32() { ; CHECK-LABEL: p128i32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 128 ; CHECK-NEXT: b.l.t (, %s10) ret i32 128 } define signext i32 @p128si32() { ; CHECK-LABEL: p128si32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 128 ; CHECK-NEXT: b.l.t (, %s10) ret i32 128 } define zeroext i32 @p128zi32() { ; CHECK-LABEL: p128zi32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 128 ; CHECK-NEXT: b.l.t (, %s10) ret i32 128 } define i64 @p0i64() { ; CHECK-LABEL: p0i64: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i64 0 } define signext i64 @p0si64() { ; CHECK-LABEL: p0si64: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i64 0 } define zeroext i64 @p0zi64() { ; CHECK-LABEL: p0zi64: ; CHECK: # %bb.0: ; CHECK-NEXT: or %s0, 0, (0)1 ; CHECK-NEXT: b.l.t (, %s10) ret i64 0 } define i64 @p128i64() { ; CHECK-LABEL: p128i64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 128 ; CHECK-NEXT: b.l.t (, %s10) ret i64 128 } define signext i64 @p128si64() { ; CHECK-LABEL: p128si64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 128 ; CHECK-NEXT: b.l.t (, %s10) ret i64 128 } define zeroext i64 @p128zi64() { ; CHECK-LABEL: p128zi64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 128 ; CHECK-NEXT: b.l.t (, %s10) ret i64 128 } define i64 @p2264924160i64() { ; CHECK-LABEL: p2264924160i64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, -2030043136 ; CHECK-NEXT: and %s0, %s0, (32)0 ; CHECK-NEXT: b.l.t (, %s10) ret i64 2264924160 } define signext i64 @p2264924160si64() { ; CHECK-LABEL: p2264924160si64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, -2030043136 ; CHECK-NEXT: and %s0, %s0, (32)0 ; CHECK-NEXT: b.l.t (, %s10) ret i64 2264924160 } define zeroext i64 @p2264924160zi64() { ; CHECK-LABEL: p2264924160zi64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, -2030043136 ; CHECK-NEXT: and %s0, %s0, (32)0 ; CHECK-NEXT: b.l.t (, %s10) ret i64 2264924160 } define i64 @p2147483647i64() { ; CHECK-LABEL: p2147483647i64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 2147483647 ; CHECK-NEXT: b.l.t (, %s10) ret i64 2147483647 } define signext i64 @p2147483647si64() { ; CHECK-LABEL: p2147483647si64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 2147483647 ; CHECK-NEXT: b.l.t (, %s10) ret i64 2147483647 } define zeroext i64 @p2147483647zi64() { ; CHECK-LABEL: p2147483647zi64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 2147483647 ; CHECK-NEXT: b.l.t (, %s10) ret i64 2147483647 } define i64 @p15032385535i64() { ; CHECK-LABEL: p15032385535i64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 2147483647 ; CHECK-NEXT: lea.sl %s0, 3(, %s0) ; CHECK-NEXT: b.l.t (, %s10) ret i64 15032385535 } define signext i64 @p15032385535si64() { ; CHECK-LABEL: p15032385535si64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 2147483647 ; CHECK-NEXT: lea.sl %s0, 3(, %s0) ; CHECK-NEXT: b.l.t (, %s10) ret i64 15032385535 } define zeroext i64 @p15032385535zi64() { ; CHECK-LABEL: p15032385535zi64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 2147483647 ; CHECK-NEXT: lea.sl %s0, 3(, %s0) ; CHECK-NEXT: b.l.t (, %s10) ret i64 15032385535 } define i64 @p15032385536i64() { ; CHECK-LABEL: p15032385536i64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, -2147483648 ; CHECK-NEXT: and %s0, %s0, (32)0 ; CHECK-NEXT: lea.sl %s0, 3(, %s0) ; CHECK-NEXT: b.l.t (, %s10) ret i64 15032385536 } define signext i64 @p15032385536si64() { ; CHECK-LABEL: p15032385536si64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, -2147483648 ; CHECK-NEXT: and %s0, %s0, (32)0 ; CHECK-NEXT: lea.sl %s0, 3(, %s0) ; CHECK-NEXT: b.l.t (, %s10) ret i64 15032385536 } define zeroext i64 @p15032385536zi64() { ; CHECK-LABEL: p15032385536zi64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, -2147483648 ; CHECK-NEXT: and %s0, %s0, (32)0 ; CHECK-NEXT: lea.sl %s0, 3(, %s0) ; CHECK-NEXT: b.l.t (, %s10) ret i64 15032385536 } define float @m5f32() { ; CHECK-LABEL: m5f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea.sl %s0, -1063256064 ; CHECK-NEXT: b.l.t (, %s10) ret float -5.000000e+00 } define double @m5f64() { ; CHECK-LABEL: m5f64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea.sl %s0, -1072431104 ; CHECK-NEXT: b.l.t (, %s10) ret double -5.000000e+00 } define float @p2p3f32() { ; CHECK-LABEL: p2p3f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea.sl %s0, 1075000115 ; CHECK-NEXT: b.l.t (, %s10) ret float 0x4002666660000000 ; 2.3 } define double @p2p3f64() { ; CHECK-LABEL: p2p3f64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, 1717986918 ; CHECK-NEXT: lea.sl %s0, 1073899110(, %s0) ; CHECK-NEXT: b.l.t (, %s10) ret double 2.3 } define float @p128p3f32() { ; CHECK-LABEL: p128p3f32: ; CHECK: # %bb.0: ; CHECK-NEXT: lea.sl %s0, 1124093133 ; CHECK-NEXT: b.l.t (, %s10) ret float 0x40600999A0000000 ; 128.3 } define double @p128p3f64() { ; CHECK-LABEL: p128p3f64: ; CHECK: # %bb.0: ; CHECK-NEXT: lea %s0, -1717986918 ; CHECK-NEXT: and %s0, %s0, (32)0 ; CHECK-NEXT: lea.sl %s0, 1080035737(, %s0) ; CHECK-NEXT: b.l.t (, %s10) ret double 128.3 }