Acho que entendi, então o que você quer é isto ?
.
Para ter esse resultado usei este código:
<div style="width: 400px; height: 200px; background-image: linear-gradient(to bottom right, rgba(255, 255, 255, 0.5), rgba(255, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), linear-gradient(to bottom left, rgba(0, 0, 0, 0.5), rgba(133, 25, 68, 0.7), rgba(255, 255, 255, 0.5));">
</div>
Não é muito fácil notar, mais o primeiro gradiente, na diagonal principal, é o white, red, black. Depois, na diagonal secundária, o gradiente é black, +/- roxo e white.
Você pode adicionar quantos linear-gradients você quiser colocando vírgulas:
background-image: linear-gradient(), linear-gradient(), ... ;
Porém, se os gradientes usarem cores sólidas (opacas), um deles ficará em cima dos outros e, consequentemente, você vai acreditar que só um deles foi gerado.
A única forma de fazer com que cada um deles apareça é usar cores transparentes (observe que usei rgba() no código).
------------------------------------------
Se não quiser que as coisas fiquem tão transparentes, você vai precisar "remover" pelo menos uma das cores. Observe esse novo esquema:
.
Código de que o gerou:
<div style="width: 400px; height: 200px; background-image: linear-gradient(to bottom right, transparent, rgba(255, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), linear-gradient(to bottom left, rgba(0, 0, 0, 0.5), rgba(133, 25, 68, 1), transparent), linear-gradient(black, black);">
</div>
Observe que além de remover algumas cores usando a palavra chave transparent, eu coloquei um fundo preto atrás de todos os gradientes.
Se quiser que o "roxo" apareça mais destacado, você vai ter que enfraquecer o vermelho e o preto, daí para frente é design e arte, não é a minha área kkk.