|
| 1 | +; The purpose of this test to verify that the fltused symbol is |
| 2 | +; not emitted when purely vector floating point operations are used on Windows. |
| 3 | + |
| 4 | +; RUN: llc < %s -mtriple i686-pc-win32 | FileCheck %s |
| 5 | +; RUN: llc < %s -mtriple x86_64-pc-win32 | FileCheck %s |
| 6 | + |
| 7 | +@foo = external dso_local global [4 x float], align 16 |
| 8 | + |
| 9 | +; Function Attrs: noinline nounwind optnone sspstrong uwtable |
| 10 | +define dso_local <4 x float> @func() #0 { |
| 11 | +entry: |
| 12 | + %__p.addr.i = alloca ptr, align 8 |
| 13 | + %vector1 = alloca <4 x float>, align 16 |
| 14 | + store ptr @foo, ptr %__p.addr.i, align 8 |
| 15 | + %0 = load ptr, ptr %__p.addr.i, align 8 |
| 16 | + %1 = load <4 x float>, ptr %0, align 16 |
| 17 | + store <4 x float> %1, ptr %vector1, align 16 |
| 18 | + %2 = load <4 x float>, ptr %vector1, align 16 |
| 19 | + ret <4 x float> %2 |
| 20 | +} |
| 21 | + |
| 22 | +define <4 x float> @mul_vectors(<4 x float> %a, <4 x float> %b) { |
| 23 | +entry: |
| 24 | + %result = fmul <4 x float> %a, %b |
| 25 | + ret <4 x float> %result |
| 26 | +} |
| 27 | + |
| 28 | +; _fltused is determined at a module level |
| 29 | +; CHECK-NOT: .globl {{_?}}_fltused |
0 commit comments