• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefix=X86
3; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefix=X64
4
5; PR11580
6define <3 x float> @addf3(<3 x float> %x) {
7; X86-LABEL: addf3:
8; X86:       # %bb.0: # %entry
9; X86-NEXT:    addps {{\.LCPI.*}}, %xmm0
10; X86-NEXT:    retl
11;
12; X64-LABEL: addf3:
13; X64:       # %bb.0: # %entry
14; X64-NEXT:    addps {{.*}}(%rip), %xmm0
15; X64-NEXT:    retq
16entry:
17  %add = fadd <3 x float> %x, <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>
18  ret <3 x float> %add
19}
20
21; PR11580
22define <4 x float> @cvtf3_f4(<3 x float> %x) {
23; X86-LABEL: cvtf3_f4:
24; X86:       # %bb.0: # %entry
25; X86-NEXT:    retl
26;
27; X64-LABEL: cvtf3_f4:
28; X64:       # %bb.0: # %entry
29; X64-NEXT:    retq
30entry:
31  %extractVec = shufflevector <3 x float> %x, <3 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
32  ret <4 x float> %extractVec
33}
34
35; PR11580
36define <3 x float> @cvtf4_f3(<4 x float> %x) {
37; X86-LABEL: cvtf4_f3:
38; X86:       # %bb.0: # %entry
39; X86-NEXT:    retl
40;
41; X64-LABEL: cvtf4_f3:
42; X64:       # %bb.0: # %entry
43; X64-NEXT:    retq
44entry:
45  %extractVec = shufflevector <4 x float> %x, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
46  ret <3 x float> %extractVec
47}
48