| #![crate_type = "lib"] | |
| #![feature(core_intrinsics)] | |
| use std::intrinsics::*; | |
| // CHECK-LABEL: @unchecked_add_signed | |
| #[no_mangle] | |
| pub unsafe fn unchecked_add_signed(a: i32, b: i32) -> i32 { | |
| // CHECK: add nsw | |
| unchecked_add(a, b) | |
| } | |
| // CHECK-LABEL: @unchecked_add_unsigned | |
| #[no_mangle] | |
| pub unsafe fn unchecked_add_unsigned(a: u32, b: u32) -> u32 { | |
| // CHECK: add nuw | |
| unchecked_add(a, b) | |
| } | |
| // CHECK-LABEL: @unchecked_sub_signed | |
| #[no_mangle] | |
| pub unsafe fn unchecked_sub_signed(a: i32, b: i32) -> i32 { | |
| // CHECK: sub nsw | |
| unchecked_sub(a, b) | |
| } | |
| // CHECK-LABEL: @unchecked_sub_unsigned | |
| #[no_mangle] | |
| pub unsafe fn unchecked_sub_unsigned(a: u32, b: u32) -> u32 { | |
| // CHECK: sub nuw | |
| unchecked_sub(a, b) | |
| } | |
| // CHECK-LABEL: @unchecked_mul_signed | |
| #[no_mangle] | |
| pub unsafe fn unchecked_mul_signed(a: i32, b: i32) -> i32 { | |
| // CHECK: mul nsw | |
| unchecked_mul(a, b) | |
| } | |
| // CHECK-LABEL: @unchecked_mul_unsigned | |
| #[no_mangle] | |
| pub unsafe fn unchecked_mul_unsigned(a: u32, b: u32) -> u32 { | |
| // CHECK: mul nuw | |
| unchecked_mul(a, b) | |
| } |