1 ; RUN: llc < %s -mtriple=x86_64-win32 -mattr=sse2 | FileCheck %s 2 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 3 target triple = "x86_64-pc-windows-msvc" 4 5 define double @double() { 6 ret double 0x0000000000800000 7 } 8 ; CHECK: .globl __real@0000000000800000 9 ; CHECK-NEXT: .section .rdata,"dr",discard,__real@0000000000800000 10 ; CHECK-NEXT: .align 8 11 ; CHECK-NEXT: __real@0000000000800000: 12 ; CHECK-NEXT: .quad 8388608 13 ; CHECK: double: 14 ; CHECK: movsd __real@0000000000800000(%rip), %xmm0 15 ; CHECK-NEXT: ret 16 17 define <4 x i32> @vec1() { 18 ret <4 x i32> <i32 3, i32 2, i32 1, i32 0> 19 } 20 ; CHECK: .globl __xmm@00000000000000010000000200000003 21 ; CHECK-NEXT: .section .rdata,"dr",discard,__xmm@00000000000000010000000200000003 22 ; CHECK-NEXT: .align 16 23 ; CHECK-NEXT: __xmm@00000000000000010000000200000003: 24 ; CHECK-NEXT: .long 3 25 ; CHECK-NEXT: .long 2 26 ; CHECK-NEXT: .long 1 27 ; CHECK-NEXT: .long 0 28 ; CHECK: vec1: 29 ; CHECK: movaps __xmm@00000000000000010000000200000003(%rip), %xmm0 30 ; CHECK-NEXT: ret 31 32 define <8 x i16> @vec2() { 33 ret <8 x i16> <i16 7, i16 6, i16 5, i16 4, i16 3, i16 2, i16 1, i16 0> 34 } 35 ; CHECK: .globl __xmm@00000001000200030004000500060007 36 ; CHECK-NEXT: .section .rdata,"dr",discard,__xmm@00000001000200030004000500060007 37 ; CHECK-NEXT: .align 16 38 ; CHECK-NEXT: __xmm@00000001000200030004000500060007: 39 ; CHECK-NEXT: .short 7 40 ; CHECK-NEXT: .short 6 41 ; CHECK-NEXT: .short 5 42 ; CHECK-NEXT: .short 4 43 ; CHECK-NEXT: .short 3 44 ; CHECK-NEXT: .short 2 45 ; CHECK-NEXT: .short 1 46 ; CHECK-NEXT: .short 0 47 ; CHECK: vec2: 48 ; CHECK: movaps __xmm@00000001000200030004000500060007(%rip), %xmm0 49 ; CHECK-NEXT: ret 50 51 52 define <4 x float> @undef1() { 53 ret <4 x float> <float 1.0, float 1.0, float undef, float undef> 54 55 ; CHECK: .globl __xmm@00000000000000003f8000003f800000 56 ; CHECK-NEXT: .section .rdata,"dr",discard,__xmm@00000000000000003f8000003f800000 57 ; CHECK-NEXT: .align 16 58 ; CHECK-NEXT: __xmm@00000000000000003f8000003f800000: 59 ; CHECK-NEXT: .long 1065353216 # float 1 60 ; CHECK-NEXT: .long 1065353216 # float 1 61 ; CHECK-NEXT: .zero 4 62 ; CHECK-NEXT: .zero 4 63 ; CHECK: undef1: 64 ; CHECK: movaps __xmm@00000000000000003f8000003f800000(%rip), %xmm0 65 ; CHECK-NEXT: ret 66 } 67 68 define float @pr23966(i32 %a) { 69 %tobool = icmp ne i32 %a, 0 70 %sel = select i1 %tobool, float -1.000000e+00, float 1.000000e+00 71 ret float %sel 72 } 73 74 ; CHECK: .globl __real@bf8000003f800000 75 ; CHECK-NEXT: .section .rdata,"dr",discard,__real@bf8000003f800000 76 ; CHECK-NEXT: .align 4 77 ; CHECK-NEXT: __real@bf8000003f800000: 78 ; CHECK-NEXT: .long 1065353216 79 ; CHECK-NEXT: .long 3212836864 80