@@ -161,10 +161,11 @@ impl<'a, 'tcx> IntrinsicCallBuilderMethods<'tcx> for Builder<'a, 'tcx> {
161
161
}
162
162
sym:: sinf32 | sym:: sinf64 => self . gl_op ( GLOp :: Sin , ret_ty, [ args[ 0 ] . immediate ( ) ] ) ,
163
163
sym:: cosf32 | sym:: cosf64 => self . gl_op ( GLOp :: Cos , ret_ty, [ args[ 0 ] . immediate ( ) ] ) ,
164
- sym:: powf32 | sym:: powf64 => self . gl_op ( GLOp :: Pow , ret_ty, [
165
- args[ 0 ] . immediate ( ) ,
166
- args[ 1 ] . immediate ( ) ,
167
- ] ) ,
164
+ sym:: powf32 | sym:: powf64 => self . gl_op (
165
+ GLOp :: Pow ,
166
+ ret_ty,
167
+ [ args[ 0 ] . immediate ( ) , args[ 1 ] . immediate ( ) ] ,
168
+ ) ,
168
169
sym:: expf32 | sym:: expf64 => self . gl_op ( GLOp :: Exp , ret_ty, [ args[ 0 ] . immediate ( ) ] ) ,
169
170
sym:: exp2f32 | sym:: exp2f64 => self . gl_op ( GLOp :: Exp2 , ret_ty, [ args[ 0 ] . immediate ( ) ] ) ,
170
171
sym:: logf32 | sym:: logf64 => self . gl_op ( GLOp :: Log , ret_ty, [ args[ 0 ] . immediate ( ) ] ) ,
@@ -176,20 +177,26 @@ impl<'a, 'tcx> IntrinsicCallBuilderMethods<'tcx> for Builder<'a, 'tcx> {
176
177
let ln = self . gl_op ( GLOp :: Log , ret_ty, [ args[ 0 ] . immediate ( ) ] ) ;
177
178
self . fmul ( mul, ln)
178
179
}
179
- sym:: fmaf32 | sym:: fmaf64 => self . gl_op ( GLOp :: Fma , ret_ty, [
180
- args[ 0 ] . immediate ( ) ,
181
- args[ 1 ] . immediate ( ) ,
182
- args[ 2 ] . immediate ( ) ,
183
- ] ) ,
180
+ sym:: fmaf32 | sym:: fmaf64 => self . gl_op (
181
+ GLOp :: Fma ,
182
+ ret_ty,
183
+ [
184
+ args[ 0 ] . immediate ( ) ,
185
+ args[ 1 ] . immediate ( ) ,
186
+ args[ 2 ] . immediate ( ) ,
187
+ ] ,
188
+ ) ,
184
189
sym:: fabsf32 | sym:: fabsf64 => self . gl_op ( GLOp :: FAbs , ret_ty, [ args[ 0 ] . immediate ( ) ] ) ,
185
- sym:: minnumf32 | sym:: minnumf64 => self . gl_op ( GLOp :: FMin , ret_ty, [
186
- args[ 0 ] . immediate ( ) ,
187
- args[ 1 ] . immediate ( ) ,
188
- ] ) ,
189
- sym:: maxnumf32 | sym:: maxnumf64 => self . gl_op ( GLOp :: FMax , ret_ty, [
190
- args[ 0 ] . immediate ( ) ,
191
- args[ 1 ] . immediate ( ) ,
192
- ] ) ,
190
+ sym:: minnumf32 | sym:: minnumf64 => self . gl_op (
191
+ GLOp :: FMin ,
192
+ ret_ty,
193
+ [ args[ 0 ] . immediate ( ) , args[ 1 ] . immediate ( ) ] ,
194
+ ) ,
195
+ sym:: maxnumf32 | sym:: maxnumf64 => self . gl_op (
196
+ GLOp :: FMax ,
197
+ ret_ty,
198
+ [ args[ 0 ] . immediate ( ) , args[ 1 ] . immediate ( ) ] ,
199
+ ) ,
193
200
sym:: copysignf32 | sym:: copysignf64 => {
194
201
let val = args[ 0 ] . immediate ( ) ;
195
202
let sign = args[ 1 ] . immediate ( ) ;
@@ -485,9 +492,13 @@ impl Builder<'_, '_> {
485
492
if trailing {
486
493
let lsb = self
487
494
. emit ( )
488
- . ext_inst ( u32, None , glsl, GLOp :: FindILsb as u32 , [ Operand :: IdRef (
489
- arg,
490
- ) ] )
495
+ . ext_inst (
496
+ u32,
497
+ None ,
498
+ glsl,
499
+ GLOp :: FindILsb as u32 ,
500
+ [ Operand :: IdRef ( arg) ] ,
501
+ )
491
502
. unwrap ( ) ;
492
503
if offset == 0 {
493
504
lsb
@@ -499,9 +510,13 @@ impl Builder<'_, '_> {
499
510
// rust is always unsigned, so FindUMsb
500
511
let msb_bit = self
501
512
. emit ( )
502
- . ext_inst ( u32, None , glsl, GLOp :: FindUMsb as u32 , [ Operand :: IdRef (
503
- arg,
504
- ) ] )
513
+ . ext_inst (
514
+ u32,
515
+ None ,
516
+ glsl,
517
+ GLOp :: FindUMsb as u32 ,
518
+ [ Operand :: IdRef ( arg) ] ,
519
+ )
505
520
. unwrap ( ) ;
506
521
// the glsl op returns the Msb bit, not the amount of leading zeros of this u32
507
522
// leading zeros = 31 - Msb bit
@@ -607,18 +622,21 @@ impl Builder<'_, '_> {
607
622
// so the best thing we can do is use our own custom instruction.
608
623
let kind_id = self . emit ( ) . string ( kind) ;
609
624
let message_debug_printf_fmt_str_id = self . emit ( ) . string ( message_debug_printf_fmt_str) ;
610
- self . custom_inst ( void_ty, CustomInst :: Abort {
611
- kind : Operand :: IdRef ( kind_id) ,
612
- message_debug_printf : [ message_debug_printf_fmt_str_id]
613
- . into_iter ( )
614
- . chain (
615
- message_debug_printf_args
616
- . into_iter ( )
617
- . map ( |arg| arg. def ( self ) ) ,
618
- )
619
- . map ( Operand :: IdRef )
620
- . collect ( ) ,
621
- } ) ;
625
+ self . custom_inst (
626
+ void_ty,
627
+ CustomInst :: Abort {
628
+ kind : Operand :: IdRef ( kind_id) ,
629
+ message_debug_printf : [ message_debug_printf_fmt_str_id]
630
+ . into_iter ( )
631
+ . chain (
632
+ message_debug_printf_args
633
+ . into_iter ( )
634
+ . map ( |arg| arg. def ( self ) ) ,
635
+ )
636
+ . map ( Operand :: IdRef )
637
+ . collect ( ) ,
638
+ } ,
639
+ ) ;
622
640
self . unreachable ( ) ;
623
641
624
642
// HACK(eddyb) we still need an active block in case the user of this
0 commit comments