1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -mtriple=x86_64-linux-gnu -global-isel -verify-machineinstrs < %s -o - | FileCheck %s 3 4define i8 @const_i8() { 5; CHECK-LABEL: const_i8: 6; CHECK: # %bb.0: 7; CHECK-NEXT: movb $2, %al 8; CHECK-NEXT: retq 9 ret i8 2 10} 11 12define i16 @const_i16() { 13; CHECK-LABEL: const_i16: 14; CHECK: # %bb.0: 15; CHECK-NEXT: movw $3, %ax 16; CHECK-NEXT: retq 17 ret i16 3 18} 19 20define i32 @const_i32() { 21; CHECK-LABEL: const_i32: 22; CHECK: # %bb.0: 23; CHECK-NEXT: movl $4, %eax 24; CHECK-NEXT: retq 25 ret i32 4 26} 27 28define i64 @const_i64() { 29; CHECK-LABEL: const_i64: 30; CHECK: # %bb.0: 31; CHECK-NEXT: movabsq $68719476720, %rax # imm = 0xFFFFFFFF0 32; CHECK-NEXT: retq 33 ret i64 68719476720 34} 35 36;i64 value fit into u32 37define i64 @const_i64_u32() { 38; CHECK-LABEL: const_i64_u32: 39; CHECK: # %bb.0: 40; CHECK-NEXT: movl $1879048192, %eax # imm = 0x70000000 41; CHECK-NEXT: retq 42 ret i64 1879048192 43} 44 45;i64 value fit into i32 46define i64 @const_i64_i32() { 47; CHECK-LABEL: const_i64_i32: 48; CHECK: # %bb.0: 49; CHECK-NEXT: movq $-1, %rax 50; CHECK-NEXT: retq 51 ret i64 -1 52} 53 54define void @main(ptr %data) { 55; CHECK-LABEL: main: 56; CHECK: # %bb.0: 57; CHECK-NEXT: movq $0, %rax 58; CHECK-NEXT: movq %rax, (%rdi) 59; CHECK-NEXT: retq 60 store ptr null, ptr %data, align 8 61 ret void 62} 63 64