11; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
2- ; RUN: opt -S -dxil-op-lower -mtriple=dxil-pc-shadermodel6.3-library %s | FileCheck %s
2+ ; RUN: opt -S -dxil-intrinsic-expansion -scalarizer -mtriple=dxil-pc-shadermodel6.3-library %s | FileCheck %s
33
44declare half @llvm.dx.radians.f16 (half )
55declare float @llvm.dx.radians.f32 (float )
@@ -35,8 +35,19 @@ define noundef <4 x half> @radians_half_vector(<4 x half> noundef %a) {
3535; CHECK-LABEL: define noundef <4 x half> @radians_half_vector(
3636; CHECK-SAME: <4 x half> noundef [[A:%.*]]) {
3737; CHECK-NEXT: [[ENTRY:.*:]]
38- ; CHECK-NEXT: [[TMP0:%.*]] = fmul <4 x half> [[A]], <half 0xH2478, half 0xH2478, half 0xH2478, half 0xH2478>
39- ; CHECK-NEXT: ret <4 x half> [[TMP0]]
38+ ; CHECK: [[ee0:%.*]] = extractelement <4 x half> [[A]], i64 0
39+ ; CHECK: [[ie0:%.*]] = fmul half [[ee0]], 0xH2478
40+ ; CHECK: [[ee1:%.*]] = extractelement <4 x half> [[A]], i64 1
41+ ; CHECK: [[ie1:%.*]] = fmul half [[ee1]], 0xH2478
42+ ; CHECK: [[ee2:%.*]] = extractelement <4 x half> [[A]], i64 2
43+ ; CHECK: [[ie2:%.*]] = fmul half [[ee2]], 0xH2478
44+ ; CHECK: [[ee3:%.*]] = extractelement <4 x half> [[A]], i64 3
45+ ; CHECK: [[ie3:%.*]] = fmul half [[ee3]], 0xH2478
46+ ; CHECK: [[TMP0:%.*]] = insertelement <4 x half> poison, half [[ie0]], i64 0
47+ ; CHECK: [[TMP1:%.*]] = insertelement <4 x half> %[[TMP0]], half [[ie1]], i64 1
48+ ; CHECK: [[TMP2:%.*]] = insertelement <4 x half> %[[TMP1]], half [[ie2]], i64 2
49+ ; CHECK: [[TMP3:%.*]] = insertelement <4 x half> %[[TMP2]], half [[ie3]], i64 3
50+ ; CHECK: ret <4 x half> [[TMP3]]
4051;
4152entry:
4253 %elt.radians = call <4 x half > @llvm.dx.radians.v4f16 (<4 x half > %a )
@@ -47,10 +58,22 @@ define noundef <4 x float> @radians_float_vector(<4 x float> noundef %a) {
4758; CHECK-LABEL: define noundef <4 x float> @radians_float_vector(
4859; CHECK-SAME: <4 x float> noundef [[A:%.*]]) {
4960; CHECK-NEXT: [[ENTRY:.*:]]
50- ; CHECK-NEXT: [[TMP0:%.*]] = fmul <4 x float> [[A]], <float 0x3F91DF46A0000000, float 0x3F91DF46A0000000, float 0x3F91DF46A0000000, float 0x3F91DF46A0000000>
51- ; CHECK-NEXT: ret <4 x float> [[TMP0]]
61+ ; CHECK: [[ee0:%.*]] = extractelement <4 x float> [[A]], i64 0
62+ ; CHECK: [[ie0:%.*]] = fmul float [[ee0]], 0x3F91DF46A0000000
63+ ; CHECK: [[ee1:%.*]] = extractelement <4 x float> [[A]], i64 1
64+ ; CHECK: [[ie1:%.*]] = fmul float [[ee1]], 0x3F91DF46A0000000
65+ ; CHECK: [[ee2:%.*]] = extractelement <4 x float> [[A]], i64 2
66+ ; CHECK: [[ie2:%.*]] = fmul float [[ee2]], 0x3F91DF46A0000000
67+ ; CHECK: [[ee3:%.*]] = extractelement <4 x float> [[A]], i64 3
68+ ; CHECK: [[ie3:%.*]] = fmul float [[ee3]], 0x3F91DF46A0000000
69+ ; CHECK: [[TMP0:%.*]] = insertelement <4 x float> poison, float [[ie0]], i64 0
70+ ; CHECK: [[TMP1:%.*]] = insertelement <4 x float> %[[TMP0]], float [[ie1]], i64 1
71+ ; CHECK: [[TMP2:%.*]] = insertelement <4 x float> %[[TMP1]], float [[ie2]], i64 2
72+ ; CHECK: [[TMP3:%.*]] = insertelement <4 x float> %[[TMP2]], float [[ie3]], i64 3
73+ ; CHECK: ret <4 x float> [[TMP3]]
5274;
5375entry:
5476 %elt.radians = call <4 x float > @llvm.dx.radians.v4f32 (<4 x float > %a )
5577 ret <4 x float > %elt.radians
5678}
79+
0 commit comments