xref: /llvm-project/clang/test/CodeGen/X86/strictfp_patterns.c (revision 6dcce422ca06601f2b00e85cc18c745ede245ca6)
1 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
2 // RUN: %clang_cc1 %s -O2 -emit-llvm -o - -triple x86_64-unknown-unknown -ffreestanding -ffp-exception-behavior=maytrap -Wall -Werror | FileCheck %s
3 
4 #include <immintrin.h>
5 
6 // PR104848 - ensure the _mm_set_ss/d headers don't implicity promote any integer/fp values.
7 
8 // CHECK-LABEL: @test_mm_set_ss(
9 // CHECK-NEXT:  entry:
10 // CHECK-NEXT:    [[VECINIT3_I:%.*]] = insertelement <4 x float> <float poison, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00>, float [[NUM:%.*]], i64 0
11 // CHECK-NEXT:    ret <4 x float> [[VECINIT3_I]]
12 //
13 __m128 test_mm_set_ss(float num)
14 {
15     return _mm_set_ss(num);
16 }
17 
18 // CHECK-LABEL: @test_mm_set_sd(
19 // CHECK-NEXT:  entry:
20 // CHECK-NEXT:    [[VECINIT1_I:%.*]] = insertelement <2 x double> <double poison, double 0.000000e+00>, double [[NUM:%.*]], i64 0
21 // CHECK-NEXT:    ret <2 x double> [[VECINIT1_I]]
22 //
23 __m128d test_mm_set_sd(double num)
24 {
25     return _mm_set_sd(num);
26 }
27