44
55define noundef half @wave_active_max_half (half noundef %expr ) {
66entry:
7- ; CHECK: call half @dx.op.waveActiveOp.f16(i32 119, half %expr, i8 3, i8 0) #[[#ATTR:]]
7+ ; CHECK: call half @dx.op.waveActiveOp.f16(i32 119, half %expr, i8 3, i8 0){{$}}
88 %ret = call half @llvm.dx.wave.reduce.max.f16 (half %expr )
99 ret half %ret
1010}
1111
1212define noundef float @wave_active_max_float (float noundef %expr ) {
1313entry:
14- ; CHECK: call float @dx.op.waveActiveOp.f32(i32 119, float %expr, i8 3, i8 0) #[[#ATTR]]
14+ ; CHECK: call float @dx.op.waveActiveOp.f32(i32 119, float %expr, i8 3, i8 0){{$}}
1515 %ret = call float @llvm.dx.wave.reduce.max.f32 (float %expr )
1616 ret float %ret
1717}
1818
1919define noundef double @wave_active_max_double (double noundef %expr ) {
2020entry:
21- ; CHECK: call double @dx.op.waveActiveOp.f64(i32 119, double %expr, i8 3, i8 0) #[[#ATTR]]
21+ ; CHECK: call double @dx.op.waveActiveOp.f64(i32 119, double %expr, i8 3, i8 0){{$}}
2222 %ret = call double @llvm.dx.wave.reduce.max.f64 (double %expr )
2323 ret double %ret
2424}
2525
2626define noundef i16 @wave_active_max_i16 (i16 noundef %expr ) {
2727entry:
28- ; CHECK: call i16 @dx.op.waveActiveOp.i16(i32 119, i16 %expr, i8 3, i8 0) #[[#ATTR]]
28+ ; CHECK: call i16 @dx.op.waveActiveOp.i16(i32 119, i16 %expr, i8 3, i8 0){{$}}
2929 %ret = call i16 @llvm.dx.wave.reduce.max.i16 (i16 %expr )
3030 ret i16 %ret
3131}
3232
3333define noundef i32 @wave_active_max_i32 (i32 noundef %expr ) {
3434entry:
35- ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr, i8 3, i8 0) #[[#ATTR]]
35+ ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr, i8 3, i8 0){{$}}
3636 %ret = call i32 @llvm.dx.wave.reduce.max.i32 (i32 %expr )
3737 ret i32 %ret
3838}
3939
4040define noundef i64 @wave_active_max_i64 (i64 noundef %expr ) {
4141entry:
42- ; CHECK: call i64 @dx.op.waveActiveOp.i64(i32 119, i64 %expr, i8 3, i8 0) #[[#ATTR]]
42+ ; CHECK: call i64 @dx.op.waveActiveOp.i64(i32 119, i64 %expr, i8 3, i8 0){{$}}
4343 %ret = call i64 @llvm.dx.wave.reduce.max.i64 (i64 %expr )
4444 ret i64 %ret
4545}
4646
4747define noundef i16 @wave_active_umax_i16 (i16 noundef %expr ) {
4848entry:
49- ; CHECK: call i16 @dx.op.waveActiveOp.i16(i32 119, i16 %expr, i8 3, i8 1) #[[#ATTR]]
49+ ; CHECK: call i16 @dx.op.waveActiveOp.i16(i32 119, i16 %expr, i8 3, i8 1){{$}}
5050 %ret = call i16 @llvm.dx.wave.reduce.umax.i16 (i16 %expr )
5151 ret i16 %ret
5252}
5353
5454define noundef i32 @wave_active_umax_i32 (i32 noundef %expr ) {
5555entry:
56- ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr, i8 3, i8 1) #[[#ATTR]]
56+ ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr, i8 3, i8 1){{$}}
5757 %ret = call i32 @llvm.dx.wave.reduce.umax.i32 (i32 %expr )
5858 ret i32 %ret
5959}
6060
6161define noundef i64 @wave_active_umax_i64 (i64 noundef %expr ) {
6262entry:
63- ; CHECK: call i64 @dx.op.waveActiveOp.i64(i32 119, i64 %expr, i8 3, i8 1) #[[#ATTR]]
63+ ; CHECK: call i64 @dx.op.waveActiveOp.i64(i32 119, i64 %expr, i8 3, i8 1){{$}}
6464 %ret = call i64 @llvm.dx.wave.reduce.umax.i64 (i64 %expr )
6565 ret i64 %ret
6666}
@@ -82,27 +82,27 @@ declare i64 @llvm.dx.wave.reduce.umax.i64(i64)
8282
8383define noundef <2 x half > @wave_active_max_v2half (<2 x half > noundef %expr ) {
8484entry:
85- ; CHECK: call half @dx.op.waveActiveOp.f16(i32 119, half %expr.i0, i8 3, i8 0) #[[#ATTR]]
86- ; CHECK: call half @dx.op.waveActiveOp.f16(i32 119, half %expr.i1, i8 3, i8 0) #[[#ATTR]]
85+ ; CHECK: call half @dx.op.waveActiveOp.f16(i32 119, half %expr.i0, i8 3, i8 0){{$}}
86+ ; CHECK: call half @dx.op.waveActiveOp.f16(i32 119, half %expr.i1, i8 3, i8 0){{$}}
8787 %ret = call <2 x half > @llvm.dx.wave.reduce.max.v2f16 (<2 x half > %expr )
8888 ret <2 x half > %ret
8989}
9090
9191define noundef <3 x i32 > @wave_active_max_v3i32 (<3 x i32 > noundef %expr ) {
9292entry:
93- ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr.i0, i8 3, i8 0) #[[#ATTR]]
94- ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr.i1, i8 3, i8 0) #[[#ATTR]]
95- ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr.i2, i8 3, i8 0) #[[#ATTR]]
93+ ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr.i0, i8 3, i8 0){{$}}
94+ ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr.i1, i8 3, i8 0){{$}}
95+ ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr.i2, i8 3, i8 0){{$}}
9696 %ret = call <3 x i32 > @llvm.dx.wave.reduce.max.v3i32 (<3 x i32 > %expr )
9797 ret <3 x i32 > %ret
9898}
9999
100100define noundef <4 x double > @wave_active_max_v4f64 (<4 x double > noundef %expr ) {
101101entry:
102- ; CHECK: call double @dx.op.waveActiveOp.f64(i32 119, double %expr.i0, i8 3, i8 0) #[[#ATTR]]
103- ; CHECK: call double @dx.op.waveActiveOp.f64(i32 119, double %expr.i1, i8 3, i8 0) #[[#ATTR]]
104- ; CHECK: call double @dx.op.waveActiveOp.f64(i32 119, double %expr.i2, i8 3, i8 0) #[[#ATTR]]
105- ; CHECK: call double @dx.op.waveActiveOp.f64(i32 119, double %expr.i3, i8 3, i8 0) #[[#ATTR]]
102+ ; CHECK: call double @dx.op.waveActiveOp.f64(i32 119, double %expr.i0, i8 3, i8 0){{$}}
103+ ; CHECK: call double @dx.op.waveActiveOp.f64(i32 119, double %expr.i1, i8 3, i8 0){{$}}
104+ ; CHECK: call double @dx.op.waveActiveOp.f64(i32 119, double %expr.i2, i8 3, i8 0){{$}}
105+ ; CHECK: call double @dx.op.waveActiveOp.f64(i32 119, double %expr.i3, i8 3, i8 0){{$}}
106106 %ret = call <4 x double > @llvm.dx.wave.reduce.max.v4f64 (<4 x double > %expr )
107107 ret <4 x double > %ret
108108}
@@ -113,33 +113,31 @@ declare <4 x double> @llvm.dx.wave.reduce.max.v4f64(<4 x double>)
113113
114114define noundef <2 x i16 > @wave_active_umax_v2i16 (<2 x i16 > noundef %expr ) {
115115entry:
116- ; CHECK: call i16 @dx.op.waveActiveOp.i16(i32 119, i16 %expr.i0, i8 3, i8 1) #[[#ATTR]]
117- ; CHECK: call i16 @dx.op.waveActiveOp.i16(i32 119, i16 %expr.i1, i8 3, i8 1) #[[#ATTR]]
116+ ; CHECK: call i16 @dx.op.waveActiveOp.i16(i32 119, i16 %expr.i0, i8 3, i8 1){{$}}
117+ ; CHECK: call i16 @dx.op.waveActiveOp.i16(i32 119, i16 %expr.i1, i8 3, i8 1){{$}}
118118 %ret = call <2 x i16 > @llvm.dx.wave.reduce.umax.v2f16 (<2 x i16 > %expr )
119119 ret <2 x i16 > %ret
120120}
121121
122122define noundef <3 x i32 > @wave_active_umax_v3i32 (<3 x i32 > noundef %expr ) {
123123entry:
124- ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr.i0, i8 3, i8 1) #[[#ATTR]]
125- ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr.i1, i8 3, i8 1) #[[#ATTR]]
126- ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr.i2, i8 3, i8 1) #[[#ATTR]]
124+ ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr.i0, i8 3, i8 1){{$}}
125+ ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr.i1, i8 3, i8 1){{$}}
126+ ; CHECK: call i32 @dx.op.waveActiveOp.i32(i32 119, i32 %expr.i2, i8 3, i8 1){{$}}
127127 %ret = call <3 x i32 > @llvm.dx.wave.reduce.umax.v3i32 (<3 x i32 > %expr )
128128 ret <3 x i32 > %ret
129129}
130130
131131define noundef <4 x i64 > @wave_active_umax_v4f64 (<4 x i64 > noundef %expr ) {
132132entry:
133- ; CHECK: call i64 @dx.op.waveActiveOp.i64(i32 119, i64 %expr.i0, i8 3, i8 1) #[[#ATTR]]
134- ; CHECK: call i64 @dx.op.waveActiveOp.i64(i32 119, i64 %expr.i1, i8 3, i8 1) #[[#ATTR]]
135- ; CHECK: call i64 @dx.op.waveActiveOp.i64(i32 119, i64 %expr.i2, i8 3, i8 1) #[[#ATTR]]
136- ; CHECK: call i64 @dx.op.waveActiveOp.i64(i32 119, i64 %expr.i3, i8 3, i8 1) #[[#ATTR]]
133+ ; CHECK: call i64 @dx.op.waveActiveOp.i64(i32 119, i64 %expr.i0, i8 3, i8 1){{$}}
134+ ; CHECK: call i64 @dx.op.waveActiveOp.i64(i32 119, i64 %expr.i1, i8 3, i8 1){{$}}
135+ ; CHECK: call i64 @dx.op.waveActiveOp.i64(i32 119, i64 %expr.i2, i8 3, i8 1){{$}}
136+ ; CHECK: call i64 @dx.op.waveActiveOp.i64(i32 119, i64 %expr.i3, i8 3, i8 1){{$}}
137137 %ret = call <4 x i64 > @llvm.dx.wave.reduce.umax.v4f64 (<4 x i64 > %expr )
138138 ret <4 x i64 > %ret
139139}
140140
141- ; CHECK: attributes #[[#ATTR]] = {{{.*}} memory(none) {{.*}}}
142-
143141declare <2 x i16 > @llvm.dx.wave.reduce.umax.v2f16 (<2 x i16 >)
144142declare <3 x i32 > @llvm.dx.wave.reduce.umax.v3i32 (<3 x i32 >)
145143declare <4 x i64 > @llvm.dx.wave.reduce.umax.v4f64 (<4 x i64 >)
0 commit comments