1
1
; 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
3
3
4
4
declare half @llvm.dx.radians.f16 (half )
5
5
declare float @llvm.dx.radians.f32 (float )
@@ -35,8 +35,19 @@ define noundef <4 x half> @radians_half_vector(<4 x half> noundef %a) {
35
35
; CHECK-LABEL: define noundef <4 x half> @radians_half_vector(
36
36
; CHECK-SAME: <4 x half> noundef [[A:%.*]]) {
37
37
; 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]]
40
51
;
41
52
entry:
42
53
%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) {
47
58
; CHECK-LABEL: define noundef <4 x float> @radians_float_vector(
48
59
; CHECK-SAME: <4 x float> noundef [[A:%.*]]) {
49
60
; 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]]
52
74
;
53
75
entry:
54
76
%elt.radians = call <4 x float > @llvm.dx.radians.v4f32 (<4 x float > %a )
55
77
ret <4 x float > %elt.radians
56
78
}
79
+
0 commit comments