blob: 6db2385a63ebdbbe57474ea4d8d7a04eff7b03f8 [file] [log] [blame]
Dan Gohmanfce288f2009-09-09 00:09:15 +00001; RUN: llc < %s -march=arm -mattr=+vfp2
Jim Grosbache5165492009-11-09 00:11:35 +00002; RUN: llc < %s -march=arm -mattr=vfp2 | not grep vstr.64
Evan Chengc7c77292008-11-04 19:57:48 +00003
4define hidden i64 @__fixunsdfdi(double %x) nounwind readnone {
5entry:
6 %x14 = bitcast double %x to i64 ; <i64> [#uses=1]
7 br i1 true, label %bb3, label %bb10
8
9bb3: ; preds = %entry
10 br i1 true, label %bb5, label %bb7
11
12bb5: ; preds = %bb3
13 %u.in.mask = and i64 %x14, -4294967296 ; <i64> [#uses=1]
14 %.ins = or i64 0, %u.in.mask ; <i64> [#uses=1]
15 %0 = bitcast i64 %.ins to double ; <double> [#uses=1]
Dan Gohmanae3a0be2009-06-04 22:49:04 +000016 %1 = fsub double %x, %0 ; <double> [#uses=1]
Evan Chengc7c77292008-11-04 19:57:48 +000017 %2 = fptosi double %1 to i32 ; <i32> [#uses=1]
18 %3 = add i32 %2, 0 ; <i32> [#uses=1]
19 %4 = zext i32 %3 to i64 ; <i64> [#uses=1]
20 %5 = shl i64 %4, 32 ; <i64> [#uses=1]
21 %6 = or i64 %5, 0 ; <i64> [#uses=1]
22 ret i64 %6
23
24bb7: ; preds = %bb3
25 ret i64 0
26
27bb10: ; preds = %entry
28 ret i64 0
29}